在VMware vSphere SOAP api中创建具有VLAN ID的分布式端口组

时间:2015-04-14 21:49:21

标签: soap vmware vsphere

我正在尝试使用SOAP api在VMware vSphere的VDS中创建具有vlan ID的分布式端口组。我可以让它创建端口组,但它永远不会分配vlan id。以下是我作为规范发送给CreateDVPortGroup_Task方法的请求(在托管对象浏览器中):

<spec>
   <name>Test</name>
   <numPorts>10</numPorts>
   <defaultPortConfig type="VMwareDVSPortSetting">
     <vlan>
       <inherited>false</inherited>
       <vlanId>123</vlanId>
     </vlan>
   </defaultPortConfig>
   <type>earlyBinding</type>
   <autoExpand>false</autoExpand>
</spec>

这会创建一个端口组,但不会设置vlanId。

我发现它需要一个用于defaultPortConfig的DVPortSetting,但是vsphere将它保留为VMwareDVSPortSetting对象。

我通过other means在网上看到了一些例子,但我只需要SOAP消息的格式。有人可以为我提供一个示例soap请求,它会创建一个带有vlan id的分布式端口组吗?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

最后通过查看vijava的实现来找出它。您必须使用'xsi:type',而不是使用type属性。我在寻找的是:

<spec xsi:type="DVPortgroupConfigSpec">
   <name>Test</name>
   <numPorts>10</numPorts>
   <defaultPortConfig xsi:type="VMwareDVSPortSetting">
     <vlan xsi:type="VmwareDistributedVirtualSwitchVlanIdSpec">
       <inherited>false</inherited>
       <vlanId>123</vlanId>
     </vlan>
   </defaultPortConfig>
   <type>earlyBinding</type>
   <autoExpand>false</autoExpand>
</spec>

非常简单!