Где хранятся виртуальные коммутаторы в vSphere? (через пивмоми)
У меня есть несколько виртуальных групп портов на виртуальном коммутаторе. Когда я выполняю
datacenters = si.RetrieveContent().rootFolder.childEntity
for datacenter in datacenters:
hosts = datacenter.hostFolder.childEntity
for host in hosts:
networks = host.network
for network in networks:
print network.name
(si-это экземпляр службы) Я получаю все VLAN (группы портов) в сети, но ни один из коммутаторов (которые, как утверждают документы, должны быть в сетевом каталоге). Учитывая, что папки также имеют атрибут name, все папки, которые я просматривал, должны были быть напечатаны. Так где же vsphere / vcenter хранит эти коммутаторы?
2 ответа:
Для извлечения vSwitches с помощью pyVmomi можно сделать:
def _get_vim_objects(content, vim_type): '''Get vim objects of a given type.''' return [item for item in content.viewManager.CreateContainerView( content.rootFolder, [vim_type], recursive=True ).view] content = si.RetrieveContent() for host in self._get_vim_objects(content, vim.HostSystem): for vswitch in host.config.network.vswitch: print(vswitch.name)
Результатом будет:
vSwitch0 vSwitch1 vSwitch2
Для извлечения распределенных vSwitches можно использовать функцию _get_vim_objects (выше) с vim_type= vim.программа DVS.Параметр VmwareDistributedVirtualSwitch .
Получение хоста.сеть даст вам массив сетевых объектов,но не информацию о коммутаторе. Чтобы получить информацию о переключателе, это, вероятно, самый простой подход
datacenters = si.RetrieveContent().rootFolder.childEntity for datacenter in datacenters: networks = datacenter.networkFolder.childEntity for network in networks: print network.name
Сетевая папка содержит виртуальные коммутаторы, а также все группы портов.