2016-04-05 18 views
1

pyvmomi kullanarak ovf dağıtmaya çalışıyorum. Bu örneği takip etmeye çalışıyorum: https://github.com/vmware/pyvmomi-community-samples/blob/master/samples/deploy_ovf.py.pyVmomi özel durumu

İki adet VCenter kurulumu var ve farklılıklar var. Bir VCenter'da VM'yi dağıtabilirim. Diğer yandan, ben aşağıdaki gibi bir hata vardır:

>>> 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' 
} 

Can bu hatayı giderebilirsiniz nasıl yol birisi noktası? Bu işlevin ne yaptığına bakmaya çalıştım ama bulamadım.

pdb izini ayarlamayı denedim ve başarısız olmasının nedeni bunun 500 yanıtla geri döndüğü ortaya çıkıyor. Çalışılan VCenter'da, 200 yanıtı döndürür. Öyleyse neden aynı çağrı farklı şekilde dönüyor?

cevap

0

Yanlış veri deposunu kullandım. Kullandığım tek tip "Datastore" nin değildi: Ben onun childEntity birini kullanıldığında

>>> type(datastore_obj) 
<class 'pyVmomi.VmomiSupport.vim.StoragePod'> 

, işe yaradı: Ben SoapAdapter bir aralık bırakalım:

İşte
>>> type(datastore_obj.childEntity[0]) 
<class 'pyVmomi.VmomiSupport.vim.Datastore'> 

ayıklamaya yardımcı budur .py. 500 bana döndüğünde, bu Pdb girdi ve ben altta bu satırı içerdiği kendi isteği elde:

<datastore type="StoragePod">datastore-1</datastore> 

çalıştığım diğer vCenter ile karşılaştırıldı

, bu fark gördüm:

<datastore type="Datastore">datastore-10</datastore> 
İlgili konular