我正在尝试使用pyVmomi部署ovf。我试着遵循这个例子:https://github.com/vmware/pyvmomi-community-samples/blob/master/samples/deploy_ovf.py。
有两种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'
}谁能指出解决这个错误的方法?我试着查看这个函数的功能,但找不到。
我尝试设置pdb跟踪,结果发现失败的原因是返回500响应。在工作正常的VCenter上,它返回200响应。那么为什么相同的调用会返回不同的结果呢?
发布于 2016-04-08 19:47:58
我使用了错误的数据存储。我使用的不是“Datastore”类型:
>>> type(datastore_obj)
<class 'pyVmomi.VmomiSupport.vim.StoragePod'>当我使用它的一个childEntity时,它起作用了:
>>> type(datastore_obj.childEntity[0])
<class 'pyVmomi.VmomiSupport.vim.Datastore'>下面是对调试有帮助的地方:我在SoapAdapter.py中设置了一个断点。当500返回给我时,它进入pdb,我获得了我自己的请求,它在底部包含以下行:
<datastore type="StoragePod">datastore-1</datastore>当我将它与其他工作的VCenter进行比较时,我看到了这个区别:
<datastore type="Datastore">datastore-10</datastore>https://stackoverflow.com/questions/36435995
复制相似问题