您可以剪下、貼上和編輯 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. 從提供的實體取得主機識別碼。

  2. 從提供的實體取得模型名稱。

  3. 從提供的實體取得實體集名稱。

  4. 從提供的實體取得實體識別碼。

  5. 定義將進行更新的內容組合。

  6. 開始執行更新實體所需的動作。

表格 2. 輸入變數

變數

類型

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. 以內容物件定義藍圖識別碼。

  3. 讀取實體。

表格 3. 輸入變數

變數

類型

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. 從提供的實體取得主機識別碼。

  2. 從提供的實體取得模型名稱。

  3. 從提供的實體取得實體集名稱。

  4. 從提供的實體取得實體識別碼。

  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. 輸入變數

變數

類型

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. 定義篩選實體所用的系統查詢,並選取按機器狀態和元件旗標篩選後,所產生的前十項虛擬機器結果。

  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);