diff options
author | Cole Robinson <crobinso@redhat.com> | 2014-02-27 13:16:21 -0500 |
---|---|---|
committer | Cole Robinson <crobinso@redhat.com> | 2014-02-27 13:16:21 -0500 |
commit | f67df117017e6de855a8c0e900e47fe920dfaa48 (patch) | |
tree | 731db9edcd7266b458af2f504b9fed3c712bbec8 /virtManager | |
parent | 77553c7e49e6660b993dc46c8f2a6cb704c68b20 (diff) | |
download | virt-manager-f67df117017e6de855a8c0e900e47fe920dfaa48.tar.gz |
vmm connection: Handle missing storage volumes (bz 1070883)
Similar to what was done in a808bd669293ac66047a716b2e84a5a64c99667b
for the virtinst connection wrapper.
Diffstat (limited to 'virtManager')
-rw-r--r-- | virtManager/connection.py | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/virtManager/connection.py b/virtManager/connection.py index 6f6c8384..96dfa1c9 100644 --- a/virtManager/connection.py +++ b/virtManager/connection.py @@ -172,10 +172,17 @@ class vmmConnection(vmmGObject): self._backend.cb_fetch_all_pools = ( lambda: [obj.get_xmlobj(refresh_if_nec=False) for obj in self.pools.values()]) - self._backend.cb_fetch_all_vols = ( - lambda: [obj.get_xmlobj(refresh_if_nec=False) - for pool in self.pools.values() - for obj in pool.get_volumes(refresh=False).values()]) + + def fetch_all_vols(): + ret = [] + for pool in self.pools.values(): + for vol in pool.get_volumes(refresh=False).values(): + try: + ret.append(vol.get_xmlobj(refresh_if_nec=False)) + except libvirt.libvirtError, e: + logging.debug("Fetching volume XML failed: %s", e) + return ret + self._backend.cb_fetch_all_vols = fetch_all_vols def clear_cache(pools=False): if not pools: |