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.