Merge "Put the method add_migration() in base.py"
This commit is contained in:
commit
30104ae4ae
@ -131,6 +131,8 @@ class BaseStrategy(loadable.Loadable):
|
|||||||
|
|
||||||
DATASOURCE_METRICS = []
|
DATASOURCE_METRICS = []
|
||||||
|
|
||||||
|
MIGRATION = "migrate"
|
||||||
|
|
||||||
def __init__(self, config, osc=None):
|
def __init__(self, config, osc=None):
|
||||||
"""Constructor: the signature should be identical within the subclasses
|
"""Constructor: the signature should be identical within the subclasses
|
||||||
|
|
||||||
@ -421,6 +423,18 @@ class BaseStrategy(loadable.Loadable):
|
|||||||
instances_to_migrate.append(instance)
|
instances_to_migrate.append(instance)
|
||||||
return instances_to_migrate
|
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)
|
@six.add_metaclass(abc.ABCMeta)
|
||||||
class DummyBaseStrategy(BaseStrategy):
|
class DummyBaseStrategy(BaseStrategy):
|
||||||
|
@ -65,7 +65,6 @@ class BasicConsolidation(base.ServerConsolidationBaseStrategy):
|
|||||||
instance_cpu_usage='cpu_util'),
|
instance_cpu_usage='cpu_util'),
|
||||||
)
|
)
|
||||||
|
|
||||||
MIGRATION = "migrate"
|
|
||||||
CHANGE_NOVA_SERVICE_STATE = "change_nova_service_state"
|
CHANGE_NOVA_SERVICE_STATE = "change_nova_service_state"
|
||||||
|
|
||||||
def __init__(self, config, osc=None):
|
def __init__(self, config, osc=None):
|
||||||
@ -341,18 +340,6 @@ class BasicConsolidation(base.ServerConsolidationBaseStrategy):
|
|||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
input_parameters=parameters)
|
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):
|
def compute_score_of_nodes(self):
|
||||||
"""Calculate score of nodes based on load by VMs"""
|
"""Calculate score of nodes based on load by VMs"""
|
||||||
score = []
|
score = []
|
||||||
@ -387,9 +374,9 @@ class BasicConsolidation(base.ServerConsolidationBaseStrategy):
|
|||||||
"""Create migration VM"""
|
"""Create migration VM"""
|
||||||
if self.compute_model.migrate_instance(
|
if self.compute_model.migrate_instance(
|
||||||
mig_instance, mig_source_node, mig_destination_node):
|
mig_instance, mig_source_node, mig_destination_node):
|
||||||
self.add_migration(mig_instance.uuid, 'live',
|
self.add_action_migrate(mig_instance, 'live',
|
||||||
mig_source_node.uuid,
|
mig_source_node,
|
||||||
mig_destination_node.uuid)
|
mig_destination_node)
|
||||||
|
|
||||||
if len(self.compute_model.get_node_instances(mig_source_node)) == 0:
|
if len(self.compute_model.get_node_instances(mig_source_node)) == 0:
|
||||||
self.add_action_disable_node(mig_source_node.uuid)
|
self.add_action_disable_node(mig_source_node.uuid)
|
||||||
|
@ -58,7 +58,6 @@ class WorkloadStabilization(base.WorkloadStabilizationBaseStrategy):
|
|||||||
It assumes that live migrations are possible in your cluster.
|
It assumes that live migrations are possible in your cluster.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
MIGRATION = "migrate"
|
|
||||||
MEMOIZE = _set_memoize(CONF)
|
MEMOIZE = _set_memoize(CONF)
|
||||||
|
|
||||||
DATASOURCE_METRICS = ['host_cpu_usage', 'instance_cpu_usage',
|
DATASOURCE_METRICS = ['host_cpu_usage', 'instance_cpu_usage',
|
||||||
@ -474,26 +473,14 @@ class WorkloadStabilization(base.WorkloadStabilizationBaseStrategy):
|
|||||||
self.sd_before_audit = metric_sd
|
self.sd_before_audit = metric_sd
|
||||||
return self.simulate_migrations(hosts_load)
|
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,
|
def create_migration_instance(self, mig_instance, mig_source_node,
|
||||||
mig_destination_node):
|
mig_destination_node):
|
||||||
"""Create migration VM"""
|
"""Create migration VM"""
|
||||||
if self.compute_model.migrate_instance(
|
if self.compute_model.migrate_instance(
|
||||||
mig_instance, mig_source_node, mig_destination_node):
|
mig_instance, mig_source_node, mig_destination_node):
|
||||||
self.add_migration(mig_instance.uuid, 'live',
|
self.add_action_migrate(mig_instance, 'live',
|
||||||
mig_source_node.uuid,
|
mig_source_node,
|
||||||
mig_destination_node.uuid)
|
mig_destination_node)
|
||||||
self.instance_migrations_count += 1
|
self.instance_migrations_count += 1
|
||||||
|
|
||||||
def migrate(self, instance_uuid, src_host, dst_host):
|
def migrate(self, instance_uuid, src_host, dst_host):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user