域在libvirt中是使用xml文件定义的。所有只与域相关的内容,如内存和CPU,都在域XML中定义。域XML格式在http://libvirt.org/formatdomain.html上指定。如果您的系统安装了libvirt-devel包,那么您可以在/usr/share/doc/libvirt- developer -version/目录下进行本地访问。
客户域的配置信息可以通过使用XMLDesc方法获取。此方法以XML数据流的形式返回域的当前描述。然后可以对该流进行解析,以获取关于域和组成域的所有部分的详细信息。
flags参数可以包含以下任意数量的常量:
VIR_DOMAIN_XML_SECURE
VIR_DOMAIN_XML_INACTIVE
VIR_DOMAIN_XML_UPDATE_CPU
VIR_DOMAIN_XML_MIGRATABLE
import sys
import libvirt
from xml.dom import minidom
domName = 'Fedora22-x86_64-1'
conn = None
try:
conn = libvirt.open("qemu:///system")
except libvirt.libvirtError as e:
print(repr(e), file=sys.stderr)
exit(1)
dom = conn.lookupByID(5)
if dom == None:
print('Failed to find the domain '+domName, file=sys.stderr)
exit(1)
raw_xml = dom.XMLDesc(0)
xml = minidom.parseString(raw_xml)
domainTypes = xml.getElementsByTagName('type')
for domainType in domainTypes:
print(domainType.getAttribute('machine'))
print(domainType.getAttribute('arch'))
conn.close()
exit(0)