Blob Blame History Raw
From fedadee0788fc4841bd4b2df03cabd35c57d0f2d Mon Sep 17 00:00:00 2001
From: Chris Feist <cfeist@redhat.com>
Date: Tue, 6 Oct 2015 15:54:25 -0500
Subject: [PATCH] Fixed issue with 'resource manage' not removing meta
 attribute from clones or masters

---
 pcs/resource.py           |   8 +++-
 pcs/test/test_resource.py | 108 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 114 insertions(+), 2 deletions(-)

diff --git a/pcs/resource.py b/pcs/resource.py
index 4c4b8ee..e50e20b 100644
--- a/pcs/resource.py
+++ b/pcs/resource.py
@@ -2349,11 +2349,15 @@ def resource_manage(argv, set_managed):
             if retval != 0:
                 utils.err("error attempting to unmanage resource: %s" % output)
         else:
-            xpath = "(//primitive|//group)[@id='"+resource+"']/meta_attributes/nvpair[@name='is-managed']" 
+            # Remove the meta attribute from the id specified
+            xpath = "(//primitive|//group|//clone|//master)[@id='"+resource+"']/meta_attributes/nvpair[@name='is-managed']"
+            utils.run(["cibadmin", "-D", "--xpath", xpath])
+            # Remove the meta attribute from the parent of the id specified, if the parent is a clone or master
+            xpath = "(//master|//clone)[primitive[contains(@id, '"+resource+"')]]/meta_attributes/nvpair[@name='is-managed']"
             utils.run(["cibadmin", "-D", "--xpath", xpath])
             if isGroup:
                 for res in res_to_manage:
-                    xpath = "(//primitive|//group)[@id='"+res+"']/meta_attributes/nvpair[@name='is-managed']" 
+                    xpath = "(//primitive|//group|//clone|//master)[@id='"+res+"']/meta_attributes/nvpair[@name='is-managed']"
                     utils.run(["cibadmin", "-D", "--xpath", xpath])
 
 def is_managed(resource_id):