libvirt笔记 获取设备xml信息

获取磁盘信息:

import sys
​import libvirt
​from xml.dom import minidom
​
​domName = 'Fedora22-x86_64-1'
​
​conn = Nonetry:
​    conn = libvirt.open("qemu:///system")except libvirt.libvirtError as e:print(repr(e), file=sys.stderr)
​    exit(1)
​
​dom = conn.lookupByID(1)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)
​diskTypes = xml.getElementsByTagName('disk')for diskType in diskTypes:print('disk: type='+diskType.getAttribute('type')+' device='+diskType.getAttribute('device'))
​    diskNodes = diskType.childNodes
​    for diskNode in diskNodes:if diskNode.nodeName[0:1] != '#':print('  '+diskNode.nodeName)for attr in diskNode.attributes.keys():print('    '+diskNode.attributes[attr].name+' = '+
​                 diskNode.attributes[attr].value)
​
​conn.close()
​exit(0)
<domain type='kvm'>
​    ...
​    <disk type='file' device='disk'><driver name='qemu' type='qcow2' cache='none'/><source file='/var/lib/libvirt/images/RHEL7.1-x86_64-1.img'/><target dev='vda' bus='virtio'/><address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/></disk><disk type='file' device='cdrom'><driver name='qemu' type='raw'/><target dev='hdc' bus='ide'/><readonly/><address type='drive' controller='0' bus='1' target='0' unit='0'/></disk>
​    ...
​</domain>

获取网络信息

import sys
​import libvirt
​from xml.dom import minidom
​
​domName = 'Fedora22-x86_64-1'
​
​conn = Nonetry:
​    conn = libvirt.open("qemu:///system")except libvirt.libvirtError as e:print(repr(e), file=sys.stderr)
​    exit(1)
​
​dom = conn.lookupByID(1)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)
​interfaceTypes = xml.getElementsByTagName('interface')for interfaceType in interfaceTypes:print('interface: type='+interfaceType.getAttribute('type'))
​    interfaceNodes = interfaceType.childNodes
​    for interfaceNode in interfaceNodes:if interfaceNode.nodeName[0:1] != '#':print('  '+interfaceNode.nodeName)for attr in interfaceNode.attributes.keys():print('    '+interfaceNode.attributes[attr].name+' = '+
​                 interfaceNode.attributes[attr].value)
​
​conn.close()
​exit(0)
<domain type='kvm'>
​    ...
​    <interface type='network'><mac address='52:54:00:94:f0:a4'/><source network='default'/><model type='virtio'/><address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/></interface>
​    ...
​</domain>

获取鼠标,键盘等xml信息

import sys
​import libvirt
​from xml.dom import minidom
​
​domName = 'Fedora22-x86_64-1'
​
​conn = Nonetry:
​    conn = libvirt.open("qemu:///system")except libvirt.libvirtError as e:print(repr(e), file=sys.stderr)
​    exit(1)
​
​dom = conn.lookupByID(1)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)
​devicesTypes = xml.getElementsByTagName('input')for inputType in devicesTypes:print('input: type='+inputType.getAttribute('type')+' bus='+inputType.getAttribute('bus'))
​    inputNodes = inputType.childNodes
​    for inputNode in inputNodes:if inputNode.nodeName[0:1] != '#':print('  '+inputNode.nodeName)for attr in inputNode.attributes.keys():print('    '+inputNode.attributes[attr].name+' = '+
​                 inputNode.attributes[attr].value)
​
​conn.close()
​exit(0)
<domain type='kvm'>...<input type='tablet' bus='usb'/><input type='mouse' bus='ps2'/>...</domain>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值