Lorsque vous personnalisez un formulaire de demande Service Broker, vous pouvez baser le comportement de certains champs sur les résultats d'une action vRealize Orchestrator.

Il existe plusieurs moyens d'utiliser les actions vRealize Orchestrator. Vous pouvez avoir une action qui récupère les données à partir d'une source tierce ou vous pouvez utiliser un script qui définit la taille et le coût.

Le premier exemple est basé sur des champs ajoutés manuellement afin que vous compreniez le processus sous-jacent. Le second exemple suit le même principe, mais il s'appuie plutôt sur un champ d'un modèle.

Le troisième exemple est basé sur une option personnalisée qui est ajoutée au formulaire de demande de catalogue, dans lequel l'utilisateur sélectionne un dossier en fonction des résultats d'une action vRealize Orchestrator personnalisée .

Le quatrième exemple utilise les attributs de workflow vRealize Orchestrator pour personnaliser un champ dans le formulaire de demande.

Outre les exemples suivants, d'autres exemples sont disponibles dans le blog de VMware Cloud Management.

Exemple de champs Taille et Coût ajoutés manuellement

Dans ce cas d'utilisation, vous souhaitez que l'utilisateur du catalogue sélectionne une taille de machine virtuelle, puis affiche le coût de la machine par jour. Pour cet exemple, vous disposez d'un script vRealize Orchestrator qui corrèle la taille et le coût. Ajoutez ensuite un champ Taille et un champ Coût au formulaire personnalisé du modèle. Le champ de taille détermine la valeur qui s'affiche dans le champ Coût.

  1. Dans vRealize Orchestrator, configurez une action nommée getWindows10Cost.
    Exemple d'une action de vRealize Orchestrator avec taille et coût
  2. Ajoutez un script.

    Vous pouvez utiliser l'exemple de script suivant.

    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. Ajoutez deploymentSize en tant que chaîne d'entrée.
  4. Dans Service Broker, ajoutez et configurez un champ Taille dans le formulaire personnalisé d'un modèle.

    Configurez le champ Taille comme un élément déroulant avec les valeurs Petit, Moyen et Grand.

    Valeurs du champ Taille renseignées dans le formulaire personnalisé.

    Dans l'onglet Valeurs, configurez les valeurs des propriétés suivantes.

    • Valeur par défaut = Grand
    • Options de valeur
      • Source de la valeur = Constante
      • Définition de la valeur = petit|Petit,moyen|Moyen,grand|Grand
  5. Ajoutez le champ Coût en tant que champ de texte pour afficher le coût tel que défini dans l'action vRealize Orchestrator, basé sur la valeur sélectionnée dans le champ Taille.
    Valeur du champ Coût renseigné dans le formulaire personnalisé.

    Dans l'onglet Valeurs, configurez les valeurs des propriétés suivantes.

    • Valeur par défaut = Source externe
    • Sélectionner une action = <votre dossier d'actions vRealize Orchestrator>/getWindows10Cost
    • Entrées de l'action
      • deploymentSize. Cette valeur a été configurée dans l'action comme entrée.
      • Champ
      • Taille. Il s'agit du champ que vous avez créé précédemment.
  6. Activez le formulaire personnalisé et enregistrez-le.
  7. Pour vérifier qu'il fonctionne, demandez cet élément dans le catalogue. Vous devez voir le champ Coût rempli en fonction de la valeur Taille sélectionnée.
    Exemple rempli dans le catalogue

Exemple de coût basé sur un élément de schéma

Dans ce cas d'utilisation, vous souhaitez que l'utilisateur du catalogue puisse afficher le coût de cette machine par jour en fonction de la propriété Type du modèle. Pour cet exemple, vous utilisez le script vRealize Orchestrator de l'exemple précédent. Cependant, dans ce cas d'utilisation, le coût est basé sur la taille de type que votre utilisateur a sélectionnée dans le formulaire personnalisé lorsqu'il demande l'élément de catalogue Service Broker.

L'exemple de modèle simple inclut un champ d'entrée Taille dans lequel l'utilisateur sélectionne la propriété Type.
Exemple d'entrées pour le mappage de type dans le modèle
Le formulaire personnalisé utilise le champ, nommé Select machine size dans cet exemple.
Options de valeur dans le concepteur de formulaires personnalisés
L'entrée deploymentSize du coût est basée sur le champ Sélectionner la taille de la machine.
Coût basé sur le champ Taille du schéma dans la demande de catalogue

