Cuando personaliza un formulario de solicitud de Service Broker, puede basar el comportamiento de algunos campos en los resultados de una acción de vRealize Orchestrator.
Existen varias formas de utilizar las acciones de vRealize Orchestrator. Puede tener una acción que extraiga los datos de un tercer origen, o bien puede usar un script que defina el tamaño y el coste.
El primer ejemplo se basa en campos agregados manualmente para comprender el proceso subyacente. El segundo ejemplo utiliza la misma premisa, pero, en su lugar, depende de un campo de plantilla.
El tercer ejemplo se basa en una opción personalizada que se agrega al formulario de solicitud del catálogo, donde el usuario selecciona una carpeta en función de los resultados de una acción personalizada de vRealize Orchestrator.
El cuarto ejemplo utiliza atributos del flujo de trabajo de vRealize Orchestrator para personalizar un campo en el formulario de solicitud.
Además de los siguientes ejemplos, otros ejemplos están disponibles en el blog de VMware Cloud Management.
Ejemplo de tamaño y coste como campos agregados de forma manual
En este caso práctico, queremos que el usuario del catálogo seleccione un tamaño de la máquina virtual y, a continuación, muestre el coste de esa máquina por día. Para realizar este ejemplo, tiene un script de vRealize Orchestrator que correlaciona el tamaño y el coste. A continuación, se agrega un campo de tamaño y un campo de coste al formulario personalizado de plantilla. El campo del tamaño determina el valor que aparece en el campo del coste.
- En vRealize Orchestrator, configure una acción con el nombre getWindows10Cost.
- Agregue un script.
Se puede utilizar el siguiente script de ejemplo.
var cost = "Unknown"; switch(deploymentSize) { case 'small' : cost = "$15";break; case 'medium' : cost = "$25";break; case 'large' : cost = "$45";break ; default : break ; } return cost;
- Agregue deploymentSize como cadena de entrada.
- En Service Broker, agregue y configure un campo Tamaño en un formulario personalizado de plantilla.
Configure el campo de tamaño para que sea de elemento desplegable con los valores Pequeño, Mediano y Grande.
En la pestaña Valores, configure los siguientes valores de propiedad.
- Valor predeterminado: Grande
- Opciones de valor
- Origen del valor: constante
- Definición de valor: pequeño|Pequeño,mediano|Mediano,grande|Grande
- Agregue el campo de coste como campo de texto para que se muestre el coste según se define en la acción de vRealize Orchestrator en función del valor seleccionado en el campo de tamaño.
En la pestaña Valores, configure los siguientes valores de propiedad.
- Valor predeterminado: Origen externo
- Seleccionar acción: <carpeta de acciones de vRealize Orchestrator>/getWindows10Cost
- Entradas de acción
- deploymentSize. Este valor se configuró en la acción como la entrada.
- Campo
- Tamaño. Este es el campo que creó anteriormente.
- Habilite el formulario personalizado y guárdelo.
- Para comprobar que funciona, solicite el elemento en el catálogo. Debe ver el campo Costo rellenado en función del valor Tamaño seleccionado.
Ejemplo de coste basado en elemento de esquema
En este caso práctico, se desea que el usuario del catálogo vea el coste de esa máquina por día según la propiedad de tipo en la plantilla. Para realizar este ejemplo, utilice el script de vRealize Orchestrator del ejemplo anterior. Sin embargo, en este caso práctico, el coste se basa en el tamaño de tipo que el usuario seleccionó en el formulario personalizado al solicitar el elemento de catálogo Service Broker.
Carpeta de destino basada en un ejemplo de acción personalizada
En este caso de uso, desea que el usuario del catálogo seleccione entre las carpetas que están disponibles para él cuando mueva una máquina de una carpeta a otra. Para realizar este ejemplo, cree una acción personalizada en vRealize Orchestrator que devuelva las carpetas disponibles para el usuario que solicita la acción desde el catálogo. A continuación, personalice el campo Carpeta de destino en el formulario de solicitud del catálogo.
En el catálogo, el flujo de trabajo Mover máquinas virtuales a la carpeta que se utiliza en este ejemplo se expone como una acción personalizada creada en Cloud Assembly.
- En vRealize Orchestrator, cree una acción con el nombre getFolderForUser.
- En la pestaña Script, agregue entradas de acción, seleccione el tipo de retorno de la salida y agregue el script.
Se puede utilizar el siguiente script de ejemplo.
var parentTargetDirName = "users"; var sdkConnection = VcPlugin.findSdkConnectionForUUID(vcUuid); var rootFolder = sdkConnection.getAllVmFolders(null, "xpath:matches(name,'" + parentTargetDirName + "')")[0]; var result = new Array(); for each(var folder in rootFolder.childEntity) { if (folder instanceof VcFolder && folder.permission.length > 0) { var entityPrivilege = sdkConnection.authorizationManager.hasUserPrivilegeOnEntities([folder], username, ["System.Read"])[0]; if (entityPrivilege.privAvailability[0].isGranted) { result.push(folder); } } } return result;
- Cuando termine de edita la acción, haga clic en Guardar.
- En la pestaña Script, agregue entradas de acción, seleccione el tipo de retorno de la salida y agregue el script.
- En Cloud Assembly, cree una acción personalizada con el nombre ChangeFolder.
- Seleccione el tipo de recurso Cloud.vSphere.Machine.
- Seleccione el flujo de trabajo Mover máquinas virtuales a la carpeta.
- Personalice el formulario de solicitud que los usuarios ven cuando solicitan la acción.
- Abra la acción ChangeFolder.
- Haga clic en Editar parámetros de solicitud.
- Personalice cómo se presenta el campo Carpeta de destino a los usuarios.
Opciones de valor Valor de ejemplo Origen de valor Origen externo Seleccionar acción getFolderForUser Entradas de acción username Field
Haga clic en .Haga clic en Seleccionar.
Entradas de acción vcUuid
Haga clic en .Haga clic en Seleccionar.
- Haga clic en Guardar.
Cuando un usuario solicita la acción en el catálogo, puede seleccionar una carpeta de destino para la máquina virtual entre las carpetas que están disponibles para él.
Ejemplo de nombre de host basado en atributos de flujo de trabajo
- En vRealize Orchestrator, cree o clone un flujo de trabajo existente. Por ejemplo, clone el flujo de trabajo Agregar un host de REST.
- En la pestaña Variables, agregue una variable y enlácela a un elemento de configuración.
Opciones de valor Valor de ejemplo Nombre hostname Tipo string Configuración Habilite la opción Enlazar a configuración. En el cuadro de texto Configuración, seleccione la configuración a la que desea enlazar la variable. Por ejemplo: seleccione el elemento personalizado Configuración de vRO: nombre de host.
- Guarde el flujo de trabajo.
- En la pestaña Variables, agregue una variable y enlácela a un elemento de configuración.
- Importe el flujo de trabajo en Service Broker.
- Personalice el formulario de solicitud.
- Haga clic en el elemento URL del diseñador de formularios.
- En la pestaña Valores, establezca el origen del valor en Enlazar campo.
- Haga clic en .
- Seleccione la variable hostname o cualquiera de los atributos de flujo de trabajo disponibles.
- Guarde y habilite el formulario.
Cuando un usuario solicita el flujo de trabajo del catálogo, el campo URL se rellena en función de la variable hostname .
Si cambia a un proyecto diferente, los atributos del flujo de trabajo se vuelven a calcular porque el flujo de trabajo puede provenir de una integración de vRealize Orchestrator diferente.