JavaScript サンプルを切り取り、貼り付け、および編集することで、CRUD vRealize Automation タスクのスクリプトを記述できます。

vRealize Orchestrator でのスクリプト記述の詳細については、『VMware vRealize Orchestrator を使用した開発』を参照してください。

vRealize Automation モデル エンティティの作成

このサンプル スクリプトは、次のアクションを実行します。

  1. モデル名およびエンティティの設定名を定義します。

  2. ホスト プリフィックスのプロパティを定義します。

  3. ホスト プリフィックスのエンティティを保存します。

  4. プロビジョニング グループのプロパティを定義します。

  5. プロビジョニング グループをリンクとして定義します。

  6. プロビジョニング グループのエンティティをホスト名のプリフィックスを付けて保存します。

表 1. 入力変数

変数

タイプ

host

vCAC:VcacHost

var modelName = 'ManagementModelEntities.svc';
var entitySetName = 'HostNamePrefixes';
var links = null;
var headers = null;
//Create properties for prefix entity
var prefixInputProperties = {
   MachinePrefix:'test-prefix',
   NextMachineNo:1,
   MachineNumberLength:3
};
//Save the prefix
var prefixEntity = vCACEntityManager
  .createModelEntity(host.id, modelName, entitySetName, prefixInputProperties, links, headers);
entitySetName = 'ProvisioningGroups';
//Create properties for the provisioning group entity
inputProperties = {
   GroupName:'TestGroupName',
   GroupDescription:'This group was generated with a vCO workflow',
   AdministratorEmail:'test@test.com',
   AdContainer:'AD',
   IsTestGroup:false,
   Flags:2,
   GroupType:1};
//Add a reference to the newly created prefix entity
links = {
 HostNamePrefix:prefixEntity
};
//Save the provisioning group
var entity = vCACEntityManager.createModelEntity(host.id, modelName, entitySetName, inputProperties, links, headers);

vRealize Automation モデル エンティティの更新

このサンプル スクリプトは、次のアクションを実行します。

  1. 指定のエンティティからホスト ID を取得します。

  2. 指定のエンティティからモデル名を取得します。

  3. 指定のエンティティからエンティティの設定名を取得します。

  4. 指定のエンティティからエンティティ ID を取得します。

  5. 更新するプロパティを定義します。

  6. エンティティを更新するアクションを開始します。

表 2. 入力変数

変数

Type

entity

vCAC:Entity

updatedDescription

文字列

var hostId = entity.hostId;
var modelName = entity.modelName;
var entitySetName = entity.entitySetName;
var entityIdString = entity.keyString;
var links = null;
var headers = null;
var updateProperties = new Properties();
updateProperties.put("UserNameDescription", updatedDescription);
//Update the user description
System.getModule("com.vmware.library.vcac")
  .updateVCACEntity(hostId, modelName, entitySetName, entityIdString, updateProperties, links, headers);

vRealize Automation モデル エンティティの読み込み

このサンプル スクリプトは、次のアクションを実行します。

  1. モデル名およびエンティティの設定名を定義します。

  2. プロパティ オブジェクトにブループリント ID を定義します。

  3. エンティティを読み込みます。

表 3. 入力変数

変数

Type

host

vCAC:VcacHost

blueprintID

文字列

var modelName = 'ManagementModelEntities.svc';
var entitySetName = 'VirtualMachineTemplates';
var links = null;
var headers = null;
//Create properties for the prefix entity
var blueprintId = {
  VirtualMachineTemplateID:blueprintId,
};
//Read the blueprint
var entity = vCACEntityManager
  .readModelEntity(host.id, modelName, entitySetName, blueprintId, headers);

vRealize Automation モデル エンティティの削除

このサンプル スクリプトは、次のアクションを実行します。

  1. 指定のエンティティからホスト ID を取得します。

  2. 指定のエンティティからモデル名を取得します。

  3. 指定のエンティティからエンティティの設定名を取得します。

  4. 指定のエンティティからエンティティ ID を取得します。

  5. エンティティを削除するアクションを開始します。

表 4. 入力変数

変数

タイプ

entity

vCAC:Entity

var hostId = entity.hostId;
var modelName = entity.modelName;
var entitySetName = entity.entitySetName;
var entityKeyString = entity.keyString;
var headers = null;
//Delete the entity
System.getModule("com.vmware.library.vcac")
  .deleteVCACEntity(hostId, modelName, entitySetName, entityKeyString, headers);

カスタム フィルタを使用した vRealize Automation エンティティの読み取り

このサンプル スクリプトは、次のアクションを実行します。

  1. モデル名およびエンティティの設定名を定義します。

  2. エンティティのフィルタとして使用するプロパティを定義します。

  3. エンティティのリストを読み込みます。

表 5. 入力変数

変数

Type

host

vCAC:VcacHost

templateName

文字列

var modelName = 'ManagementModelEntities.svc';
var entitySetName = 'VirtualMachineTemplates';
var headers = null;
//Create properties for prefix entity
var properties = {
   VirtualMachineTemplateName:templateName,
};
//Read a list of entities
var entities = vCACEntityManager
  .readModelEntitiesByCustomFilter(host.id, modelName, entitySetName, properties, headers);

システム クエリを使用した vRealize Automation エンティティの読み取り

このサンプル スクリプトは、次のアクションを実行します。

  1. モデル名およびエンティティの設定名を定義します。

  2. エンティティのフィルタとして使用するシステム クエリを指定し、マシン状態とコンポーネント フラグでフィルタされたすべての仮想マシンの上位 10 位の結果を選択します。

  3. エンティティのリストを読み込みます。

表 6. 入力変数

変数

タイプ

host

vCAC:VcacHost

var modelName = 'ManagementModelEntities.svc';
var entitySetName = 'VirtualMachines';
var filter = "VirtualMachineState eq 'Off' and IsComponent eq true";
var orderBy = 'VirtualMachineName asc';
var top = 10; {
var skip = 0;,
var headers = null;
var select = null;
var entities = vCACEntityManager
  readModelEntitiesBySystemQuery(host.id, modelName, entitySetName, filter, orderBy, select, top, skip, headers);