From d792e3cfaeb3e36304c51c8132918349a4d5119f Mon Sep 17 00:00:00 2001 From: licanwei Date: Tue, 13 Dec 2016 11:23:57 +0800 Subject: [PATCH] Function call pass parameter error add_migration(self, instance_uuid, source_node, destination_node, model) param source_node: node object param destination_node: node object but in optimize_solution(), The incoming parameters are source_node_uuid and destination_node_uuid. This causes an exception: AttributeError: 'unicode' object has no attribute 'state' Change-Id: Ia27f219caa007f2b49ff9efc2544d5b4d894fe65 Closes-Bug: #1649441 --- .../strategy/strategies/vm_workload_consolidation.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py b/watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py index d65081759..b2b934f63 100644 --- a/watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py +++ b/watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py @@ -401,13 +401,16 @@ class VMWorkloadConsolidation(base.ServerConsolidationBaseStrategy): 'input_parameters'][ 'resource_id'] == instance_uuid) if len(actions) > 1: - src = actions[0]['input_parameters']['source_node'] - dst = actions[-1]['input_parameters']['destination_node'] + src_uuid = actions[0]['input_parameters']['source_node'] + dst_uuid = actions[-1]['input_parameters']['destination_node'] for a in actions: self.solution.actions.remove(a) self.number_of_migrations -= 1 - if src != dst: - self.add_migration(instance_uuid, src, dst, model) + if src_uuid != dst_uuid: + src_node = model.get_node_by_uuid(src_uuid) + dst_node = model.get_node_by_uuid(dst_uuid) + self.add_migration( + instance_uuid, src_node, dst_node, model) def offload_phase(self, model, cc): """Perform offloading phase.