Blob Blame History Raw
From 0bc8f7923904bb171faac052c6f3881b48ddd21c Mon Sep 17 00:00:00 2001
From: Tomas Jelinek <tojeline@redhat.com>
Date: Fri, 9 Jan 2015 12:49:13 +0100
Subject: [PATCH] Stop deleted resource before removing its constraints

Removing constraints referencing a resource when the resource
is still running can cause the resource to be moved to other node.
---
 pcs/resource.py | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/pcs/resource.py b/pcs/resource.py
index 6c8b723..db96eb9 100644
--- a/pcs/resource.py
+++ b/pcs/resource.py
@@ -1717,6 +1717,14 @@ def resource_remove(resource_id, output = True):
     if (group != ""):
         num_resources_in_group = len(parseString(group).documentElement.getElementsByTagName("primitive"))
 
+    if not "--force" in utils.pcs_options and not utils.usefile and not utils.is_resource_started(resource_id, 0, True)[0]:
+        sys.stdout.write("Attempting to stop: "+ resource_id + "...")
+        sys.stdout.flush()
+        resource_disable([resource_id])
+        if not utils.is_resource_started(resource_id, 15, True)[0]:
+            utils.err("Unable to stop: %s before deleting (re-run with --force to force deletion)" % resource_id)
+        print "Stopped"
+
     constraint.remove_constraints_containing(resource_id,output)
     resource_el = utils.dom_get_resource(dom, resource_id)
     if resource_el:
@@ -1728,14 +1736,6 @@ def resource_remove(resource_id, output = True):
             utils.replace_cib_configuration(dom)
             dom = utils.get_cib_dom()
 
-    if not "--force" in utils.pcs_options and not utils.usefile and not utils.is_resource_started(resource_id, 0, True)[0]:
-        sys.stdout.write("Attempting to stop: "+ resource_id + "...")
-        sys.stdout.flush()
-        resource_disable([resource_id])
-        if not utils.is_resource_started(resource_id, 15, True)[0]:
-            utils.err("Unable to stop: %s before deleting (re-run with --force to force deletion)" % resource_id)
-        print "Stopped"
-
     if (group == "" or num_resources_in_group > 1):
         master_xpath = '//master/primitive[@id="'+resource_id+'"]/..'
         clone_xpath = '//clone/primitive[@id="'+resource_id+'"]/..'
-- 
1.9.1