我正在尝试使用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的分布式端口组吗?
非常感谢任何帮助。
答案 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>
非常简单!