Fix Bug Unable to get scoped data model
This patch removes 'audit_scope' from __init__ of BaseClusterDataModelCollector class, as it is a singleton class and cannot be instantiate more than once. A new method is defined in BaseClusterDataModelCollector in place of property audit_scope_handler, which takes audit_scope as argument. Change-Id: I0664c151d71a711c118d43c180d8b0760b1c81fa Closes-Bug: #1732849
This commit is contained in:
@@ -123,19 +123,13 @@ class BaseClusterDataModelCollector(loadable.LoadableSingleton):
|
||||
|
||||
STALE_MODEL = model_root.ModelRoot(stale=True)
|
||||
|
||||
def __init__(self, config, osc=None, audit_scope=None):
|
||||
def __init__(self, config, osc=None):
|
||||
super(BaseClusterDataModelCollector, self).__init__(config)
|
||||
self.osc = osc if osc else clients.OpenStackClients()
|
||||
self._cluster_data_model = None
|
||||
self.lock = threading.RLock()
|
||||
self._audit_scope = audit_scope
|
||||
self._audit_scope_handler = None
|
||||
|
||||
@abc.abstractproperty
|
||||
def audit_scope_handler(self):
|
||||
"""Get audit scope handler"""
|
||||
raise NotImplementedError()
|
||||
|
||||
@property
|
||||
def cluster_data_model(self):
|
||||
if self._cluster_data_model is None:
|
||||
@@ -163,6 +157,11 @@ class BaseClusterDataModelCollector(loadable.LoadableSingleton):
|
||||
def set_cluster_data_model_as_stale(self):
|
||||
self.cluster_data_model = self.STALE_MODEL
|
||||
|
||||
@abc.abstractmethod
|
||||
def get_audit_scope_handler(self, audit_scope):
|
||||
"""Get audit scope handler"""
|
||||
raise NotImplementedError()
|
||||
|
||||
@abc.abstractmethod
|
||||
def execute(self):
|
||||
"""Build a cluster data model"""
|
||||
|
||||
@@ -37,10 +37,6 @@ class CinderClusterDataModelCollector(base.BaseClusterDataModelCollector):
|
||||
def __init__(self, config, osc=None):
|
||||
super(CinderClusterDataModelCollector, self).__init__(config, osc)
|
||||
|
||||
@property
|
||||
def audit_scope_handler(self):
|
||||
return None
|
||||
|
||||
@property
|
||||
def notification_endpoints(self):
|
||||
"""Associated notification endpoints
|
||||
@@ -58,6 +54,9 @@ class CinderClusterDataModelCollector(base.BaseClusterDataModelCollector):
|
||||
cinder.VolumeResizeEnd(self)
|
||||
]
|
||||
|
||||
def get_audit_scope_handler(self, audit_scope):
|
||||
return None
|
||||
|
||||
def execute(self):
|
||||
"""Build the storage cluster data model"""
|
||||
LOG.debug("Building latest Cinder cluster data model")
|
||||
|
||||
@@ -50,17 +50,15 @@ class CollectorManager(object):
|
||||
|
||||
return self._notification_endpoints
|
||||
|
||||
def get_cluster_model_collector(self, name, osc=None, audit_scope=None):
|
||||
def get_cluster_model_collector(self, name, osc=None):
|
||||
"""Retrieve cluster data model collector
|
||||
|
||||
:param name: name of the cluster data model collector plugin
|
||||
:type name: str
|
||||
:param osc: an OpenStackClients instance
|
||||
:type osc: :py:class:`~.OpenStackClients` instance
|
||||
:param audit_scope: an BaseScope instance
|
||||
:type audit_scope: :py:class:`~.BaseScope` instance
|
||||
:returns: cluster data model collector plugin
|
||||
:rtype: :py:class:`~.BaseClusterDataModelCollector`
|
||||
"""
|
||||
return self.collector_loader.load(
|
||||
name, osc=osc, audit_scope=audit_scope)
|
||||
name, osc=osc)
|
||||
|
||||
@@ -139,13 +139,6 @@ class NovaClusterDataModelCollector(base.BaseClusterDataModelCollector):
|
||||
def __init__(self, config, osc=None):
|
||||
super(NovaClusterDataModelCollector, self).__init__(config, osc)
|
||||
|
||||
@property
|
||||
def audit_scope_handler(self):
|
||||
if not self._audit_scope_handler:
|
||||
self._audit_scope_handler = compute_scope.ComputeScope(
|
||||
self._audit_scope, self.config)
|
||||
return self._audit_scope_handler
|
||||
|
||||
@property
|
||||
def notification_endpoints(self):
|
||||
"""Associated notification endpoints
|
||||
@@ -166,6 +159,11 @@ class NovaClusterDataModelCollector(base.BaseClusterDataModelCollector):
|
||||
nova.LegacyLiveMigratedEnd(self),
|
||||
]
|
||||
|
||||
def get_audit_scope_handler(self, audit_scope):
|
||||
self._audit_scope_handler = compute_scope.ComputeScope(
|
||||
audit_scope, self.config)
|
||||
return self._audit_scope_handler
|
||||
|
||||
def execute(self):
|
||||
"""Build the compute cluster data model"""
|
||||
LOG.debug("Building latest Nova cluster data model")
|
||||
|
||||
Reference in New Issue
Block a user