From 5f6b6c657f2a88985baf02d24a2de8dafa8ec736 Mon Sep 17 00:00:00 2001 From: Tomas Jelinek Date: Tue, 25 Aug 2015 13:08:46 +0200 Subject: [PATCH] fix resource relocate for remote nodes --- pcs/test/test_utils.py | 69 +++++++++++++++++++++++++++ pcs/test/transitions02.xml | 116 +++++++++++++++++++++++++++++++++++++++++++++ pcs/utils.py | 8 ++-- 3 files changed, 190 insertions(+), 3 deletions(-) create mode 100644 pcs/test/transitions02.xml diff --git a/pcs/utils.py b/pcs/utils.py index 740ff04..cd33a27 100644 --- a/pcs/utils.py +++ b/pcs/utils.py @@ -2014,7 +2014,9 @@ def simulate_cib(cib_dom): def get_operations_from_transitions(transitions_dom): operation_list = [] - watched_operations = ("start", "stop", "promote", "demote") + watched_operations = ( + "start", "stop", "promote", "demote", "migrate_from", "migrate_to" + ) for rsc_op in transitions_dom.getElementsByTagName("rsc_op"): primitives = rsc_op.getElementsByTagName("primitive") if not primitives: @@ -2040,7 +2042,7 @@ def get_resources_location_from_operations(cib_dom, resources_operations): locations = {} for res_op in resources_operations: operation = res_op["operation"] - if operation not in ("start", "promote"): + if operation not in ("start", "promote", "migrate_from"): continue long_id = res_op["long_id"] if long_id not in locations: @@ -2061,7 +2063,7 @@ def get_resources_location_from_operations(cib_dom, resources_operations): "long_id": long_id, "id_for_constraint": id_for_constraint, } - if operation == "start": + if operation in ("start", "migrate_from"): locations[long_id]["start_on_node"] = res_op["on_node"] if operation == "promote": locations[long_id]["promote_on_node"] = res_op["on_node"] -- 1.9.1