Dossier de destination basé sur un exemple d'action personnalisée

Dans ce cas d'utilisation, vous souhaitez que l'utilisateur du catalogue effectue une sélection dans les dossiers auxquels il a accès lorsqu'il déplace une machine d'un dossier à un autre. Pour mettre en œuvre cet exemple, vous créez une action personnalisée dans vRealize Orchestrator qui renvoie les dossiers disponibles à l'utilisateur demandant l'action à partir du catalogue. Vous personnalisez ensuite le champ Dossier de destination dans le formulaire de demande de catalogue.

Dans le catalogue, le workflow Déplacer des machines virtuelles vers un dossier qui est utilisé dans cet exemple est exposé en tant qu'action sur la ressource personnalisée créée dans Cloud Assembly.

  1. Dans vRealize Orchestrator, créez une action nommée getFolderForUser.
    1. Dans l'onglet Script, ajoutez des entrées d'action, sélectionnez le type de retour de la sortie et ajoutez un script.

      Vous pouvez utiliser l'exemple de script suivant.

      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. Lorsque vous avez terminé la modification de l'action, cliquez sur Enregistrer.
  2. Dans Cloud Assembly, créez une action sur les ressources personnalisées nommée ChangeFolder.
    1. Sélectionnez le type de ressource Cloud.vSphere.Machine.
    2. Sélectionnez le workflow Déplacer des machines virtuelles vers un dossier.
  3. Personnalisez le formulaire de demande que les utilisateurs voient lorsqu'ils demandent l'action.
    1. Ouvrez l'action ChangeFolder.
    2. Cliquez sur Modifier les paramètres de la demande.
    3. Personnalisez le mode de présentation du champ Destination aux utilisateurs.
      Options de valeur Exemple de valeur
      Source de la valeur Source externe
      Sélectionner une action getFolderForUser
      Entrées de l'action

      username Field

      Cliquez sur Sélectionner le type de chaîne > Champs de demande d'informations > Demandé par.

      Cliquez sur Sélectionner.

      Entrées de l'action

      vcUuid

      Cliquez sur Sélectionnez le type de chaîne > Champs de demande d'informations > Propriétés de la ressource > UUID de vCenter.

      Cliquez sur Sélectionner.

    4. Cliquez sur Enregistrer.

Lorsqu'un utilisateur demande l'action dans le catalogue, il peut sélectionner un dossier de destination pour la machine virtuelle dans les dossiers qui lui sont accessibles.

Exemple de nom d'hôte basé sur des attributs de workflow

Dans ce cas d'utilisation, vous souhaitez personnaliser le champ URL dans le formulaire de demande à l'aide des attributs de workflow vRealize Orchestrator. Pour cet exemple, vous avez besoin d'un workflow vRealize Orchestrator avec un attribut ou une variable qui a une valeur constante ou qui est lié à un élément de configuration. La valeur initiale de l'attribut ou de la variable doit être définie, car la liaison est effectuée avant l'exécution du workflow.
  1. Dans vRealize Orchestrator, créez ou clonez un workflow existant. Par exemple, clonez le workflow Ajouter un hôte REST.
    1. Dans l'onglet Variables, ajoutez une variable et liez-la à un élément de configuration.
      Options de valeur Exemple de valeur
      Nom hostname
      Type string
      Configuration Activez l'option Lier à la configuration.

      Dans la zone de texte Configuration, sélectionnez la configuration à laquelle vous souhaitez lier la variable. Par exemple, sélectionnez l'élément personnalisé Configuration vRO : hostname.

    2. Enregistrez le workflow.
  2. Importez le workflow dans Service Broker.
  3. Personnalisez le formulaire de demande.
    1. Cliquez sur l'élément URL dans le concepteur de formulaires.
    2. Dans l'onglet Valeurs, définissez la source de valeur sur Champ de liaison.
    3. Cliquez sur Champ de valeur > Champ de demande d'informations.
    4. Sélectionnez la variable hostname ou l'un des attributs de workflow disponibles.
  4. Enregistrez et activez le formulaire.

Lorsqu'un utilisateur demande le workflow depuis le catalogue, le champ URL est renseigné en fonction de la variable hostname.

Si vous passez à un autre projet, les attributs du workflow sont recalculés, car le workflow peut provenir d'une intégration vRealize Orchestrator différente.