Итак, я нахожусь в процессе обучения python с модулем libvirt. Вот небольшой скрипт, который я сделал, который проверяет, успешно ли установлено соединение с libvirtd, и проверяет один домен. Я не разработчик, и я использую несколько ярлыков, поэтому не понимаю, как работает python или модуль libvirt. Но в настоящий момент моя настоящая проблема заключается в том, почему мой скрипт закрывается, если соединение не установлено или домен не найден.
#!/usr/bin/env python3
from __future__ import print_function
import sys
import libvirt
domName = 'server1'
conn = libvirt.open('qemu:///system')
if conn == None:
print('Failed to open connection to qemu:///system', file=sys.stderr)
exit(1)
else:
print('Connection opened sucessfully')
dom = conn.lookupByName(domName)
if dom == None:
print('Failed to find the domain '+domName, file=sys.stderr)
exit(1)
else:
print('Domain '+domName+' was found')
conn.close()
exit(0)
Например, служба libvirtd остановлена, а соединение не установлено и вместо этого идет дальше по линии в операторе if он просто печатает некоторые ошибки и останавливается, поэтому есть оператор if, который должен это проверить, но в этом случае он не имеет никакой функциональности. Выглядит так:
[root@localhost Documents]# ./virt.py
libvirt: XML-RPC error : Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory
Traceback (most recent call last):
File "./virt.py", line 11, in <module>
conn = libvirt.open('qemu:///system')
File "/usr/local/lib64/python3.6/site-packages/libvirt.py", line 277, in open
if ret is None:raise libvirtError('virConnectOpen() failed')
libvirt.libvirtError: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory
[root@localhost Documents]#
Мне удалось подавить ошибки, но потом это все то же самое, но без ошибок. Также я нашел этот скрипт здесь .