toc*_*ode 2 python vim pyvmomi
我想了解pyvmomi中的vim.
据我所知,vim是这样导入的:from pyvmomi import vim
我试图找到pyvmomi中定义vim的位置,但我还没有找到它.
我尝试了以下步骤:
>>> 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
Run Code Online (Sandbox Code Playgroud)
但是,我没有得到如何在LazyModule中定义vim
我想了解
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中的工具创建对象:https://github.com/vmware/pyvmomi/blob/master/pyVmomi/VmomiSupport.py
要进一步扩展vim定义的位置和方式,请查看ServerObjects.py:
CreateDataType("vim.AboutInfo", "AboutInfo", "vmodl.DynamicData", "vim.version.version1", [("name", "string", "vim.version.version1", 0), ("fullName", "string", "vim.version.version1", 0), ("vendor", "string", "vim.version.version1", 0), ("version", "string", "vim.version.version1", 0), ("build", "string", "vim.version.version1", 0), ("localeVersion", "string", "vim.version.version1", F_OPTIONAL), ("localeBuild", "string", "vim.version.version1", F_OPTIONAL), ("osType", "string", "vim.version.version1", 0), ("productLineId", "string", "vim.version.version1", 0), ("apiType", "string", "vim.version.version1", 0), ("apiVersion", "string", "vim.version.version1", 0), ("instanceUuid", "string", "vim.version.version5", F_OPTIONAL), ("licenseProductName", "string", "vim.version.version5", F_OPTIONAL), ("licenseProductVersion", "string", "vim.version.version5", F_OPTIONAL)])
Run Code Online (Sandbox Code Playgroud)
这里CreateDataType使用从VmomiSupport导入的方法.此方法需要一些参数:
到目前为止,我们vim.AboutInfo为vmodlName提供了示例.这vim部分只是AboutInfo对象的命名空间.
接下来我们有AboutInfoWSDL名称.这只是对象的名称.
接下来是vmodl.DynamicData.这是AboutInfo扩展的类.请参阅此处的SOAP文档:http://www.yavijava.com/docs/vim.AboutInfo.html
接下来是vim.version.version1支持的API版本.
最后是道具部分.这是一个元组列表,用于描述对象的各种属性及其类型,以及它们是否可选.这些也可以在上面的文档链接中看到,其中为对象定义了属性.
解析器使用所有这些信息为您动态构建对象,并构建转发到服务器的XML有效负载.
那么回答什么是vim以及它是如何定义的:vim只是vSphere知道的服务器端对象的命名空间,并且它在pyVmomi中使用vmodlName对应于SOAP WSDL/Documentation的定义(参见该链接vim.AboutInfo.html)
| 归档时间: |
|
| 查看次数: |
4016 次 |
| 最近记录: |