pyvmomi操作vmware(二)连接vcenter

在使用这个sdk进行操作的时候必须得先获取对象
再获取对象中的一些信息

class ExecutorBase(object):
    """
    使用pyvmomi获取数据
    """

    def __init__(self, host, user, pwd, port):
        self.host = host
        self.user = user
        self.pwd = pwd
        self.port = port

    def get_service_instance(self):
        service_instance = connect.SmartConnectNoSSL(host=self.host,
                                                     user=self.user,
                                                     pwd=self.pwd,
                                                     port=self.port
                                                     )
        if not service_instance:
            print("connect error")
        else:
            return service_instance

    def get_content(self):
        service_instance = self.get_service_instance()
        content = service_instance.RetrieveContent()
        return content

    def get_container(self, folder=None, obj_type=None):
    	"""
		返回的是对应的对象
		obj_type --> 
		"""
        content = self.get_content()
        if folder is None:
            container = content.viewManager.CreateContainerView(content.rootFolder, obj_type, True)
        else:
            container = content.viewManager.CreateContainerView(folder, obj_type, True)
        return container.view

例:

class DatacenterInfo(ExecutorBase):

    def datacenter_container_list(self):
        return self.get_container(obj_type=[vim.Datacenter])

这个获取的是所有数据中心的对象列表

参数obj_type说明

  • vim.HostSystem 主机
  • vim.Datacenter 数据中心
  • vim.VirtualMachine 虚拟机
发布了23 篇原创文章 · 获赞 0 · 访问量 348

猜你喜欢

转载自blog.csdn.net/Aerkui/article/details/104106828