未提供项目描述
项目描述
简介
wrapanapi是一个简单的虚拟化客户端,支持以下(不同程度的)功能:
红帽企业虚拟化(RHEV)
红帽开源云(RHOS)
红帽开源Shift
OpenShift
VMware vCenter
微软SCVMM
微软Azure
谷歌计算引擎
Hawkular
亚马逊EC2
它可以用来控制虚拟化客户端,并提供以下操作:
list_vm(返回vm_names列表)
list_template(返回模板/图像列表)
start_vm(启动vm)
stop_vm(停止vm)
尽管在云和基础设施虚拟化技术(例如,实例/vm)的概念上名称不同,但已决定在代码库和接口中坚持一种表示,以提供跨所有系统的单一API。
安装
Wrapanapi可以通过pip安装,命令为pip install wrapanapi始终使用virtualenv安装pip包是个好主意。
对于Linux用户,根据您所使用的发行版,您可能需要安装以下包(或与您的Linux发行版相似的包)
libcurl-devel
openssl-devel
libxml2-devel
libxml2-static
gcc
如果您不确定是否真的需要这些包,在安装过程中可能会遇到错误,这将让您清楚地知道您需要它。Pycurl就是这样一种包,它要求您安装上面列出的包,您可以在http://pycurl.io/docs/latest/install.html上了解更多信息。
使用方法
通常使用主机名和一些凭证调用每个管理系统。
from wrapanapi.virtualcenter import VMWareSystem
system = VMWareSystem(hostname='10.0.0.0', username="root", password="password")
system.list_vm()
添加新的管理系统
管理系统应该扩展基类,并为不支持的项目提供“未实现”的引发。随着越来越多的多样化管理系统,这种行为可能会在未来发生变化。
from base import WrapanapiAPIBase
class RHEVMSystem(WrapanapiAPIBase):
_stats_available = {
'num_vm': lambda self: self.api.get_summary().get_vms().total,
'num_host': lambda self: len(self.list_host()),
'num_cluster': lambda self: len(self.list_cluster()),
'num_template': lambda self: len(self.list_template()),
'num_datastore': lambda self: len(self.list_datastore()),
}
def __init__(self, hostname, username, password, **kwargs):
super(RHEVMSystem, self).__init__(kwargs)
如果未通过logger
关键字传递,则调用super
是必要的,以设置日志记录器。
然后,开发者可以添加自己的方法来与其自己的管理系统交互。常见的统计信息通常在管理系统之间命名相同。这样,我们可以将多个管理系统视为相同,并使用相同的方法检查RHEV系统上的虚拟机数量,以及VMware系统。
当前异常位于单个模块中,这可能会在将来发生变化,每个管理系统都有自己的包,并在其中存储异常。
此模块最初是为协助ManageIQ测试团队而开发的。
贡献
关于此项目的指南可以在cfme dev_guide中找到。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。