Loading cloudcontrol/node/hypervisor/lib.py +14 −4 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ """Helpers for libvirt.""" import logging import time from itertools import chain, imap, count from StringIO import StringIO from xml.etree import cElementTree as et Loading Loading @@ -303,7 +304,7 @@ class StorageIndex(object): self.paths = None self.update() def update(self): def update(self, retry=1): """Update storage pools and volumes.""" # go through all storage pools and check if it is already in the index for lv_storage in imap( Loading @@ -315,7 +316,7 @@ class StorageIndex(object): ): if lv_storage.name() in self.storages: # update self.storages[lv_storage.name()].update() self.storages[lv_storage.name()].update(retry) else: # add storage pool s = Storage(lv_storage) Loading Loading @@ -416,6 +417,7 @@ class Storage(object): """Storage abstraction.""" SHARED_TYPES = ['rbd'] REFRESH_RETRY_INTERVAL = 1 def __init__(self, lv_storage): """ Loading @@ -438,9 +440,17 @@ class Storage(object): def is_shared(self): return True if self.type in Storage.SHARED_TYPES else False def update(self): def update(self, retry=1): for _ in xrange(retry): try: self.lv_storage.refresh() except libvirt.libvirtError as err: logger.warning('Unable to refresh storage %s: %s', self.name, err) time.sleep(self.REFRESH_RETRY_INTERVAL) else: break try: self.lv_storage.refresh() self.update_attr() # update volumes Loading Loading
cloudcontrol/node/hypervisor/lib.py +14 −4 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ """Helpers for libvirt.""" import logging import time from itertools import chain, imap, count from StringIO import StringIO from xml.etree import cElementTree as et Loading Loading @@ -303,7 +304,7 @@ class StorageIndex(object): self.paths = None self.update() def update(self): def update(self, retry=1): """Update storage pools and volumes.""" # go through all storage pools and check if it is already in the index for lv_storage in imap( Loading @@ -315,7 +316,7 @@ class StorageIndex(object): ): if lv_storage.name() in self.storages: # update self.storages[lv_storage.name()].update() self.storages[lv_storage.name()].update(retry) else: # add storage pool s = Storage(lv_storage) Loading Loading @@ -416,6 +417,7 @@ class Storage(object): """Storage abstraction.""" SHARED_TYPES = ['rbd'] REFRESH_RETRY_INTERVAL = 1 def __init__(self, lv_storage): """ Loading @@ -438,9 +440,17 @@ class Storage(object): def is_shared(self): return True if self.type in Storage.SHARED_TYPES else False def update(self): def update(self, retry=1): for _ in xrange(retry): try: self.lv_storage.refresh() except libvirt.libvirtError as err: logger.warning('Unable to refresh storage %s: %s', self.name, err) time.sleep(self.REFRESH_RETRY_INTERVAL) else: break try: self.lv_storage.refresh() self.update_attr() # update volumes Loading