使用Python和XenAPI模块列出XenCenter清单
我试图使用python shell中的XenAPI从Xencenter获得一个简单的服务器清单(按主机名)。然而,关于XenAPI的文档似乎非常稀少,我甚至无法对需要进一步了解的对象执行dir() 我安装了它并按如下方式运行:使用Python和XenAPI模块列出XenCenter清单,python,xen,Python,Xen,我试图使用python shell中的XenAPI从Xencenter获得一个简单的服务器清单(按主机名)。然而,关于XenAPI的文档似乎非常稀少,我甚至无法对需要进一步了解的对象执行dir() 我安装了它并按如下方式运行: # pip install XenAPI # python >>> session = XenAPI.Session("http://myhost") >>> session.xenapi.login_with_password("my
# 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
对象只是代理您的请求
对于每个类,都有许多关于字段名和方法的综合信息
因为您使用的是XenAPI
库,所以不应该向所有请求添加会话引用并从结果中获取值:不是。获取所有记录(“会话”)['value']
,而是。获取所有记录()。
您可以使用XenAPI.Failure
Exception捕捉所有XenAPI错误
是的,XenAPI
的XenServer对象表示是dict。您还可以通过在会话上调用system.listMethods()
列出所有对象及其方法。您甚至不需要登录,通过XenAPI.Session(“http://myhost)
。