Python Pyvmomi Operation VMware (dos): obtenga el centro de datos, el clúster, el host, los datos de la máquina virtual y los campos de atributos específicos del objeto

Primero use pyVim para conectarse a vcenter para obtener los objetos operables de vcenter:
# -*- coding: utf-8 -*-
from pyVim.connect import SmartConnectNoSSL


class VmManage(object):

    def __init__(self, host, user, password, port, ssl):
        self.host = host
        self.user = user
        self.pwd = password
        self.port = port
        self.sslContext = ssl
        try:
            self.client = SmartConnectNoSSL(host=host,
                                            user=user,
                                            pwd=password,
                                            port=443
                                            )
            self.content = self.client.RetrieveContent()
            self.result = True
        except Exception as e:
            self.result = False
            self.message = e
Agregue un método para obtener un objeto en el objeto de la clase VmManage:
    def _get_all_objs(self, obj_type, folder=None):
        """
        根据对象类型获取这一类型的所有对象
        """
        if folder is None:
            container = self.content.viewManager.CreateContainerView(self.content.rootFolder, obj_type, True)
        else:
            container = self.content.viewManager.CreateContainerView(folder, obj_type, True)
        return container.view


   def _get_obj(self, obj_type, name):
        """
        根据对象类型和名称来获取具体对象
        """
        obj = None
        content = self.client.RetrieveContent()
        container = content.viewManager.CreateContainerView(content.rootFolder, obj_type, True)
        for c in container.view:
            if c.name == name:
                obj = c
                break
        return obj
Obtener objeto del centro de datos:
    def get_datacenters(self):
        """
       返回所有的数据中心
        """
        return self._get_all_objs([vim.Datacenter])


    def get_datacenter_by_name(self, datacenter_name):
        """
       根据数据中心名称获取数据中心对象
        """
        return self._get_all_objs([vim.Datacenter], datacenter_name)
Obtenga clúster, host, máquina virtual
集群对象类型:[vim.ClusterComputeResource]
宿主机对象类型:[vim.HostSystem]
虚拟机对象:[vim.VirtualMachine]
Llame a la prueba:
if __name__ == '__main__':
    ip = '192.10.1.1'
    user = 'xxxxxxxx'
    password = 'xxxx'
    port = 443
    vm = VmManage(host=ip,
                  user=user,
                  password=password,
                  port=port, ssl=None)
    cluster_objs = vm._get_all_objs([vim.ClusterComputeResource])
    print cluster_objs

Obtenga los resultados de la prueba del objeto de clúster:

(ManagedObject) [
   'vim.ClusterComputeResource:domain-c400',
   'vim.ClusterComputeResource:domain-c70'
]

A continuación, ¿cómo debo obtener los atributos de estos grupos y cómo encontrar los campos específicos correspondientes a estos atributos?

print dir(cluster_objs[0])
注意:在这里可以对获取的对象组中的一个对象查看具有的属性

Vea el resultado del campo de atributo del objeto de clúster:
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_42631707/article/details/100659941
Recomendado
Clasificación