我正在尝试使用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/