summaryrefslogtreecommitdiff
path: root/virtinst
diff options
context:
space:
mode:
authorCole Robinson <crobinso@redhat.com>2014-02-12 13:57:44 -0500
committerCole Robinson <crobinso@redhat.com>2014-02-12 13:57:44 -0500
commita808bd669293ac66047a716b2e84a5a64c99667b (patch)
tree27727bffc9e975729ab2c0f03baa476ff04ea76e /virtinst
parentd680539b46d74259057c0abb116bd4a3f31ca48f (diff)
downloadvirt-manager-a808bd669293ac66047a716b2e84a5a64c99667b.tar.gz
connection: Handle volume XMLDesc errors (bz 1064275)
This commonly happens when a file is deleted from a storage pool behind libvirt's back.
Diffstat (limited to 'virtinst')
-rw-r--r--virtinst/connection.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/virtinst/connection.py b/virtinst/connection.py
index 0fa097cd..210d927b 100644
--- a/virtinst/connection.py
+++ b/virtinst/connection.py
@@ -225,8 +225,13 @@ class VirtualConnection(object):
pool = self._libvirtconn.storagePoolLookupByName(xmlobj.name)
ignore, ignore, vols = pollhelpers.fetch_volumes(
self, pool, {}, lambda obj, ignore: obj)
- ret += [StorageVolume(weakref.ref(self), parsexml=obj.XMLDesc(0))
- for obj in vols.values()]
+
+ for vol in vols.values():
+ try:
+ xml = vol.XMLDesc(0)
+ ret.append(StorageVolume(weakref.ref(self), parsexml=xml))
+ except libvirt.libvirtError, e:
+ logging.debug("Fetching volume XML failed: %s", e)
if self.cache_object_fetch:
self._fetch_cache[key] = ret