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.

  1. En vRealize Orchestrator, configure una acción con el nombre getWindows10Cost.
    Ejemplo de una acción de vRealize Orchestrator con tamaño y coste
  2. 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;
  3. Agregue deploymentSize como cadena de entrada.
  4. 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.

    Valores rellenados en el campo de tamaño del formulario personalizado.

    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
  5. 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.
    Valor rellenado en el campo de coste del formulario personalizado.

    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.
  6. Habilite el formulario personalizado y guárdelo.
  7. 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 rellenado en el catálogo

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.

La plantilla de ejemplo simple incluye un campo de entrada de tamaño en el que el usuario selecciona la propiedad de tipo.
Ejemplo de entradas para la asignación de tipos en la plantilla
El formulario personalizado utiliza el campo, denominado Select machine size en este ejemplo.
Opciones de valor en el diseñador de formularios personalizados
La entrada deploymentSize de coste se basa en el campo Seleccionar tamaño de la máquina.
Costo basado en el campo de tamaño de esquema en la solicitud de catálogo

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.

  1. En vRealize Orchestrator, cree una acción con el nombre getFolderForUser.
    1. 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;
    2. Cuando termine de edita la acción, haga clic en Guardar.
  2. En Cloud Assembly, cree una acción personalizada con el nombre ChangeFolder.
    1. Seleccione el tipo de recurso Cloud.vSphere.Machine.
    2. Seleccione el flujo de trabajo Mover máquinas virtuales a la carpeta.
  3. Personalice el formulario de solicitud que los usuarios ven cuando solicitan la acción.
    1. Abra la acción ChangeFolder.
    2. Haga clic en Editar parámetros de solicitud.
    3. 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 Seleccionar cadena > Solicitar campos de información > Solicitado por.

      Haga clic en Seleccionar.

      Entradas de acción

      vcUuid

      Haga clic en Seleccionar cadena > Solicitar campos de información > Propiedades de recursos > UUID de vCenter.

      Haga clic en Seleccionar.

    4. 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 este caso práctico, desea personalizar el campo URL en el formulario de solicitud mediante atributos de flujo de trabajo de vRealize Orchestrator. Para realizar este ejemplo necesita un flujo de trabajo de vRealize Orchestrator con un atributo o una variable que tengan un valor constante o que estén enlazados a un elemento de configuración. El atributo o la variable deben tener un valor inicial establecido porque el enlace se realiza antes de ejecutar el flujo de trabajo.
  1. En vRealize Orchestrator, cree o clone un flujo de trabajo existente. Por ejemplo, clone el flujo de trabajo Agregar un host de REST.
    1. 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.

    2. Guarde el flujo de trabajo.
  2. Importe el flujo de trabajo en Service Broker.
  3. Personalice el formulario de solicitud.
    1. Haga clic en el elemento URL del diseñador de formularios.
    2. En la pestaña Valores, establezca el origen del valor en Enlazar campo.
    3. Haga clic en Campo Valor > Campos de información de solicitud.
    4. Seleccione la variable hostname o cualquiera de los atributos de flujo de trabajo disponibles.
  4. 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.