diff --git a/cloudcontrol/node/hypervisor/domains/__init__.py b/cloudcontrol/node/hypervisor/domains/__init__.py index 50f77fe7cef0209805d23d938ce59774a0bf5748..38d2d8fec651d9014c0677b2bbeddf48818382d8 100644 --- a/cloudcontrol/node/hypervisor/domains/__init__.py +++ b/cloudcontrol/node/hypervisor/domains/__init__.py @@ -75,7 +75,8 @@ class VirtualMachine(object): Tag('disk%s_path' % i, v.path, 10), Tag('disk%s_pool' % i, v.storage.name, 10), # FIXME: change Tag('disk%s_vol' % i, v.name, 10), - Tag('disk%s_cache' % i, lambda: self.cache_behaviour.get(v.path), 10) + Tag('disk%s_cache' % i, lambda: self.cache_behaviour.get(v.path), 10), + Tag('disk%s_shared' % i, lambda: {True: 'yes', False: 'no'}[v.storage.is_shared]) ): self.tag_db.add_tag(t) diff --git a/cloudcontrol/node/hypervisor/lib.py b/cloudcontrol/node/hypervisor/lib.py index 0caa4e03be439bd385b2eb18c1adbb785a160400..76204be8aebc18cca8e29bd5182b8a5ec42da108 100644 --- a/cloudcontrol/node/hypervisor/lib.py +++ b/cloudcontrol/node/hypervisor/lib.py @@ -411,6 +411,9 @@ class StorageIndex(object): class Storage(object): """Storage abstraction.""" + + SHARED_TYPES = ['rbd'] + def __init__(self, lv_storage): """ :param lv_storage: Libvirt pool storage instance @@ -428,6 +431,10 @@ class Storage(object): self.volumes = {} self.update() + @property + def is_shared(self): + return True if self.type in Storage.SHARED_TYPES else False + def update(self): self.update_attr()