Aria Automation - crear lista ordenada de key-value en custom forms con Orchestrator

Es muy común necesitar crear una lista desplegable de opciones en un Custom Form de Aria Automation.

Lista simple

Imaginemos que queremos construir una lista desplegable para seleccionar una Máquina Virtual por su IP. 

Esto es bastante sencillo ya que crearemos una acción de Orchestrator que devuelva un Array/String y simplemente podemos hacer lo siguiente:

var result = [
    "10.10.1.11",
    "10.10.1.2",
    "10.10.1.3"
];

return result;

El resultado se vería así:


Lista con etiqueta y valor

Sin embargo, sería mucho mejor poder mostrar una lista con los nombres de las máquinas virtuales pero que el campo retenga la IP de dicha vm.

En principo esto se puede resolver creando una Action en Orchestrator que devuelva un objeto del tipo Properties:

var props = new Properties();
props.put("10.10.1.1", "Virtual Machine 1");
props.put("10.10.1.2", "Virtual Machine 2");
props.put("10.10.1.3", "Virtual Machine 3");
props.put("10.10.1.4", "Virtual Machine 4");
props.put("10.10.1.5", "Virtual Machine 5");
props.put("10.10.1.6", "Virtual Machine 6");

return props;

El resultado sería el siguiente:


Como se puede ver, se muestran los nombres de las VMs y, al seleccionar una, el valor que se envía es el de la IP. 

Sin embargo la lista no se muestra en el orden que definimos en la Action y esto puede ser importante en muchos casos.

Lista ordenada con etiqueta y valor

Para poder mostrar una lista de key-value en forma ordenada en un Custom Form de Aria Automation debemos crear una acción que devuelva un Array/Properties. Por ejemplo:

var result = [];

var vm1 = new Properties();
vm1.put('label','Virtual Machine 1');
vm1.put('value',"10.10.1.1");
result.push(vm1);

var vm2 = new Properties();
vm2.put('label','Virtual Machine 2');
vm2.put('value',"10.10.1.2");
result.push(vm2);

var vm3 = new Properties();
vm3.put('label','Virtual Machine 3');
vm3.put('value',"10.10.1.3");
result.push(vm3);

var vm4 = new Properties();
vm4.put('label','Virtual Machine 4');
vm4.put('value',"10.10.1.4");
result.push(vm4);

return result;

Y el resultado se vería así:


Como vemos, ahora la lista está en el mismo orden que fue definida en la Action de Orchestrator.

Raro, pero funciona.

Comentarios

Entradas populares de este blog

vRA8 - Definir redes disponibles por Projecto

Demo simple de GSLB con AVI