2011-02-13 17 views
6

Estoy tratando de lograr lo siguiente para un trabajo de hudson parametrizado: cuando un usuario hace clic en 'construir ahora', se le deben presentar tres parámetros de lista desplegable, a saber, Entorno, Servidor, Puerto. Quiero que el menú desplegable sea dinámico, es decir, al cambiar el valor del entorno, la lista de servidores debería cambiar en consecuencia y, de manera similar, los valores de puerto deberían cambiar en función del servidor seleccionado.¿Cómo hacer listas desplegables dinámicas en la página de compilación parametrizada en un complemento Hudson personalizado?

Una vez que un usuario realiza la selección final, los tres valores de las listas desplegables se deben usar para hacer que un único valor pase al trabajo de compilación como parámetro. Estoy atascado en cómo lograr esto en un solo parámetro y hacerlo dinámico. En mi complemento personalizado he extendido la clase ParameterDefinition y dentro de ella tengo una clase anidada estática que amplía la clase ParameterDescriptor con doFillXXXItems() para estos tres campos. Los valores en el menú desplegable del entorno se rellenan sobre la base del nombre de usuario registrado. Realmente apreciaría si alguien pudiera ayudarme a encontrar la manera de hacer que los drop downs sean dinámicos. Ya he probado la caída dinámica abajo cuadro de lista en la interfaz de usuario muestras de plugins, pero no su trabajo en mi caso :(

Respuesta

1

Se puede heredar hudson.model.ChoiceParameterDefinition, y anular su método de getChoicesText. Restablecer las opciones en base a lo que quiera, en su situación, usted podría conseguir entornos de Hudson.getInstance().

a continuación fragmentos se muestra cómo obtener variable de entorno.

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