在使用这个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 虚拟机