libvirt — Определение объема, который использует домен через API

В virt-manager при просмотре вкладки «Хранилище» в разделе «Сведения о подключении» есть столбец «Используется», в котором показан домен, использующий каждый том:

введите здесь описание изображения

Как я могу определить эту самую информацию, а именно, домен, используя данный том, используя API (привязки python)?

Я просмотрел документацию по API и запустил dir() на libvirt, libvirt.virConnect, libvirt .virStoragePool и libvirt.virStorageVol, но я все еще не понимаю этого.


person billyw    schedule 24.01.2014    source источник
comment
Я пытаюсь найти документацию для libvirt python API, но до сих пор не смог найти. Ссылка, указанная в вопросе, также не работает. Можете ли вы/кто-нибудь получить ссылку на документацию?   -  person Soumyajit    schedule 01.05.2020


Ответы (1)


Вот решение, которое я нашел на данный момент. С именем домена виртуальной машины он возвращает абсолютный путь тома, используемого доменом.

import libvirt
from xml.etree import ElementTree as ET

URI = "qemu:///system"
VM = "truffles"

# Get the virDomain object
conn = libvirt.open(URI)
domain_object = conn.lookupByName(VM)

# Get the XML description of the VM
vm_xml = domain_object.XMLDesc(0)

# Get the volume in use from the element tree
root = ET.fromstring(vm_xml)
disk_source = root.find('./devices/disk/source')
volume_in_use = disk_source.get('file')

print volume_in_use
person billyw    schedule 25.01.2014