Справочная информация
Я пытаюсь извлечь всю информацию из 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()
все еще содержит ошибки некоторых типов ресурсов.Например, ошибки тревоги, как видно выше.