Я пытаюсь создать простой скрипт, который будет получать различную информацию о работе доменов на хосте xen.
Пока у меня есть:
import libvirt import pprint conn = libvirt.open('xen:///') for id in conn.listDomainsID(): dom = conn.lookupByID(id) infos = libvirt.virDomainGetInfo(dom)
, который дает мнеследующая ошибка:
AttributeError: 'module' object has no attribute 'virDomainGetInfo'
Который, согласно API (http://www.libvirt.org/html/libvirt-libvirt.html#virDomainGetInfo) должен хотя бы вернуть мне что-то.
Любая подсказка? (Я новичок в Python)
Из документации: 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
Чтобы получить документацию об API libvirt в python, используйте встроенную справку.
Запустите ваш интерпретатор Python (просто введите python в оболочке).
python
>>> import libvirt >>> help(libvirt)
Это должно дать вам подробную документацию по 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')