虚拟交换机在vSphere中保存在哪里? (通过pyVmomi)

2024-10-04 01:36:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个虚拟交换机上有许多虚拟端口组。当我执行任务时

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(端口组),但是没有一个交换机(文档声称应该在network目录中)。考虑到文件夹也有name属性,我查看过的所有文件夹都应该打印出来。那么vsphere/vcenter将这些交换机放在哪里呢?在


Tags: 端口namein文件夹hostfornetwork交换机
2条回答

得到主机网络会给你一个网络对象数组,但不是交换机信息。要获取交换机信息,这可能是最直接的方法

datacenters = si.RetrieveContent().rootFolder.childEntity
for datacenter in datacenters:
    networks = datacenter.networkFolder.childEntity
    for network in networks:
        print network.name

网络文件夹包含虚拟交换机和所有端口组。在

要使用pyVmomi检索vSwitch,可以执行以下操作:

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)

结果是:

^{pr2}$

要检索分布式vSwitch,您可以使用vim type=vim.dvs.VmwareDistributedVirtualSwitch参数。在

相关问题 更多 >