manager.CreateImportSpec上的pyVmomi异常

manager.CreateImportSpec上的pyVmomi异常,pyvmomi,Pyvmomi,我正在尝试使用pyVmomi部署ovf。我试图遵循以下示例: 有两种VCenter设置,但存在差异。在一个VCenter上,我可以部署VM。另一方面,我的失败如下: >>> spec_result = manager.CreateImportSpec(ovfd, rp_obj, datastore_obj,spec_params) Traceback (most recent call last): File "<stdin>", line 1, in <

我正在尝试使用pyVmomi部署ovf。我试图遵循以下示例:

有两种VCenter设置,但存在差异。在一个VCenter上,我可以部署VM。另一方面,我的失败如下:

>>> spec_result = manager.CreateImportSpec(ovfd, rp_obj, datastore_obj,spec_params)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/aitang/virenvs/py343/lib/python3.4/site-packages/pyVmomi/VmomiSupport.py", line 570, in <lambda>
    self.f(*(self.args + (obj,) + args), **kwargs)
  File "/Users/aitang/virenvs/py343/lib/python3.4/site-packages/pyVmomi/VmomiSupport.py", line 376, in _InvokeMethod
    return self._stub.InvokeMethod(self, info, args)
  File "/Users/aitang/virenvs/py343/lib/python3.4/site-packages/pyVmomi/SoapAdapter.py", line 1350, in InvokeMethod
    raise obj # pylint: disable-msg=E0702
pyVmomi.VmomiSupport.InvalidType: (vmodl.fault.InvalidType) {
   dynamicType = <unset>,
   dynamicProperty = (vmodl.DynamicProperty) [],
   msg = '',
   faultCause = <unset>,
   faultMessage = (vmodl.LocalizableMessage) [],
   argument = 'ManagedObjectReference'
}
>>spec_result=manager.CreateImportSpec(ovfd、rp_obj、数据存储对象、spec_参数)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/Users/aitang/virenvs/py343/lib/python3.4/site packages/pyVmomi/VmomiSupport.py”,第570行,在
self.f(*(self.args+(obj,)+args),**kwargs)
文件“/Users/aitang/virenvs/py343/lib/python3.4/site packages/pyVmomi/vmomistupport.py”,第376行,在调用方法中
返回self.\u stub.InvokeMethod(self、info、args)
InvokeMethod中的文件“/Users/aitang/virenvs/py343/lib/python3.4/site packages/pyVmomi/SoapAdapter.py”,第1350行
升起对象#pylint:禁用消息=E0702
pyVmomi.VmomiSupport.InvalidType:(vmodl.fault.InvalidType){
dynamicType=,
dynamicProperty=(vmodl.dynamicProperty)[],
味精=“”,
faultCause=,
faultMessage=(vmodl.LocalizableMessage)[],
参数='ManagedObjectReference'
}
有人能指出我如何解决这个错误吗?我试图查看此函数的功能,但找不到它


我试着设置pdb跟踪,结果发现它失败的原因是它返回了一个500响应。在工作的VCenter上,它返回200响应。那么为什么同一个调用返回的结果会不同呢?

我使用了错误的数据存储。我使用的不是“数据存储”类型:

>类型(数据存储\u obj)
当我使用其中一个childEntity时,它起了作用:

>>> type(datastore_obj.childEntity[0])
<class 'pyVmomi.VmomiSupport.vim.Datastore'>
>>类型(数据存储\u obj.childEntity[0])
以下是调试的帮助:我在SoapAdapter.py中放置了一个断点。当500返回给我时,它进入了pdb,我获得了我自己的请求,该请求在底部包含以下行:

<datastore type="StoragePod">datastore-1</datastore>
datastore-1
当我将其与另一个有效的VCenter进行比较时,我发现了以下区别:

<datastore type="Datastore">datastore-10</datastore>
datastore-10

我使用了错误的数据存储。我使用的不是“数据存储”类型:

>类型(数据存储\u obj)
当我使用其中一个childEntity时,它起了作用:

>>> type(datastore_obj.childEntity[0])
<class 'pyVmomi.VmomiSupport.vim.Datastore'>
>>类型(数据存储\u obj.childEntity[0])
以下是调试的帮助:我在SoapAdapter.py中放置了一个断点。当500返回给我时,它进入了pdb,我获得了我自己的请求,该请求在底部包含以下行:

<datastore type="StoragePod">datastore-1</datastore>
datastore-1
当我将其与另一个有效的VCenter进行比较时,我发现了以下区别:

<datastore type="Datastore">datastore-10</datastore>
datastore-10