我正在尝试使用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 ()的实现没有正确完成?
有人有使用此模块的经验吗?
答案 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对象表示是一个字典,是的。