跳转到主要内容

未提供项目描述

项目描述

简介

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中找到。

项目详情


发行历史 发行通知 | RSS源

下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

wrapanapi-3.6.2.tar.gz (129.6 kB 查看哈希值)

上传时间

构建分发

wrapanapi-3.6.2-py3-none-any.whl (148.2 kB 查看哈希值)

上传时间 Python 3

由以下组织支持