使用Python和XenAPI模块列出XenCenter清单

时间:2012-08-29 23:27:56

标签: python xen

我正在尝试使用python shell中的XenAPI从Xencenter获取一个简单的服务器清单(按主机名)。但是,有关XenAPI的文档似乎非常稀疏,我甚至无法对需要了解更多信息的对象执行dir()。

我安装了它并运行如下:

# pip install XenAPI
# python
>>> session = XenAPI.Session("http://myhost")
>>> session.xenapi.login_with_password("myuser", "mypass")

我被困在这里。在pysphere有一个简单的方法来提取所有VM,我无法弄清楚如何在XenAPI中做同样的事情。 dir(session)不允许我查看对象 - 看起来 dict ()的实现没有正确完成?

有人有使用此模块的经验吗?

1 个答案:

答案 0 :(得分:3)

例如:

>>> for opaque_ref, vm in session.xenapi.VM.get_all_records().items():
...     print vm["name_label"]

您无法通过dir(session)获取api方法,因为XenAPI的基础协议是XML-RPC,而XenAPI.Session对象只是代理您的请求。

对于将来的信息,有许多全面的API References,其中包含每个班级的字段名称和方法。

由于您使用XenAPI库,因此不应向所有请求添加会话引用,并从结果中获取值:不是.get_all_records("session")['Value'],而是.get_all_records()。 您可以使用XenAPI.Failure异常来捕获所有XenAPI错误。

XenAPI的XenServer对象表示是一个字典,是的。