obtener información correr dominios usando Python + libvirt
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)
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