使用python + libvirt获取运行域信息

Dis*_*sco 5 python libvirt

我正在尝试做一个简单的脚本,它将获得有关在xen主机上运行域的各种信息.

到目前为止,我有:

import libvirt
import pprint
conn = libvirt.open('xen:///')

for id in conn.listDomainsID():
    dom = conn.lookupByID(id)
    infos = libvirt.virDomainGetInfo(dom)
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误:

AttributeError: 'module' object has no attribute 'virDomainGetInfo'
Run Code Online (Sandbox Code Playgroud)

根据API(http://www.libvirt.org/html/libvirt-libvirt.html#virDomainGetInfo),至少应该给我一些东西.

任何线索?(我是一个蟒蛇新手)

Len*_*bro 5

从文档:http://www.libvirt.org/python.html

There is a couple of function who don't map directly to their C counterparts due to specificities in their argument conversions:

    * virConnectListDomains is replaced by virDomain::listDomainsID(self) which returns a list of the integer ID for the currently running domains
    * virDomainGetInfo is replaced by virDomain::info() which returns a list of
         1. state: one of the state values (virDomainState)
         2. maxMemory: the maximum memory used by the domain
         3. memory: the current amount of memory used by the domain
         4. nbVirtCPU: the number of virtual CPU
         5. cpuTime: the time used by the domain in nanoseconds
Run Code Online (Sandbox Code Playgroud)

  • 这意味着`infos = libvirt.virDomainGetInfo(dom)`必须是`infos = dom.info()`. (2认同)