39 lines
1.6 KiB
Diff
39 lines
1.6 KiB
Diff
|
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>
|
||
|
|
||
|
Index: virt-manager-1.0.1/virtinst/pollhelpers.py
|
||
|
===================================================================
|
||
|
--- virt-manager-1.0.1.orig/virtinst/pollhelpers.py
|
||
|
+++ virt-manager-1.0.1/virtinst/pollhelpers.py
|
||
|
@@ -138,6 +138,19 @@ def fetch_pools(backend, origmap, build_
|
||
|
|
||
|
if backend.check_support(
|
||
|
backend.SUPPORT_CONN_LISTALLSTORAGEPOOLS):
|
||
|
+
|
||
|
+ # 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,
|
||
|
backend.listAllStoragePools,
|
||
|
"UUIDString", build_func)
|