我们如何使用vCloud Java API向VMWare VM添加自定义属性?

时间:2012-03-28 02:20:20

标签: java api rest cloud vmware

我正在使用VMWare提供的vCloud Java API在其企业云解决方案中自动创建VM。我能做到这一点很好。但是,我无法想象在VM上设置自定义属性。我已经检查了VMWare API参考,我找不到任何直观地建议如何执行此操作的内容。任何见解可能都有帮助吗?

以下是我迄今为止编写的用于配置VM的代码,我想向其添加自定义属性配置。

private static SourcedCompositionItemParamType addVAppTemplateItem(String vAppNetwork, MsgType networkInfo, String vmHref, String ipAddress, String vmName) {
    SourcedCompositionItemParamType vappTemplateItem = new SourcedCompositionItemParamType();
    ReferenceType vappTemplateVMRef = new ReferenceType();
    vappTemplateVMRef.setHref(vmHref);
    vappTemplateVMRef.setName(vmName);
    vappTemplateItem.setSource(vappTemplateVMRef);


    NetworkConnectionSectionType networkConnectionSectionType = new NetworkConnectionSectionType();
    networkConnectionSectionType.setInfo(networkInfo);

    NetworkConnectionType networkConnectionType = new NetworkConnectionType();
    networkConnectionType.setNetwork(vAppNetwork);
    networkConnectionType.setIpAddressAllocationMode(IpAddressAllocationModeType.MANUAL.value());
    networkConnectionType.setIpAddress(ipAddress);
    networkConnectionType.setIsConnected(true);
    networkConnectionSectionType.getNetworkConnection().add(networkConnectionType);

    InstantiationParamsType vmInstantiationParamsType = new InstantiationParamsType();
    List<JAXBElement<? extends SectionType>> vmSections = vmInstantiationParamsType.getSection();
    vmSections.add(new ObjectFactory().createNetworkConnectionSection(networkConnectionSectionType));
    vappTemplateItem.setInstantiationParams(vmInstantiationParamsType);
    return vappTemplateItem;
}

1 个答案:

答案 0 :(得分:1)

在浏览REST API文档后,我意识到您将Custom Properties放入ProductSection。遗憾的是,在创建VApp时我无法找到添加ProductSection的方法,因此在创建VApp之后通过检索VM并在其上调用updateProductSections来添加ProductSection。

来自VMWare community forum

的回复