您可以剪切、粘贴和编辑 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. 输入变量

变量

类型

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. 输入变量

变量

类型

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. 输入变量

变量

类型

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