Где хранятся виртуальные коммутаторы в 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 2

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

Сетевая папка содержит виртуальные коммутаторы, а также все группы портов.