2016-10-08 1 views
1

저는 pyvmomi에서 vim을 이해하고 싶습니다.
정력이 다음과 같이 가져 왔음을 이해합니다. from pyvmomi import vim
정력이 pyvmomi에서 정의 된 위치를 찾으려고했지만 아직 찾지 못했습니다. pyvmomi에서 vim을 이해하십시오.

나는 다음 단계를 시도 : 정력이 LazyModule에 정의되어 어떻게하지 않았다, 그러나

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

내가 데이터 객체가
에 나와있는 위치를 이해하고 싶습니다

https://github.com/vmware/pyvmomi/tree/master/docs/vim 은 처음에는 pyVmomi에서 정의됩니다. https://github.com/vmware/pyvmomi/blob/master/pyVmomi/ServerObjects.pyhttps://github.com/vmware/pyvmomi/blob/master/pyVmomi/QueryTypes.py 및 최근 https://github.com/vmware/pyvmomi/blob/master/pyVmomi/CoreTypes.py

SMS 지원이 추가되었습니다 그 SMS 개체는 여기에 있습니다 : : 대부분의 경우

답변

4

이러한 개체는 여기있다 https://github.com/vmware/pyvmomi/blob/master/pyVmomi/SmsObjects.py

그리고 SPBM 객체 현재 위치 : https://github.com/vmware/pyvmomi/blob/master/pyVmomi/PbmObjects.py

이러한 개체는 동적으로 만들어지며이 파일의 내용은 내부 빌드 시스템과 함께 VMWare에서 자동 생성되므로 편집하지 않아야합니다. 여기

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)]) 

CreateDataType 방법을 수입하는 데 사용됩니다 https://github.com/vmware/pyvmomi/blob/master/pyVmomi/VmomiSupport.py

어떻게 정력이 정의하는 ServerObjects.py에서 볼 수 있습니다 어디에 대해 더 확장하려면 : 객체는 여기 VmomiSupport 도구를 사용하여 만들어집니다 VmomiSupport에서. 이 방법은 몇 가지 매개 변수를 취합니다.

  1. vmodlName (VM웨어 관리 객체 디자인 언어 이름)
  2. wsdlName (유형의 WSDL 이름) 부모 유형의
  3. 부모합니다 (VMODL 이름을 즉, 그것을 수행 .이 더 많은 API 버전은 vSphere의 버전이 아닌 다른 클래스)
  4. 버전 (유형의 버전을 확장 할 수 있습니다. 이러한 버전)는 WSDL에
  5. 소품 (유형 특성)
검색 결과 0

예를 들어, vmodlName에 대해 vim.AboutInfo이 있습니다. vim 부분은 AboutInfo 개체의 네임 스페이스에 불과합니다.

다음은 WSDL 이름에 대해 AboutInfo입니다. 이것은 객체의 이름 일뿐입니다.

다음은 vmodl.DynamicData입니다. 이것은 AboutInfo가 확장되는 클래스입니다. 아래 SOAP 문서를 참조하십시오. http://www.yavijava.com/docs/vim.AboutInfo.html

다음은 지원되는 API 버전의 vim.version.version1입니다.

마지막으로 소품 섹션입니다. 이것은 유형이있는 오브젝트의 다양한 특성을 설명하는 튜플의 목록이고, 유형이 선택적인지 여부입니다. 이것들은 객체에 대한 속성이 정의 된 위의 문서 링크에서도 볼 수 있지만 볼 수 있습니다.

파서는이 모든 정보를 사용하여 개체를 동적으로 작성하고 서버로 이동하는 XML 페이로드를 작성합니다.

vim이란 무엇이며 어떻게 정의되어 있습니까? vim은 vSphere가 알고있는 서버 측 객체의 네임 스페이스이며, SOAP WSDL/Documentation에 해당하는 vmodlName을 사용하여 pyVmomi에 정의되어 있습니다. 그 사람 vim.AboutInfo.html을 연결)

+0

정보 주셔서 감사합니다 마이클! 예, inspect.getfile (vim)에서 VmomiSupport.py는 언급 된 문서와 같이 "vim"개체를 가지고 있음을 보여줍니다. – tocode

+0

블록에 "vim"이 VmomiSupport.py에 정의되어 있다는 힌트를 주시겠습니까? 감사합니다, – tocode

+0

vim에 대한 더 나은 설명을 포함하도록 원래 주석을 업데이트했습니다. 이 질문에 대한 답변이 나에게 알려 주시면 알려드립니다. –