Pyvmomi поддерживает типы - PullRequest
       24

Pyvmomi поддерживает типы

0 голосов
/ 02 апреля 2019

Справочная информация

Я пытаюсь извлечь всю информацию из VMware, которую я могу, через ее API и pyvmomi.

Я заметил из примеров pyvmomi, что этокак получить все vms на экземпляре vsphere:

import yaml
from pyVmomi import vim
from pyVim.connect import SmartConnect, Disconnect, SmartConnectNoSSL
si = SmartConnectNoSSL(host=vserver, user=user, pwd=password, port=port)
container = si.RetrieveContent().viewManager.CreateContainerView(si.RetrieveContent().rootFolder, [vim.VirtualMachine], True)

Теперь я надеюсь перебрать список всех типов извлекаемых ресурсов (таких как vim.VirtualMachine, vim.ResourcePool и т. д.)

Но я не могу найти этот список.

Вопрос: Что это за список?

Есть ли способ найти этот список из модуля pyvmomi?

Дополнительная информация

Я использовал эту ссылку: https://vdc -download.vmware.com / vmwb-repository / dcr-public / 6b586ed2-655c-49d9-9029-bc416323cb22 / fa0b429a-a695-4c11-b7d2-2cbc284049dc / doc / index.html , чтобы найти список всех управляемых объектов в vmware, но многие из них не поддерживаются.И я не знаю, содержит ли этот список все поддерживаемые типы pyVmomi.Только эти ресурсы:

ResourcePool
VirtualApp
Datacenter
VirtualMachine
Datastore
Network
ClusterComputeResource
OpaqueNetwork
HostSystem
DistributedVirtualPortgroup
ManagedEntity
ComputeResource
VmwareDistributedVirtualSwitch
StoragePod
Folder
DistributedVirtualSwitch

Не выдавайте ошибку в коде container =.Например, vim.Alarm не поддерживается в вызове RetrieveContent, но он существует как часть vim.

Ошибка:

container = si.RetrieveContent().viewManager.CreateContainerView(si.RetrieveContent().rootFolder, [vim.Alarm], True)

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/root/vmware-extract/vmware-extract-0.1.0/env/lib/python2.7/site-packages/pyVmomi/VmomiSupport.py", line 706, in <lambda>
    self.f(*(self.args + (obj,) + args), **kwargs)
  File "/root/vmware-extract/vmware-extract-0.1.0/env/lib/python2.7/site-packages/pyVmomi/VmomiSupport.py", line 512, in _InvokeMethod
    return self._stub.InvokeMethod(self, info, args)
  File "/root/vmware-extract/vmware-extract-0.1.0/env/lib/python2.7/site-packages/pyVmomi/SoapAdapter.py", line 1374, in InvokeMethod
    raise obj # pylint: disable-msg=E0702
pyVmomi.VmomiSupport.InvalidArgument: (vmodl.fault.InvalidArgument) {
   dynamicType = <unset>,
   dynamicProperty = (vmodl.DynamicProperty) [],
   msg = 'A specified parameter was not correct: type',
   faultCause = <unset>,
   faultMessage = (vmodl.LocalizableMessage) [],
   invalidProperty = u'type'
}

EDIT 1

from pyVmomi import vim
vim.Alarm
dir(vim) 
vim.VirtualMachine
dir(vim)

возвращает

['Alarm','__call__', '__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattr__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'fault', 'name']
['Alarm', 'VirtualMachine', '__call__', '__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattr__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'name']

dir(vim) не будет перечислять какой-либо тип ресурса, пока я не узнаю его сначала, и введите vim.resourceTypeNameHere

Но даже если это такв списке, строка RetrieveContent() все еще содержит ошибки некоторых типов ресурсов.Например, ошибки тревоги, как видно выше.

...