Merge "add audit parameter to do_execute"

This commit is contained in:
Zuul
2019-09-10 07:02:09 +00:00
committed by Gerrit Code Review
16 changed files with 23 additions and 18 deletions

View File

@@ -65,4 +65,4 @@ class DefaultStrategyContext(base.StrategyContext):
name: value for name, value in audit.parameters.items() name: value for name, value in audit.parameters.items()
}) })
return selected_strategy.execute() return selected_strategy.execute(audit=audit)

View File

@@ -93,7 +93,7 @@ class Actuator(base.UnclassifiedStrategy):
def pre_execute(self): def pre_execute(self):
self._pre_execute() self._pre_execute()
def do_execute(self): def do_execute(self, audit=None):
for action in self.actions: for action in self.actions:
self.solution.add_action(**action) self.solution.add_action(**action)

View File

@@ -223,9 +223,12 @@ class BaseStrategy(loadable.Loadable):
raise NotImplementedError() raise NotImplementedError()
@abc.abstractmethod @abc.abstractmethod
def do_execute(self): def do_execute(self, audit=None):
"""Strategy execution phase """Strategy execution phase
:param audit: An Audit instance
:type audit: :py:class:`~.Audit` instance
This phase is where you should put the main logic of your strategy. This phase is where you should put the main logic of your strategy.
""" """
raise NotImplementedError() raise NotImplementedError()
@@ -255,14 +258,16 @@ class BaseStrategy(loadable.Loadable):
LOG.debug(self.compute_model.to_string()) LOG.debug(self.compute_model.to_string())
def execute(self): def execute(self, audit=None):
"""Execute a strategy """Execute a strategy
:param audit: An Audit instance
:type audit: :py:class:`~.Audit` instance
:return: A computed solution (via a placement algorithm) :return: A computed solution (via a placement algorithm)
:rtype: :py:class:`~.BaseSolution` instance :rtype: :py:class:`~.BaseSolution` instance
""" """
self.pre_execute() self.pre_execute()
self.do_execute() self.do_execute(audit=audit)
self.post_execute() self.post_execute()
self.solution.compute_global_efficacy() self.solution.compute_global_efficacy()

View File

@@ -413,7 +413,7 @@ class BasicConsolidation(base.ServerConsolidationBaseStrategy):
self.aggregation_method['compute_node'] = \ self.aggregation_method['compute_node'] = \
self.aggregation_method['node'] self.aggregation_method['node']
def do_execute(self): def do_execute(self, audit=None):
unsuccessful_migration = 0 unsuccessful_migration = 0
scores = self.compute_score_of_nodes() scores = self.compute_score_of_nodes()

View File

