Loadable Cluster Data Model Collectors

In this changeset, I made BaseClusterDataModelCollector instances
pluggable. This corresponds to "part 1" of the work items detailed
in the specifications.

Change-Id: Iab1c7e264add9e2cbbbb767e3fd6e99a0c22c691
Partially-Implements: blueprint cluster-model-objects-wrapper
This commit is contained in:
Vincent Françoise
2016-06-24 17:24:01 +02:00
parent 553c5a6c4b
commit 5a2a94fbec
31 changed files with 364 additions and 190 deletions

View File

@@ -75,7 +75,7 @@ class BaseStrategy(loadable.Loadable):
self._solution = default.DefaultSolution(goal=self.goal, strategy=self)
self._osc = osc
self._collector_manager = None
self._model = None
self._compute_model = None
self._goal = None
self._input_parameters = utils.Struct()
@@ -159,24 +159,24 @@ class BaseStrategy(loadable.Loadable):
return self.solution
@property
def collector(self):
def collector_manager(self):
if self._collector_manager is None:
self._collector_manager = manager.CollectorManager()
return self._collector_manager
@property
def model(self):
def compute_model(self):
"""Cluster data model
:returns: Cluster data model the strategy is executed on
:rtype model: :py:class:`~.ModelRoot` instance
"""
if self._model is None:
collector = self.collector.get_cluster_model_collector(
osc=self.osc)
self._model = collector.get_latest_cluster_data_model()
if self._compute_model is None:
collector = self.collector_manager.get_cluster_model_collector(
'compute', osc=self.osc)
self._compute_model = collector.get_latest_cluster_data_model()
return self._model
return self._compute_model
@classmethod
def get_schema(cls):