我正在尝试使用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()的实现未正确完成?

有人对此模块有经验吗?

最佳答案

例如:

>>> 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对象表示是一个命令,是的。

关于python - 使用Python和XenAPI模块列出XenCenter list ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12187896/

10-13 05:04