Pregunta

Estoy tratando de hacer un simple script que hará que diversas informaciones sobre la ejecución de los dominios en un host Xen.

Hasta ahora, he:

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

for id in conn.listDomainsID():
    dom = conn.lookupByID(id)
    infos = libvirt.virDomainGetInfo(dom)

lo que me da el siguiente error:

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

Lo cual, de acuerdo con el API (http://www.libvirt.org/html/libvirt-libvirt.html#virDomainGetInfo) debería al menos retorno mí algo.

¿Alguna pista? (Soy un novato pitón)

¿Fue útil?

Solución

A partir de la documentación: 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

Otros consejos

Para obtener documentación acerca de las API libvirt en pitón, utilice la ayuda en línea.

Comience el intérprete de python (sólo tiene que escribir python en la cáscara).

>>> import libvirt
>>> help(libvirt)

Esto debe darle una documentación detallada sobre libvirt.

import libvirt
import xml.etree.ElementTree as ET
conn = libvirt.open(name)
domain = conn.lookupByName(domain_name)
domain_config = ET.fromstring(domain.XMLDesc())
domain_disks = domain_config.findall('//disk')
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top