2015-05-04 22:15:01 +02:00
|
|
|
Reference: bnc#887868
|
2014-07-24 21:44:55 +02:00
|
|
|
Refresh pools status before fetch_pools.
|
|
|
|
|
|
|
|
Currently, when connecting to hypervisor, if there are pools active
|
|
|
|
but in fact target path already deleted (or for other reasons the
|
|
|
|
pool is not working), libvirtd not refresh status yet, fetch_pools
|
|
|
|
will fail, that will cause "connecting to hypervisor" process
|
|
|
|
reporting error and exit. The whole connection work failed.
|
|
|
|
|
|
|
|
With the patch, always refresh pool status before fetch pools. Let
|
|
|
|
the libvirtd pool status reflect the reality, avoid the non-synced
|
|
|
|
status affects the hypervisor connection.
|
|
|
|
|
|
|
|
Signed-off-by: Chunyan Liu <cyliu@suse.com>
|
|
|
|
|
2018-10-30 23:00:52 +01:00
|
|
|
Index: virt-manager-2.0.0/virtinst/pollhelpers.py
|
2014-07-24 21:44:55 +02:00
|
|
|
===================================================================
|
2018-10-30 23:00:52 +01:00
|
|
|
--- virt-manager-2.0.0.orig/virtinst/pollhelpers.py
|
|
|
|
+++ virt-manager-2.0.0/virtinst/pollhelpers.py
|
|
|
|
@@ -121,6 +121,19 @@ def fetch_pools(backend, origmap, build_
|
2014-07-24 21:44:55 +02:00
|
|
|
|
|
|
|
if backend.check_support(
|
2017-10-30 21:23:56 +01:00
|
|
|
backend.SUPPORT_CONN_LISTALLSTORAGEPOOLS) and not FORCE_OLD_POLL:
|
2014-07-24 21:44:55 +02:00
|
|
|
+
|
|
|
|
+ # Refresh pools before poll_helper. For those
|
|
|
|
+ # 'active' but target path not exist (or other reasons
|
|
|
|
+ # causing the pool not working), but libvirtd not
|
|
|
|
+ # refresh the status, this will make it refreshed
|
|
|
|
+ # and mark that pool as 'inactive'.
|
|
|
|
+ objs = backend.listAllStoragePools()
|
|
|
|
+ for obj in objs:
|
|
|
|
+ try:
|
|
|
|
+ obj.refresh(0)
|
|
|
|
+ except Exception, e:
|
|
|
|
+ pass
|
|
|
|
+
|
|
|
|
return _new_poll_helper(origmap, name,
|
2014-10-29 18:03:15 +01:00
|
|
|
backend.listAllStoragePools, build_func)
|
|
|
|
else:
|