diff --git a/cloudcontrol/node/hypervisor/lib.py b/cloudcontrol/node/hypervisor/lib.py index a7659ef557b627fb995dd22ac42b92975c75f0c6..d9244b8c3eff6b31338b35cb92f7501de40b3b92 100644 --- a/cloudcontrol/node/hypervisor/lib.py +++ b/cloudcontrol/node/hypervisor/lib.py @@ -437,18 +437,21 @@ class Storage(object): return True if self.type in Storage.SHARED_TYPES else False def update(self): - self.lv_storage.refresh() - self.update_attr() - - # update volumes - for vol_name in self.lv_storage.listVolumes(): - if vol_name in self.volumes: - # update volume - self.volumes[vol_name].update() - else: - # add volume - v = Volume(self, self.lv_storage.storageVolLookupByName(vol_name)) - self.volumes[v.name] = v + try: + self.lv_storage.refresh() + self.update_attr() + + # update volumes + for vol_name in self.lv_storage.listVolumes(): + if vol_name in self.volumes: + # update volume + self.volumes[vol_name].update() + else: + # add volume + v = Volume(self, self.lv_storage.storageVolLookupByName(vol_name)) + self.volumes[v.name] = v + except libvirt.libvirtError as err: + logger.warning('Unable to update storage %s: %s', self.name, err) def update_attr(self): self.state, self.capacity, self.allocation, self.available = self.lv_storage.info()