def constraint_resource_update(old_id, passed_dom=None): dom = utils.get_cib_dom() if passed_dom is None else passed_dom new_id = None clone_ms_parent = utils.dom_get_resource_clone_ms_parent(dom, old_id) if clone_ms_parent: new_id = clone_ms_parent.getAttribute("id") if new_id: constraints = dom.getElementsByTagName("rsc_location") constraints += dom.getElementsByTagName("rsc_order") constraints += dom.getElementsByTagName("rsc_colocation") attrs_to_update = ["rsc", "first", "then", "with-rsc"] for constraint in constraints: for attr in attrs_to_update: if constraint.getAttribute(attr) == old_id: constraint.setAttribute(attr, new_id) if passed_dom is None: utils.replace_cib_configuration(dom) if passed_dom: return dom
def constraint_resource_update(old_id, passed_dom=None): dom = utils.get_cib_dom() if passed_dom is None else passed_dom new_id = None clone_ms_parent = utils.dom_get_resource_clone_ms_parent(dom, old_id) if clone_ms_parent: new_id = clone_ms_parent.getAttribute("id") if new_id: constraints = dom.getElementsByTagName("rsc_location") constraints += dom.getElementsByTagName("rsc_order") constraints += dom.getElementsByTagName("rsc_colocation") attrs_to_update=["rsc","first","then", "with-rsc"] for constraint in constraints: for attr in attrs_to_update: if constraint.getAttribute(attr) == old_id: constraint.setAttribute(attr, new_id) if passed_dom is None: utils.replace_cib_configuration(dom) if passed_dom: return dom
def testDomGetResources(self): def test_dom_get(method, dom, ok_ids, bad_ids): for element_id in ok_ids: self.assert_element_id(method(dom, element_id), element_id) for element_id in bad_ids: self.assertFalse(method(dom, element_id)) cib_dom = self.get_cib_empty() self.assertFalse(utils.dom_get_resource(cib_dom, "myResource")) self.assertFalse( utils.dom_get_resource_clone(cib_dom, "myClonedResource") ) self.assertFalse( utils.dom_get_resource_masterslave(cib_dom, "myMasteredResource") ) self.assertFalse(utils.dom_get_group(cib_dom, "myGroup")) self.assertFalse(utils.dom_get_group_clone(cib_dom, "myClonedGroup")) self.assertFalse( utils.dom_get_group_masterslave(cib_dom, "myMasteredGroup") ) self.assertFalse(utils.dom_get_clone(cib_dom, "myClone")) self.assertFalse(utils.dom_get_master(cib_dom, "myMaster")) self.assertFalse(utils.dom_get_clone_ms_resource(cib_dom, "myClone")) self.assertFalse(utils.dom_get_clone_ms_resource(cib_dom, "myMaster")) self.assertFalse( utils.dom_get_resource_clone_ms_parent(cib_dom, "myClonedResource") ) self.assertFalse( utils.dom_get_resource_clone_ms_parent(cib_dom, "myMasteredResource") ) cib_dom = self.get_cib_resources() all_ids = set([ "none", "myResource", "myClone", "myClonedResource", "myMaster", "myMasteredResource", "myGroup", "myGroupedResource", "myGroupClone", "myClonedGroup", "myClonedGroupedResource", "myGroupMaster", "myMasteredGroup", "myMasteredGroupedResource", ]) resource_ids = set([ "myResource", "myClonedResource", "myGroupedResource", "myMasteredResource", "myClonedGroupedResource", "myMasteredGroupedResource" ]) test_dom_get( utils.dom_get_resource, cib_dom, resource_ids, all_ids - resource_ids ) cloned_ids = set(["myClonedResource", "myClonedGroupedResource"]) test_dom_get( utils.dom_get_resource_clone, cib_dom, cloned_ids, all_ids - cloned_ids ) mastered_ids = set(["myMasteredResource", "myMasteredGroupedResource"]) test_dom_get( utils.dom_get_resource_masterslave, cib_dom, mastered_ids, all_ids - mastered_ids ) group_ids = set(["myGroup", "myClonedGroup", "myMasteredGroup"]) test_dom_get( utils.dom_get_group, cib_dom, group_ids, all_ids - group_ids ) cloned_group_ids = set(["myClonedGroup"]) test_dom_get( utils.dom_get_group_clone, cib_dom, cloned_group_ids, all_ids - cloned_group_ids ) clone_ids = set(["myClone", "myGroupClone"]) test_dom_get( utils.dom_get_clone, cib_dom, clone_ids, all_ids - clone_ids ) mastered_group_ids = set(["myMasteredGroup"]) test_dom_get( utils.dom_get_group_masterslave, cib_dom, mastered_group_ids, all_ids - mastered_group_ids ) master_ids = set(["myMaster", "myGroupMaster"]) test_dom_get( utils.dom_get_master, cib_dom, master_ids, all_ids - master_ids ) self.assert_element_id( utils.dom_get_clone_ms_resource(cib_dom, "myClone"), "myClonedResource" ) self.assert_element_id( utils.dom_get_clone_ms_resource(cib_dom, "myGroupClone"), "myClonedGroup" ) self.assert_element_id( utils.dom_get_clone_ms_resource(cib_dom, "myMaster"), "myMasteredResource" ) self.assert_element_id( utils.dom_get_clone_ms_resource(cib_dom, "myGroupMaster"), "myMasteredGroup" ) self.assert_element_id( utils.dom_get_resource_clone_ms_parent(cib_dom, "myClonedResource"), "myClone" ) self.assert_element_id( utils.dom_get_resource_clone_ms_parent(cib_dom, "myClonedGroup"), "myGroupClone" ) self.assert_element_id( utils.dom_get_resource_clone_ms_parent( cib_dom, "myClonedGroupedResource" ), "myGroupClone" ) self.assert_element_id( utils.dom_get_resource_clone_ms_parent( cib_dom, "myMasteredResource" ), "myMaster" ) self.assert_element_id( utils.dom_get_resource_clone_ms_parent( cib_dom, "myMasteredGroup" ), "myGroupMaster" ) self.assert_element_id( utils.dom_get_resource_clone_ms_parent( cib_dom, "myMasteredGroupedResource" ), "myGroupMaster" ) self.assertEquals( None, utils.dom_get_resource_clone_ms_parent(cib_dom, "myResource") ) self.assertEquals( None, utils.dom_get_resource_clone_ms_parent(cib_dom, "myGroup") ) self.assertEquals( None, utils.dom_get_resource_clone_ms_parent(cib_dom, "myGroupedResource") )
def testDomGetResources(self): def test_dom_get(method, dom, ok_ids, bad_ids): for element_id in ok_ids: self.assert_element_id(method(dom, element_id), element_id) for element_id in bad_ids: self.assertFalse(method(dom, element_id)) cib_dom = self.get_cib_empty() self.assertFalse(utils.dom_get_resource(cib_dom, "myResource")) self.assertFalse( utils.dom_get_resource_clone(cib_dom, "myClonedResource")) self.assertFalse( utils.dom_get_resource_masterslave(cib_dom, "myMasteredResource")) self.assertFalse(utils.dom_get_group(cib_dom, "myGroup")) self.assertFalse(utils.dom_get_group_clone(cib_dom, "myClonedGroup")) self.assertFalse( utils.dom_get_group_masterslave(cib_dom, "myMasteredGroup")) self.assertFalse(utils.dom_get_clone(cib_dom, "myClone")) self.assertFalse(utils.dom_get_master(cib_dom, "myMaster")) self.assertFalse(utils.dom_get_clone_ms_resource(cib_dom, "myClone")) self.assertFalse(utils.dom_get_clone_ms_resource(cib_dom, "myMaster")) self.assertFalse( utils.dom_get_resource_clone_ms_parent(cib_dom, "myClonedResource")) self.assertFalse( utils.dom_get_resource_clone_ms_parent(cib_dom, "myMasteredResource")) cib_dom = self.get_cib_resources() all_ids = set([ "none", "myResource", "myClone", "myClonedResource", "myMaster", "myMasteredResource", "myGroup", "myGroupedResource", "myGroupClone", "myClonedGroup", "myClonedGroupedResource", "myGroupMaster", "myMasteredGroup", "myMasteredGroupedResource", ]) resource_ids = set([ "myResource", "myClonedResource", "myGroupedResource", "myMasteredResource", "myClonedGroupedResource", "myMasteredGroupedResource" ]) test_dom_get(utils.dom_get_resource, cib_dom, resource_ids, all_ids - resource_ids) cloned_ids = set(["myClonedResource", "myClonedGroupedResource"]) test_dom_get(utils.dom_get_resource_clone, cib_dom, cloned_ids, all_ids - cloned_ids) mastered_ids = set(["myMasteredResource", "myMasteredGroupedResource"]) test_dom_get(utils.dom_get_resource_masterslave, cib_dom, mastered_ids, all_ids - mastered_ids) group_ids = set(["myGroup", "myClonedGroup", "myMasteredGroup"]) test_dom_get(utils.dom_get_group, cib_dom, group_ids, all_ids - group_ids) cloned_group_ids = set(["myClonedGroup"]) test_dom_get(utils.dom_get_group_clone, cib_dom, cloned_group_ids, all_ids - cloned_group_ids) clone_ids = set(["myClone", "myGroupClone"]) test_dom_get(utils.dom_get_clone, cib_dom, clone_ids, all_ids - clone_ids) mastered_group_ids = set(["myMasteredGroup"]) test_dom_get(utils.dom_get_group_masterslave, cib_dom, mastered_group_ids, all_ids - mastered_group_ids) master_ids = set(["myMaster", "myGroupMaster"]) test_dom_get(utils.dom_get_master, cib_dom, master_ids, all_ids - master_ids) self.assert_element_id( utils.dom_get_clone_ms_resource(cib_dom, "myClone"), "myClonedResource") self.assert_element_id( utils.dom_get_clone_ms_resource(cib_dom, "myGroupClone"), "myClonedGroup") self.assert_element_id( utils.dom_get_clone_ms_resource(cib_dom, "myMaster"), "myMasteredResource") self.assert_element_id( utils.dom_get_clone_ms_resource(cib_dom, "myGroupMaster"), "myMasteredGroup") self.assert_element_id( utils.dom_get_resource_clone_ms_parent(cib_dom, "myClonedResource"), "myClone") self.assert_element_id( utils.dom_get_resource_clone_ms_parent(cib_dom, "myClonedGroup"), "myGroupClone") self.assert_element_id( utils.dom_get_resource_clone_ms_parent(cib_dom, "myClonedGroupedResource"), "myGroupClone") self.assert_element_id( utils.dom_get_resource_clone_ms_parent(cib_dom, "myMasteredResource"), "myMaster") self.assert_element_id( utils.dom_get_resource_clone_ms_parent(cib_dom, "myMasteredGroup"), "myGroupMaster") self.assert_element_id( utils.dom_get_resource_clone_ms_parent( cib_dom, "myMasteredGroupedResource"), "myGroupMaster") self.assertEquals( None, utils.dom_get_resource_clone_ms_parent(cib_dom, "myResource")) self.assertEquals( None, utils.dom_get_resource_clone_ms_parent(cib_dom, "myGroup")) self.assertEquals( None, utils.dom_get_resource_clone_ms_parent(cib_dom, "myGroupedResource"))