Merge "Put the method add_migration() in base.py"

This commit is contained in:
Zuul 2019-05-07 06:00:55 +00:00 committed by Gerrit Code Review
commit 30104ae4ae
3 changed files with 20 additions and 32 deletions

View File

@ -131,6 +131,8 @@ class BaseStrategy(loadable.Loadable):
DATASOURCE_METRICS = []
MIGRATION = "migrate"
def __init__(self, config, osc=None):
"""Constructor: the signature should be identical within the subclasses
@ -421,6 +423,18 @@ class BaseStrategy(loadable.Loadable):
instances_to_migrate.append(instance)
return instances_to_migrate
def add_action_migrate(self,
instance,
migration_type,
source_node,
destination_node):
parameters = {'migration_type': migration_type,
'source_node': source_node.uuid,
'destination_node': destination_node.uuid}
self.solution.add_action(action_type=self.MIGRATION,
resource_id=instance.uuid,
input_parameters=parameters)
@six.add_metaclass(abc.ABCMeta)
class DummyBaseStrategy(BaseStrategy):

View File

@ -65,7 +65,6 @@ class BasicConsolidation(base.ServerConsolidationBaseStrategy):
instance_cpu_usage='cpu_util'),
)
MIGRATION = "migrate"
CHANGE_NOVA_SERVICE_STATE = "change_nova_service_state"
def __init__(self, config, osc=None):
@ -341,18 +340,6 @@ class BasicConsolidation(base.ServerConsolidationBaseStrategy):
resource_id=resource_id,
input_parameters=parameters)
def add_migration(self,
resource_id,
migration_type,
source_node,
destination_node):
parameters = {'migration_type': migration_type,
'source_node': source_node,
'destination_node': destination_node}
self.solution.add_action(action_type=self.MIGRATION,
resource_id=resource_id,
input_parameters=parameters)
def compute_score_of_nodes(self):
"""Calculate score of nodes based on load by VMs"""
score = []
@ -387,9 +374,9 @@ class BasicConsolidation(base.ServerConsolidationBaseStrategy):
"""Create migration VM"""
if self.compute_model.migrate_instance(
mig_instance, mig_source_node, mig_destination_node):
self.add_migration(mig_instance.uuid, 'live',
mig_source_node.uuid,
mig_destination_node.uuid)
self.add_action_migrate(mig_instance, 'live',
mig_source_node,
mig_destination_node)
if len(self.compute_model.get_node_instances(mig_source_node)) == 0:
self.add_action_disable_node(mig_source_node.uuid)

View File

@ -58,7 +58,6 @@ class WorkloadStabilization(base.WorkloadStabilizationBaseStrategy):
It assumes that live migrations are possible in your cluster.
"""
MIGRATION = "migrate"
MEMOIZE = _set_memoize(CONF)
DATASOURCE_METRICS = ['host_cpu_usage', 'instance_cpu_usage',
@ -474,26 +473,14 @@ class WorkloadStabilization(base.WorkloadStabilizationBaseStrategy):
self.sd_before_audit = metric_sd
return self.simulate_migrations(hosts_load)
def add_migration(self,
resource_id,
migration_type,
source_node,
destination_node):
parameters = {'migration_type': migration_type,
'source_node': source_node,
'destination_node': destination_node}
self.solution.add_action(action_type=self.MIGRATION,
resource_id=resource_id,
input_parameters=parameters)
def create_migration_instance(self, mig_instance, mig_source_node,
mig_destination_node):
"""Create migration VM"""
if self.compute_model.migrate_instance(
mig_instance, mig_source_node, mig_destination_node):
self.add_migration(mig_instance.uuid, 'live',
mig_source_node.uuid,
mig_destination_node.uuid)
self.add_action_migrate(mig_instance, 'live',
mig_source_node,
mig_destination_node)
self.instance_migrations_count += 1
def migrate(self, instance_uuid, src_host, dst_host):