I'm trying to use virt-manager with a custom libvirt hypervisor driver.
My current problem is that virt-manager closes the connection because virNodeGetInfo(the
python binding) returns None:
Traceback (most recent call last):
File "/home/cloehle/Documents/libvirt/virt-manager/virtManager/connection.py",
line 1390, in tick_from_engine
self._tick(*args, **kwargs)
File "/home/cloehle/Documents/libvirt/virt-manager/virtManager/connection.py",
line 1280, in _tick
self._hostinfo = self._backend.getInfo()
File "/usr/lib/python2.7/dist-packages/libvirt.py", line 3612, in getInfo
if ret is None: raise libvirtError ('virNodeGetInfo() failed', conn=self)
libvirtError: internal error: client socket is closed
The virNodeGetInfo function of my driver should set a valid virNodeInfoPtr, since it only
consists of the line:
return nodeGetInfo(NULL, info);
virsh shows no problems which is why I suspect this is a problem with libvirt-python.
So I looked at the source and the first thing that I noticed is in line 2753 of
libvirt-override.c:
if (!PyArg_ParseTuple(args, (char *)"O:virDomainGetInfo", &pyobj_conn))
return NULL;
Since this is for virNodeGetInfo this should probably be virNodeGetInfo instead of
domain(the same thing occurs in line 2794 for another function).
This could be my source of error but doesn't have to be. Could someone walk me through
finding the reason why libvirt-python returns None for my virNodeGetInfo?
Is there any good way of debugging where exactly libvirt-python encounters an error and
returns None?
Any help appreciated,
Christian Loehle