@@ -51,7 +51,7 @@ class DummyStrategy(base.DummyBaseStrategy):
def pre_execute(self): def pre_execute(self):
self._pre_execute() self._pre_execute()
def do_execute(self): def do_execute(self, audit=None):
para1 = self.input_parameters.para1 para1 = self.input_parameters.para1
para2 = self.input_parameters.para2 para2 = self.input_parameters.para2
LOG.debug("Executing Dummy strategy with para1=%(p1)f, para2=%(p2)s", LOG.debug("Executing Dummy strategy with para1=%(p1)f, para2=%(p2)s",

View File

@@ -48,7 +48,7 @@ class DummyWithResize(base.DummyBaseStrategy):
def pre_execute(self): def pre_execute(self):
self._pre_execute() self._pre_execute()
def do_execute(self): def do_execute(self, audit=None):
para1 = self.input_parameters.para1 para1 = self.input_parameters.para1
para2 = self.input_parameters.para2 para2 = self.input_parameters.para2
LOG.debug("Executing Dummy strategy with para1=%(p1)f, para2=%(p2)s", LOG.debug("Executing Dummy strategy with para1=%(p1)f, para2=%(p2)s",

View File

@@ -78,7 +78,7 @@ class DummyWithScorer(base.DummyBaseStrategy):
def pre_execute(self): def pre_execute(self):
self._pre_execute() self._pre_execute()
def do_execute(self): def do_execute(self, audit=None):
# Simple "hello world" from strategy # Simple "hello world" from strategy
param1 = self.input_parameters.param1 param1 = self.input_parameters.param1
param2 = self.input_parameters.param2 param2 = self.input_parameters.param2

View File

@@ -297,7 +297,7 @@ class HostMaintenance(base.HostMaintenanceBaseStrategy):
def pre_execute(self): def pre_execute(self):
self._pre_execute() self._pre_execute()
def do_execute(self): def do_execute(self, audit=None):
LOG.info(_('Executing Host Maintenance Migration Strategy')) LOG.info(_('Executing Host Maintenance Migration Strategy'))
maintenance_node = self.input_parameters.get('maintenance_node') maintenance_node = self.input_parameters.get('maintenance_node')

View File

@@ -241,7 +241,7 @@ class NoisyNeighbor(base.NoisyNeighborBaseStrategy):
def pre_execute(self): def pre_execute(self):
self._pre_execute() self._pre_execute()
def do_execute(self): def do_execute(self, audit=None):
self.cache_threshold = self.input_parameters.cache_threshold self.cache_threshold = self.input_parameters.cache_threshold
self.period = self.input_parameters.period self.period = self.input_parameters.period

View File

@@ -241,7 +241,7 @@ class OutletTempControl(base.ThermalOptimizationBaseStrategy):
LOG.info("Outlet temperature strategy threshold=%d", LOG.info("Outlet temperature strategy threshold=%d",
self.threshold) self.threshold)
def do_execute(self): def do_execute(self, audit=None):
hosts_need_release, hosts_target = self.group_hosts_by_outlet_temp() hosts_need_release, hosts_target = self.group_hosts_by_outlet_temp()
if len(hosts_need_release) == 0: if len(hosts_need_release) == 0:

View File

@@ -219,7 +219,7 @@ class SavingEnergy(base.SavingEnergyBaseStrategy):
self.free_used_percent = self.input_parameters.free_used_percent self.free_used_percent = self.input_parameters.free_used_percent
self.min_free_hosts_num = self.input_parameters.min_free_hosts_num self.min_free_hosts_num = self.input_parameters.min_free_hosts_num
def do_execute(self): def do_execute(self, audit=None):
"""Strategy execution phase """Strategy execution phase
This phase is where you should put the main logic of your strategy. This phase is where you should put the main logic of your strategy.

View File

@@ -280,7 +280,7 @@ class UniformAirflow(base.BaseStrategy):
self.threshold_power = self.input_parameters.threshold_power self.threshold_power = self.input_parameters.threshold_power
self._period = self.input_parameters.period self._period = self.input_parameters.period
def do_execute(self): def do_execute(self, audit=None):
source_nodes, target_nodes = self.group_hosts_by_airflow() source_nodes, target_nodes = self.group_hosts_by_airflow()
if not source_nodes: if not source_nodes:

View File

@@ -518,7 +518,7 @@ class VMWorkloadConsolidation(base.ServerConsolidationBaseStrategy):
def pre_execute(self): def pre_execute(self):
self._pre_execute() self._pre_execute()
def do_execute(self): def do_execute(self, audit=None):
"""Execute strategy. """Execute strategy.
This strategy produces a solution resulting in more This strategy produces a solution resulting in more

View File

@@ -295,7 +295,7 @@ class WorkloadBalance(base.WorkloadStabilizationBaseStrategy):
self._meter = self.input_parameters.metrics self._meter = self.input_parameters.metrics
self._granularity = self.input_parameters.granularity self._granularity = self.input_parameters.granularity
def do_execute(self): def do_execute(self, audit=None):
"""Strategy execution phase """Strategy execution phase
This phase is where you should put the main logic of your strategy. This phase is where you should put the main logic of your strategy.

View File

@@ -519,7 +519,7 @@ class WorkloadStabilization(base.WorkloadStabilizationBaseStrategy):
'will be removed in next release.') 'will be removed in next release.')
self.periods['compute_node'] = self.periods['node'] self.periods['compute_node'] = self.periods['node']
def do_execute(self): def do_execute(self, audit=None):
migration = self.check_threshold() migration = self.check_threshold()
if migration: if migration:
hosts_load = self.get_hosts_load() hosts_load = self.get_hosts_load()

View File

@@ -269,7 +269,7 @@ class ZoneMigration(base.ZoneMigrationBaseStrategy):
self._pre_execute() self._pre_execute()
LOG.debug(self.storage_model.to_string()) LOG.debug(self.storage_model.to_string())
def do_execute(self): def do_execute(self, audit=None):
"""Strategy execution phase """Strategy execution phase
""" """