[Kimchi-devel] [PATCH] use LibvirtConnection instead of libivrt open directily to to get connection
Aline Manera
alinefm at linux.vnet.ibm.com
Thu Jun 5 14:34:07 UTC 2014
On 05/26/2014 12:05 AM, Royce Lv wrote:
> I think the reason you succeed in using LibvirtConnection may be it
> retries several times when encountering error.
> LibvirtConnection is useful to me for it reuse the connection instance
> and avoid opening new instance.
> But with differenct LibvirtConnection object, I think reuse cannot work.
> So what about a global object for all feature tests?
Usually we call the FeatureTests in CapabilitiesModel()
In CapabilitiesModel() there is already a LibvirtConnection instance -
maybe we can reuse it while calling FeatureTests()
>
> On 2014年05月22日 22:26, shaohef at linux.vnet.ibm.com wrote:
>> From: ShaoHe Feng <shaohef at linux.vnet.ibm.com>
>>
>> On my F20, the kimchi can not start. It report:
>> $ sudo PYTHONPATH=src ./src/kimchid
>> *** Running feature tests ***
>> [21/May/2014:19:41:48] ENGINE Error in 'start' listener <bound method
>> CapabilitiesModel._set_capabilities of
>> <kimchi.model.config.CapabilitiesModel object at 0x314ac10>>
>> Traceback (most recent call last):
>> File "/usr/lib/python2.7/site-packages/cherrypy/process/wspbus.py",
>> line 197, in publish
>> output.append(listener(*args, **kwargs))
>> File "/home/shhfeng/work/workdir/kimchi/src/kimchi/model/config.py",
>> line 69, in _set_capabilities
>> self.metadata_support = FeatureTests.has_metadata_support()
>> File "/home/shhfeng/work/workdir/kimchi/src/kimchi/featuretests.py",
>> line 197, in has_metadata_support
>> conn = libvirt.open('qemu:///system')
>> File "/usr/lib64/python2.7/site-packages/libvirt.py", line 247, in
>> open
>> if ret is None:raise libvirtError('virConnectOpen() failed')
>> libvirtError: Failed to connect socket to
>> '/var/run/libvirt/libvirt-sock': Connection refused
>>
>> [21/May/2014:19:41:48] ENGINE Shutting down due to error in start
>> listener:
>> [21/May/2014:19:41:48] ENGINE Bus STOPPING
>>
>> Now use LibvirtConnection to get connection, kimchi can work well.
>>
>> Signed-off-by: ShaoHe Feng <shaohef at linux.vnet.ibm.com>
>> ---
>> src/kimchi/featuretests.py | 9 +++++----
>> 1 file changed, 5 insertions(+), 4 deletions(-)
>>
>> diff --git a/src/kimchi/featuretests.py b/src/kimchi/featuretests.py
>> index 5192361..df833e1 100644
>> --- a/src/kimchi/featuretests.py
>> +++ b/src/kimchi/featuretests.py
>> @@ -28,6 +28,7 @@
>> from lxml.builder import E
>>
>>
>> +from kimchi.model.libvirtconnection import LibvirtConnection
>> from kimchi.rollbackcontext import RollbackContext
>> from kimchi.utils import kimchi_log
>>
>> @@ -104,7 +105,7 @@ def libvirt_supports_iso_stream(protocol):
>> conn = None
>> try:
>> FeatureTests.disable_screen_error_logging()
>> - conn = libvirt.open('qemu:///system')
>> + conn = LibvirtConnection('qemu:///system').get()
>> dom = conn.defineXML(xml)
>> dom.undefine()
>> return True
>> @@ -122,7 +123,7 @@ def _get_xml():
>> xml = ET.tostring(obj)
>> return xml
>> try:
>> - conn = libvirt.open('qemu:///system')
>> + conn = LibvirtConnection('qemu:///system').get()
>> FeatureTests.disable_screen_error_logging()
>> conn.findStoragePoolSources('netfs', _get_xml(), 0)
>> except libvirt.libvirtError as e:
>> @@ -174,7 +175,7 @@ def qemu_iso_stream_dns():
>> def libvirt_support_fc_host():
>> try:
>> FeatureTests.disable_screen_error_logging()
>> - conn = libvirt.open('qemu:///system')
>> + conn = LibvirtConnection('qemu:///system').get()
>> pool = None
>> pool = conn.storagePoolDefineXML(SCSI_FC_XML, 0)
>> except libvirt.libvirtError as e:
>> @@ -194,7 +195,7 @@ def has_metadata_support():
>> with RollbackContext() as rollback:
>> FeatureTests.disable_screen_error_logging()
>> rollback.prependDefer(FeatureTests.enable_screen_error_logging)
>> - conn = libvirt.open('qemu:///system')
>> + conn = LibvirtConnection('qemu:///system').get()
>> rollback.prependDefer(conn.close)
>> dom = conn.defineXML(SIMPLE_VM_XML)
>> rollback.prependDefer(dom.undefine)
>
> _______________________________________________
> Kimchi-devel mailing list
> Kimchi-devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/kimchi-devel
More information about the Kimchi-devel
mailing list