我想了解pyvmomi中的vim。
我知道vim是这样导入的:from pyvmomi import vim
我试图找到vim在pyvmomi中的定义,但是我还没有找到。在
我尝试了以下步骤:
>>> inspect.getfile(vim)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.7/inspect.py", line 420, in getfile
'function, traceback, frame, or code object'.format(object
TypeError: <pyVmomi.VmomiSupport.LazyModule object at 0xb50690> is not a module, class, method, function, traceback, frame, or code object
>>> globals()['vim']
<pyVmomi.VmomiSupport.LazyModule object at 0xb50690>
>>> locals()['vim']
<pyVmomi.VmomiSupport.LazyModule object at 0xb50690>
>>> vim
然而,我不知道vim在LazyModule中是如何定义的
我想了解
https://github.com/vmware/pyvmomi/tree/master/docs/vim
最初在pyVmomi中定义。在
这些对象大多在这里找到:https://github.com/vmware/pyvmomi/blob/master/pyVmomi/ServerObjects.py和 https://github.com/vmware/pyvmomi/blob/master/pyVmomi/QueryTypes.py和 https://github.com/vmware/pyvmomi/blob/master/pyVmomi/CoreTypes.py
最近添加了SMS支持,这些SMS对象位于此处:https://github.com/vmware/pyvmomi/blob/master/pyVmomi/SmsObjects.py
SPBM对象在这里:https://github.com/vmware/pyvmomi/blob/master/pyVmomi/PbmObjects.py
这些对象是动态创建的,不应编辑此文件的内容,因为它是由VMWare使用其内部构建系统自动生成的。对象是使用VmomiSupport中的工具创建的,VmomiSupport位于此处:https://github.com/vmware/pyvmomi/blob/master/pyVmomi/VmomiSupport.py
要进一步扩展vim在何处以及如何定义,让我们看看服务器对象.py公司名称:
这里使用从VmomiSupport导入的
CreateDataType
方法。此方法需要几个参数:到目前为止,在我们的示例中,vmodlName有
vim.AboutInfo
。其中的vim
部分只是AboutInfo
对象的名称空间。在接下来,我们将
AboutInfo
作为WSDL名称。这只是对象的名称。在接下来是
vmodl.DynamicData
。这是AboutInfo
扩展的类。请参阅此处的SOAP文档:http://www.yavijava.com/docs/vim.AboutInfo.html下一个是
vim.version.version1
,该版本对应于支持的API版本。在最后是道具部分。这是一个元组列表,描述对象的各种属性及其类型,以及它们是否可选。这些属性也可以在上面的文档中看到。在
解析器使用所有这些信息为您动态地构建对象,并构建发送到服务器的XML有效负载。在
所以要回答什么是vim以及它是如何定义的:vim只是vSphere知道的服务器端对象的名称空间,它在pyVmomi中使用与soapwsdl/Documentation相对应的
vmodlName
来定义它(请参阅该链接中的vim.AboutInfo.html
)相关问题 更多 >
编程相关推荐