pythonlibvirt

get running domains info using python + libvirt


I'm trying to create a simple script that will get various information about running domains on a xen host.

So far, i have :

import libvirt
import pprint
conn = libvirt.open('xen:///')
    
for id in conn.listDomainsID():
    dom = conn.lookupByID(id)
    info = libvirt.virDomainGetInfo(dom)

which gives me the following error :

AttributeError: 'module' object has no attribute 'virDomainGetInfo'

Which, according to the API should at least return me something.

Any clue ? (I'm a python newbie)


Solution

  • From the documentation: 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