diff options
author | Cole Robinson <crobinso@redhat.com> | 2014-02-12 13:57:44 -0500 |
---|---|---|
committer | Cole Robinson <crobinso@redhat.com> | 2014-02-12 13:57:44 -0500 |
commit | a808bd669293ac66047a716b2e84a5a64c99667b (patch) | |
tree | 27727bffc9e975729ab2c0f03baa476ff04ea76e /virtinst/connection.py | |
parent | d680539b46d74259057c0abb116bd4a3f31ca48f (diff) | |
download | virt-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/connection.py')
-rw-r--r-- | virtinst/connection.py | 9 |
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 |