Как сделать динамические выпадающие списки на параметризованной странице сборки в пользовательском плагине Hudson? - PullRequest
6 голосов
/ 14 февраля 2011

Я пытаюсь добиться следующего для параметризованного задания hudson: когда пользователь нажимает «построить сейчас», ему должны быть представлены три параметра в раскрывающемся списке, а именно: Среда, Сервер, Порт. Я хочу, чтобы раскрывающийся список был динамическим, т. Е. При изменении значения среды список серверов должен соответственно изменяться, и аналогично значения порта должны изменяться в зависимости от выбранного сервера.

Как только пользователь делает окончательный выбор, все три значения из раскрывающихся списков должны использоваться для создания одного значения, которое будет передано в задание сборки в качестве параметра. Я застрял в том, как добиться этого в одном параметре и сделать его динамичным. В моем собственном плагине я расширил класс ParameterDefinition, и внутри него у меня есть статический вложенный класс, расширяющий класс ParameterDescriptor с помощью doFillXXXItems () для этих трех полей. Значения в выпадающем списке среды заполняются на основе зарегистрированного имени пользователя. Я был бы очень признателен, если бы кто-нибудь помог мне понять, как сделать динамические выпадающие. Я уже пробовал динамический выпадающий список в плагине ui-samples, но в моем случае он не работает :(

1 Ответ

1 голос
/ 26 февраля 2012

Вы можете унаследовать hudson.model.ChoiceParameterDefinition и переопределить его метод getChoicesText .возвращайте параметры в зависимости от того, что вы хотите, в вашей ситуации вы можете получить окружения из Hudson.getInstance () .

Ниже показано, как получить переменную окружения.

Hudson.getInstance().getGlobalNodeProperties()
       .get(EnvironmentVariablesNodeProperty.class).getEnvVars().get(name);
...