Restrict existing strategies to their default scope
Diffrent stratege has diffrent default scope, restrict them to their default scope will avoid usage problems. 1)workload_balancing/thermal_optimization/airflow_optimization goals react on enabled nodes, so restrict default scope to compute nodes with up state and enabled status. 2)server_consolidation goal react on enabled or disabled nodes, So restrict default scope to compute nodes with up state and enabled/disabled status. Change-Id: I7437dee699ee2d3dd227a047196d4d8db811b81e Closes-Bug: #1714002
This commit is contained in:
@@ -197,6 +197,14 @@ class BasicConsolidation(base.ServerConsolidationBaseStrategy):
|
||||
def gnocchi(self, gnocchi):
|
||||
self._gnocchi = gnocchi
|
||||
|
||||
def get_available_compute_nodes(self):
|
||||
default_node_scope = [element.ServiceState.ENABLED.value,
|
||||
element.ServiceState.DISABLED.value]
|
||||
return {uuid: cn for uuid, cn in
|
||||
self.compute_model.get_all_compute_nodes().items()
|
||||
if cn.state == element.ServiceState.ONLINE.value and
|
||||
cn.status in default_node_scope}
|
||||
|
||||
def check_migration(self, source_node, destination_node,
|
||||
instance_to_migrate):
|
||||
"""Check if the migration is possible
|
||||
@@ -428,7 +436,7 @@ class BasicConsolidation(base.ServerConsolidationBaseStrategy):
|
||||
def compute_score_of_nodes(self):
|
||||
"""Calculate score of nodes based on load by VMs"""
|
||||
score = []
|
||||
for node in self.compute_model.get_all_compute_nodes().values():
|
||||
for node in self.get_available_compute_nodes().values():
|
||||
if node.status == element.ServiceState.ENABLED.value:
|
||||
self.number_of_enabled_nodes += 1
|
||||
|
||||
@@ -502,7 +510,7 @@ class BasicConsolidation(base.ServerConsolidationBaseStrategy):
|
||||
if not self.compute_model:
|
||||
raise exception.ClusterStateNotDefined()
|
||||
|
||||
if len(self.compute_model.get_all_compute_nodes()) == 0:
|
||||
if len(self.get_available_compute_nodes()) == 0:
|
||||
raise exception.ClusterEmpty()
|
||||
|
||||
if self.compute_model.stale:
|
||||
|
||||
Reference in New Issue
Block a user