zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Python Module_oslo.vmware_连接 vCenter

PythonVMware连接 module vCenter
2023-09-27 14:28:47 时间
oslo.vmware 是一个由 Python 实现的 vCenter 连接驱动 , 提供了连接并操作 vCenter 的 Method .

oslo.vmware 是一个由 Python 实现的 vCenter 连接驱动 , 提供了连接并操作 vCenter 的 Method . 如果希望应用 Openstack 来接管 vCenter 的资源(调用 vSphere SDK) 的话,那么 olso.vmware 将会是一个不错的选择 .

注意: 本篇的代码需要一个测试用的 vCenter 环境

vSphere Web Service SDK


# Get information by properties of MO object rep2 = session.invoke_api(vim_util,get_object_properties_dict,session.vim, result1.objects[0].obj,vm) print "*"*50 print rep2
# session.invoke_api() method of oslo_vmware.api.VMwareAPISession instance # :param module: module corresponding to the VIM API call # :param method: method in the module which corresponds to the VIM API call # :param args: arguments to the method # :param kwargs: keyword arguments to the method # :returns: response from the API call # :raises: VimException, VimFaultException, VimAttributeException, # VimSessionOverLoadException, VimConnectionException # 调用 API 获取一个 MO, 使用这个 MO 来进一步获取别的信息 # Return instance of suds.sudsobject.RetrieveResult In [83]: hostSystem = session.invoke_api(vim_util, # Module get_objects, # Method session.vim, HostSystem, # Managed Object(SDK) 100)
# 有 _type 属性,可以在 SDK 中找到 "HostSystem" 的 Description, # 并且根据 Description 提供的 Properties 进一步获取别的信息。 EG. vm In [83]: vmResponse = session.invoke_api(vim_util, get_object_properties_dict, session.vim, hostSystem.objects[0].obj, vm)
# 有 _type 属性,可以在 SDK 中找到 "VirtualMachine" 的 Description, # 并且根据 Description 提供的 Properties 进一步获取别的信息。 EG. summary In [83]: summaryResponse = session.invoke_api(vim_util, get_object_properties_dict, session.vim, vmResponse[vm].ManagedObjectReference[0], summary)
# 当 Output 非常多时,可以使用 IPython 的特殊用法来实现过滤(Python 和 Shell 结合)。 In [118]: test = summaryResponse[0] In [117]: !echo $test | grep _type _type = "VirtualMachine" _type = "VirtualMachine" _type = "HostSystem"
# 有 _type 属性,可以在 SDK 中找到 "VirtualMachine" 的 Description, # 并且根据 Description 提供的 Properties 进一步获取别的信息。 EG. config In [126]: configResponse = session.invoke_api(vim_util, get_object_properties_dict, session.vim, summaryResponse[0].obj, config)

使用小结:
1. session.invoke_api() 传递 oslo.vmware 提供的 method 到 vCenter
2. method: get_objects 获取 MO 对象
3. method: get_object_properties_dict 获取 MO 对象的属性信息的字典 EG. 获取 HostSystem 的 MO 对象
4. MO 对象中含有 _type 属性的对象, 其 _type 的值能在 SDK 中找到对应的 Properties
5. 将含有 _type 属性的对象和对应的 SDK 中的 Properties 值传递给 session.invoke_api() 方法就可以获取相应的值
EXAMPLE:

session.invoke_api(vim_util, get_object_properties_dict, session.vim,

 hostSystem.objects[0].obj, # hostSystem.objects[0].obj 对象中含有 _type 属性, 其值为 HostSystem

 vm) # 在 SDK 中找到 HostSystem MO type ,提供了Properties: vm

python 使用ftplib连接ftp服务器获取目录、文件及它们的修改时间 * 获取当前路径或者指定路径下的文件、目录 * 检查指定路径是目录还是文件 * 根据目录、文件的修改时间来判断是否下载ftp的文件。 由于ftplib中的FTP无法满足我这一需求,所以只能重写一个MyFTP类继承FTP,写一个方法来实现,除了这个还实现了一个获取当前目录下的所有目录及文件。
Win10系统下基于Docker构建Appium容器连接Android模拟器Genymotion完成移动端Python自动化测试 Python自动化,大概也许或者是今年最具热度的话题之一了。七月流火,招聘市场上对于Python自动化的追捧热度仍未消减,那么Python自动化到底能帮我们做些什么呢? 第一,Python自动化可以避免熟练工种的重复工作,对于功能相对完整和成熟的软件,每发布一个新的版本,无论是大版本还是小版本,其中大部分功能和界面都几乎和上一个版本相似或完全相同,但所谓向上兼容,你不能因为新功能的产生而不对老版本功能进行测试工作,而这些老功能又在上一个版本上线时测过,所以这部分功能特别适合于自动化测试,从而可以让测试达到测试每个特征的目的。