Blame SOURCES/bz1824206-01-Keep-autogenerated-IDs-of-set-constraints-short.patch

1f8f5b
From e2420c1912b126e2be1818cf6fa52af595ad553b Mon Sep 17 00:00:00 2001
1f8f5b
From: Tomas Jelinek <tojeline@redhat.com>
1f8f5b
Date: Fri, 17 Apr 2020 13:27:46 +0200
1f8f5b
Subject: [PATCH 1/6] Keep autogenerated IDs of set constraints short
1f8f5b
1f8f5b
---
1f8f5b
 pcs/lib/cib/constraint/colocation.py          |   2 +-
1f8f5b
 pcs/lib/cib/constraint/constraint.py          |  18 +-
1f8f5b
 pcs/lib/cib/constraint/order.py               |   2 +-
1f8f5b
 pcs/lib/cib/constraint/resource_set.py        |   5 +-
1f8f5b
 pcs/lib/cib/constraint/ticket.py              |   2 +-
1f8f5b
 pcs/lib/cib/test/test_constraint.py           |  14 +-
1f8f5b
 .../cib/test/test_constraint_colocation.py    |   2 +-
1f8f5b
 pcs/lib/cib/test/test_constraint_order.py     |   2 +-
1f8f5b
 pcs/lib/cib/test/test_constraint_ticket.py    |   2 +-
1f8f5b
 pcs/lib/cib/test/test_resource_set.py         |  12 +-
1f8f5b
 .../commands/test/test_constraint_common.py   |  20 +-
1f8f5b
 pcs/test/test_constraints.py                  | 202 +++++++++---------
1f8f5b
 12 files changed, 141 insertions(+), 142 deletions(-)
1f8f5b
1f8f5b
diff --git a/pcs/lib/cib/constraint/colocation.py b/pcs/lib/cib/constraint/colocation.py
1f8f5b
index 8006a36f..d19522ab 100644
1f8f5b
--- a/pcs/lib/cib/constraint/colocation.py
1f8f5b
+++ b/pcs/lib/cib/constraint/colocation.py
1f8f5b
@@ -20,7 +20,7 @@ def prepare_options_with_set(cib, options, resource_set_list):
1f8f5b
     options = constraint.prepare_options(
1f8f5b
         tuple(SCORE_NAMES),
1f8f5b
         options,
1f8f5b
-        partial(constraint.create_id, cib, TAG_NAME, resource_set_list),
1f8f5b
+        partial(constraint.create_id, cib, "colocation", resource_set_list),
1f8f5b
         partial(check_new_id_applicable, cib, DESCRIPTION),
1f8f5b
     )
1f8f5b
 
1f8f5b
diff --git a/pcs/lib/cib/constraint/constraint.py b/pcs/lib/cib/constraint/constraint.py
1f8f5b
index 02af9d02..936918c2 100644
1f8f5b
--- a/pcs/lib/cib/constraint/constraint.py
1f8f5b
+++ b/pcs/lib/cib/constraint/constraint.py
1f8f5b
@@ -98,11 +98,19 @@ def export_plain(element):
1f8f5b
     return {"options": export_attributes(element)}
1f8f5b
 
1f8f5b
 def create_id(cib, type_prefix, resource_set_list):
1f8f5b
-    id = "pcs_" +type_prefix +"".join([
1f8f5b
-        "_set_"+"_".join(id_set)
1f8f5b
-        for id_set in resource_set.extract_id_set_list(resource_set_list)
1f8f5b
-    ])
1f8f5b
-    return find_unique_id(cib, id)
1f8f5b
+    # Create a semi-random id. We need it to be predictable (for testing), short
1f8f5b
+    # and somehow different than other ids so that we don't spend much time in
1f8f5b
+    # find_unique_id.
1f8f5b
+    # Avoid using actual resource names. It makes the id very long (consider 10
1f8f5b
+    # or more resources in a set constraint). Also, if a resource is deleted
1f8f5b
+    # and therefore removed from the constraint, the id no longer matches the
1f8f5b
+    # constraint.
1f8f5b
+    resource_ids = []
1f8f5b
+    for _set in resource_set_list:
1f8f5b
+        resource_ids.extend(_set["ids"])
1f8f5b
+    id_part = "".join([_id[0] + _id[-1] for _id in resource_ids][:3])
1f8f5b
+    return find_unique_id(cib, "{0}_set_{1}".format(type_prefix, id_part)
1f8f5b
+    )
1f8f5b
 
1f8f5b
 def have_duplicate_resource_sets(element, other_element):
1f8f5b
     get_id_set_list = lambda element: [
1f8f5b
diff --git a/pcs/lib/cib/constraint/order.py b/pcs/lib/cib/constraint/order.py
1f8f5b
index 4c520ae7..6085f0db 100644
1f8f5b
--- a/pcs/lib/cib/constraint/order.py
1f8f5b
+++ b/pcs/lib/cib/constraint/order.py
1f8f5b
@@ -24,7 +24,7 @@ def prepare_options_with_set(cib, options, resource_set_list):
1f8f5b
         tuple(ATTRIB.keys()),
1f8f5b
         options,
1f8f5b
         create_id=partial(
1f8f5b
-            constraint.create_id, cib, TAG_NAME, resource_set_list
1f8f5b
+            constraint.create_id, cib, "order", resource_set_list
1f8f5b
         ),
1f8f5b
         validate_id=partial(check_new_id_applicable, cib, DESCRIPTION),
1f8f5b
     )
1f8f5b
diff --git a/pcs/lib/cib/constraint/resource_set.py b/pcs/lib/cib/constraint/resource_set.py
1f8f5b
index 6ec18205..e9833ff7 100644
1f8f5b
--- a/pcs/lib/cib/constraint/resource_set.py
1f8f5b
+++ b/pcs/lib/cib/constraint/resource_set.py
1f8f5b
@@ -39,9 +39,6 @@ def validate_options(options):
1f8f5b
                 reports.invalid_option_value(name, value, ATTRIB[name])
1f8f5b
             )
1f8f5b
 
1f8f5b
-def extract_id_set_list(resource_set_list):
1f8f5b
-    return [resource_set["ids"] for resource_set in resource_set_list]
1f8f5b
-
1f8f5b
 def create(parent, resource_set):
1f8f5b
     """
1f8f5b
     parent - lxml element for append new resource_set
1f8f5b
@@ -50,7 +47,7 @@ def create(parent, resource_set):
1f8f5b
     element.attrib.update(resource_set["options"])
1f8f5b
     element.attrib["id"] = find_unique_id(
1f8f5b
         parent.getroottree(),
1f8f5b
-        "pcs_rsc_set_{0}".format("_".join(resource_set["ids"]))
1f8f5b
+        "{0}_set".format(parent.attrib.get("id", "constraint_set"))
1f8f5b
     )
1f8f5b
 
1f8f5b
     for id in resource_set["ids"]:
1f8f5b
diff --git a/pcs/lib/cib/constraint/ticket.py b/pcs/lib/cib/constraint/ticket.py
1f8f5b
index a2dbd5fe..cc1413ea 100644
1f8f5b
--- a/pcs/lib/cib/constraint/ticket.py
1f8f5b
+++ b/pcs/lib/cib/constraint/ticket.py
1f8f5b
@@ -48,7 +48,7 @@ def prepare_options_with_set(cib, options, resource_set_list):
1f8f5b
         tuple(ATTRIB.keys()),
1f8f5b
         options,
1f8f5b
         create_id=partial(
1f8f5b
-            constraint.create_id, cib, TAG_NAME, resource_set_list
1f8f5b
+            constraint.create_id, cib, "ticket", resource_set_list
1f8f5b
         ),
1f8f5b
         validate_id=partial(tools.check_new_id_applicable, cib, DESCRIPTION),
1f8f5b
     )
1f8f5b
diff --git a/pcs/lib/cib/test/test_constraint.py b/pcs/lib/cib/test/test_constraint.py
1f8f5b
index aa0f21cd..2712a81f 100644
1f8f5b
--- a/pcs/lib/cib/test/test_constraint.py
1f8f5b
+++ b/pcs/lib/cib/test/test_constraint.py
1f8f5b
@@ -263,19 +263,15 @@ class PrepareOptionsTest(TestCase):
1f8f5b
         mock_validate_id.assert_called_once_with("invalid")
1f8f5b
 
1f8f5b
 class CreateIdTest(TestCase):
1f8f5b
-    @mock.patch(
1f8f5b
-        "pcs.lib.cib.constraint.constraint.resource_set.extract_id_set_list"
1f8f5b
-    )
1f8f5b
     @mock.patch("pcs.lib.cib.constraint.constraint.find_unique_id")
1f8f5b
-    def test_create_id_from_resource_set_list(self, mock_find_id, mock_extract):
1f8f5b
-        mock_extract.return_value = [["A", "B"], ["C"]]
1f8f5b
+    def test_create_id_from_resource_set_list(self, mock_find_id):
1f8f5b
+        resource_set_list = [{"ids": ["A", "B"]}, {"ids": ["C"]}]
1f8f5b
         mock_find_id.return_value = "some_id"
1f8f5b
         self.assertEqual(
1f8f5b
             "some_id",
1f8f5b
-            constraint.create_id("cib", "PREFIX", "resource_set_list")
1f8f5b
+            constraint.create_id("cib", "PREFIX", resource_set_list)
1f8f5b
         )
1f8f5b
-        mock_extract.assert_called_once_with("resource_set_list")
1f8f5b
-        mock_find_id.assert_called_once_with("cib", "pcs_PREFIX_set_A_B_set_C")
1f8f5b
+        mock_find_id.assert_called_once_with("cib", "PREFIX_set_AABBCC")
1f8f5b
 
1f8f5b
 def fixture_constraint_section(return_value):
1f8f5b
     constraint_section = mock.MagicMock()
1f8f5b
@@ -359,7 +355,7 @@ class CreateWithSetTest(TestCase):
1f8f5b
         assert_xml_equal(etree.tostring(constraint_section).decode(), """
1f8f5b
             <constraints>
1f8f5b
                 <ticket a="b">
1f8f5b
-                    <resource_set c="d" id="pcs_rsc_set_A_B">
1f8f5b
+                    <resource_set c="d" id="constraint_set_set">
1f8f5b
                         <resource_ref id="A"/>
1f8f5b
                         <resource_ref id="B"/>
1f8f5b
                     </resource_set>
1f8f5b
diff --git a/pcs/lib/cib/test/test_constraint_colocation.py b/pcs/lib/cib/test/test_constraint_colocation.py
1f8f5b
index 25923bb3..75f7924c 100644
1f8f5b
--- a/pcs/lib/cib/test/test_constraint_colocation.py
1f8f5b
+++ b/pcs/lib/cib/test/test_constraint_colocation.py
1f8f5b
@@ -36,7 +36,7 @@ class PrepareOptionsWithSetTest(TestCase):
1f8f5b
         self.assertEqual(expected_options, self.prepare(options))
1f8f5b
         mock_create_id.assert_called_once_with(
1f8f5b
             self.cib,
1f8f5b
-            colocation.TAG_NAME,
1f8f5b
+            "colocation",
1f8f5b
             self.resource_set_list
1f8f5b
         )
1f8f5b
 
1f8f5b
diff --git a/pcs/lib/cib/test/test_constraint_order.py b/pcs/lib/cib/test/test_constraint_order.py
1f8f5b
index c43fa2c4..4f5719d3 100644
1f8f5b
--- a/pcs/lib/cib/test/test_constraint_order.py
1f8f5b
+++ b/pcs/lib/cib/test/test_constraint_order.py
1f8f5b
@@ -36,7 +36,7 @@ class PrepareOptionsWithSetTest(TestCase):
1f8f5b
         self.assertEqual(expected_options, self.prepare(options))
1f8f5b
         mock_create_id.assert_called_once_with(
1f8f5b
             self.cib,
1f8f5b
-            order.TAG_NAME,
1f8f5b
+            "order",
1f8f5b
             self.resource_set_list
1f8f5b
         )
1f8f5b
 
1f8f5b
diff --git a/pcs/lib/cib/test/test_constraint_ticket.py b/pcs/lib/cib/test/test_constraint_ticket.py
1f8f5b
index ff91f255..111c88e8 100644
1f8f5b
--- a/pcs/lib/cib/test/test_constraint_ticket.py
1f8f5b
+++ b/pcs/lib/cib/test/test_constraint_ticket.py
1f8f5b
@@ -183,7 +183,7 @@ class PrepareOptionsWithSetTest(TestCase):
1f8f5b
         self.assertEqual(expected_options, self.prepare(options))
1f8f5b
         mock_create_id.assert_called_once_with(
1f8f5b
             self.cib,
1f8f5b
-            ticket.TAG_NAME,
1f8f5b
+            "ticket",
1f8f5b
             self.resource_set_list
1f8f5b
         )
1f8f5b
 
1f8f5b
diff --git a/pcs/lib/cib/test/test_resource_set.py b/pcs/lib/cib/test/test_resource_set.py
1f8f5b
index 5e0d75c2..fda2723e 100644
1f8f5b
--- a/pcs/lib/cib/test/test_resource_set.py
1f8f5b
+++ b/pcs/lib/cib/test/test_resource_set.py
1f8f5b
@@ -60,16 +60,6 @@ class PrepareSetTest(TestCase):
1f8f5b
             }),
1f8f5b
         )
1f8f5b
 
1f8f5b
-class ExtractIdListTest(TestCase):
1f8f5b
-    def test_return_id_list_from_resource_set_list(self):
1f8f5b
-        self.assertEqual(
1f8f5b
-            [["A", "B"], ["C", "D"]],
1f8f5b
-            resource_set.extract_id_set_list([
1f8f5b
-                {"ids": ["A", "B"], "options": {}},
1f8f5b
-                {"ids": ["C", "D"], "options": {}},
1f8f5b
-            ])
1f8f5b
-        )
1f8f5b
-
1f8f5b
 class CreateTest(TestCase):
1f8f5b
     def test_resource_set_to_parent(self):
1f8f5b
         constraint_element = etree.Element("constraint")
1f8f5b
@@ -79,7 +69,7 @@ class CreateTest(TestCase):
1f8f5b
         )
1f8f5b
         assert_xml_equal(etree.tostring(constraint_element).decode(), """
1f8f5b
             <constraint>
1f8f5b
-              <resource_set id="pcs_rsc_set_A_B" sequential="true">
1f8f5b
+              <resource_set id="constraint_set_set" sequential="true">
1f8f5b
                 <resource_ref id="A"></resource_ref>
1f8f5b
                 <resource_ref id="B"></resource_ref>
1f8f5b
               </resource_set>
1f8f5b
diff --git a/pcs/lib/commands/test/test_constraint_common.py b/pcs/lib/commands/test/test_constraint_common.py
1f8f5b
index bf359380..ddbcbe8e 100644
1f8f5b
--- a/pcs/lib/commands/test/test_constraint_common.py
1f8f5b
+++ b/pcs/lib/commands/test/test_constraint_common.py
1f8f5b
@@ -62,11 +62,11 @@ class CreateWithSetTest(TestCase):
1f8f5b
         self.env.push_cib.assert_called_once_with()
1f8f5b
         self.independent_cib.find(".//constraints").append(etree.XML("""
1f8f5b
             <rsc_some id="some_id" symmetrical="true">
1f8f5b
-                  <resource_set id="pcs_rsc_set_A_B" role="Master">
1f8f5b
+                  <resource_set id="some_id_set" role="Master">
1f8f5b
                       <resource_ref id="A"></resource_ref>
1f8f5b
                       <resource_ref id="B"></resource_ref>
1f8f5b
                   </resource_set>
1f8f5b
-                  <resource_set action="start" id="pcs_rsc_set_E_F">
1f8f5b
+                  <resource_set action="start" id="some_id_set-1">
1f8f5b
                       <resource_ref id="E"></resource_ref>
1f8f5b
                       <resource_ref id="F"></resource_ref>
1f8f5b
                   </resource_set>
1f8f5b
@@ -90,11 +90,11 @@ class CreateWithSetTest(TestCase):
1f8f5b
                     'resource_sets': [
1f8f5b
                         {
1f8f5b
                             'ids': ['A', 'B'],
1f8f5b
-                            'options':{'role':'Master', 'id':'pcs_rsc_set_A_B'}
1f8f5b
+                            'options':{'role':'Master', 'id':'some_id_set'}
1f8f5b
                         },
1f8f5b
                         {
1f8f5b
                             'ids': ['E', 'F'],
1f8f5b
-                            'options':{'action':'start', 'id':'pcs_rsc_set_E_F'}
1f8f5b
+                            'options':{'action':'start', 'id':'some_id_set-1'}
1f8f5b
                         }
1f8f5b
                     ],
1f8f5b
                 }]
1f8f5b
@@ -115,11 +115,11 @@ class CreateWithSetTest(TestCase):
1f8f5b
         constraint_section = self.independent_cib.find(".//constraints")
1f8f5b
         constraint_section.append(etree.XML("""
1f8f5b
             <rsc_some id="some_id" symmetrical="true">
1f8f5b
-                <resource_set id="pcs_rsc_set_A_B" role="Master">
1f8f5b
+                <resource_set id="some_id_set" role="Master">
1f8f5b
                     <resource_ref id="A"></resource_ref>
1f8f5b
                     <resource_ref id="B"></resource_ref>
1f8f5b
                 </resource_set>
1f8f5b
-                <resource_set action="start" id="pcs_rsc_set_E_F">
1f8f5b
+                <resource_set action="start" id="some_id_set-1">
1f8f5b
                     <resource_ref id="E"></resource_ref>
1f8f5b
                     <resource_ref id="F"></resource_ref>
1f8f5b
                 </resource_set>
1f8f5b
@@ -127,11 +127,11 @@ class CreateWithSetTest(TestCase):
1f8f5b
         """))
1f8f5b
         constraint_section.append(etree.XML("""
1f8f5b
             <rsc_some id="some_id" symmetrical="true">
1f8f5b
-                <resource_set id="pcs_rsc_set_A_B-1" role="Master">
1f8f5b
+                <resource_set id="some_id_set-2" role="Master">
1f8f5b
                     <resource_ref id="A"></resource_ref>
1f8f5b
                     <resource_ref id="B"></resource_ref>
1f8f5b
                 </resource_set>
1f8f5b
-                <resource_set action="start" id="pcs_rsc_set_E_F-1">
1f8f5b
+                <resource_set action="start" id="some_id_set-3">
1f8f5b
                     <resource_ref id="E"></resource_ref>
1f8f5b
                     <resource_ref id="F"></resource_ref>
1f8f5b
                 </resource_set>
1f8f5b
@@ -177,7 +177,7 @@ class ShowTest(TestCase):
1f8f5b
                 {
1f8f5b
                     'resource_sets': [{
1f8f5b
                         'ids': ['A', 'B'],
1f8f5b
-                        'options': {'role': 'Master', 'id': 'pcs_rsc_set_A_B'},
1f8f5b
+                        'options': {'role': 'Master', 'id': 'some_id_set'},
1f8f5b
                     }],
1f8f5b
                     'options': {'symmetrical': 'true', 'id': 'some_id'}
1f8f5b
                 },
1f8f5b
@@ -185,7 +185,7 @@ class ShowTest(TestCase):
1f8f5b
                     'options': {'symmetrical': 'true', 'id': 'some_id'},
1f8f5b
                     'resource_sets': [{
1f8f5b
                         'ids': ['E', 'F'],
1f8f5b
-                        'options': {'action': 'start', 'id': 'pcs_rsc_set_E_F'}
1f8f5b
+                        'options': {'action': 'start', 'id': 'some_id_set-1'}
1f8f5b
                     }]
1f8f5b
                 }
1f8f5b
             ]
1f8f5b
diff --git a/pcs/test/test_constraints.py b/pcs/test/test_constraints.py
1f8f5b
index 3feaa053..df8594a5 100644
1f8f5b
--- a/pcs/test/test_constraints.py
1f8f5b
+++ b/pcs/test/test_constraints.py
1f8f5b
@@ -581,13 +581,13 @@ Ticket Constraints:
1f8f5b
         ac(o, """\
1f8f5b
 Colocation Constraints:
1f8f5b
   Resource Sets:
1f8f5b
-    set D5 D6 D7 require-all=true sequential=false (id:pcs_rsc_set_D5_D6_D7) set D8 D9 action=start require-all=false role=Stopped sequential=true (id:pcs_rsc_set_D8_D9) setoptions score=INFINITY (id:pcs_rsc_colocation_set_D5_D6_D7_set_D8_D9)
1f8f5b
-    set D5 D6 (id:pcs_rsc_set_D5_D6) setoptions score=INFINITY (id:pcs_rsc_colocation_set_D5_D6)
1f8f5b
-    set D5 D6 action=stop role=Started (id:pcs_rsc_set_D5_D6-1) set D7 D8 action=promote role=Slave (id:pcs_rsc_set_D7_D8) set D8 D9 action=demote role=Master (id:pcs_rsc_set_D8_D9-1) setoptions score=INFINITY (id:pcs_rsc_colocation_set_D5_D6_set_D7_D8_set_D8_D9)
1f8f5b
+    set D5 D6 D7 require-all=true sequential=false (id:colocation_set_D5D6D7_set) set D8 D9 action=start require-all=false role=Stopped sequential=true (id:colocation_set_D5D6D7_set-1) setoptions score=INFINITY (id:colocation_set_D5D6D7)
1f8f5b
+    set D5 D6 (id:colocation_set_D5D6_set) setoptions score=INFINITY (id:colocation_set_D5D6)
1f8f5b
+    set D5 D6 action=stop role=Started (id:colocation_set_D5D6D7-1_set) set D7 D8 action=promote role=Slave (id:colocation_set_D5D6D7-1_set-1) set D8 D9 action=demote role=Master (id:colocation_set_D5D6D7-1_set-2) setoptions score=INFINITY (id:colocation_set_D5D6D7-1)
1f8f5b
 """)
1f8f5b
         assert r == 0
1f8f5b
 
1f8f5b
-        o, r = pcs(temp_cib, "constraint remove pcs_rsc_colocation_set_D5_D6")
1f8f5b
+        o, r = pcs(temp_cib, "constraint remove colocation_set_D5D6")
1f8f5b
         ac(o,"")
1f8f5b
         assert r == 0
1f8f5b
 
1f8f5b
@@ -595,16 +595,16 @@ Colocation Constraints:
1f8f5b
         ac(o, """\
1f8f5b
 Colocation Constraints:
1f8f5b
   Resource Sets:
1f8f5b
-    set D5 D6 D7 require-all=true sequential=false (id:pcs_rsc_set_D5_D6_D7) set D8 D9 action=start require-all=false role=Stopped sequential=true (id:pcs_rsc_set_D8_D9) setoptions score=INFINITY (id:pcs_rsc_colocation_set_D5_D6_D7_set_D8_D9)
1f8f5b
-    set D5 D6 action=stop role=Started (id:pcs_rsc_set_D5_D6-1) set D7 D8 action=promote role=Slave (id:pcs_rsc_set_D7_D8) set D8 D9 action=demote role=Master (id:pcs_rsc_set_D8_D9-1) setoptions score=INFINITY (id:pcs_rsc_colocation_set_D5_D6_set_D7_D8_set_D8_D9)
1f8f5b
+    set D5 D6 D7 require-all=true sequential=false (id:colocation_set_D5D6D7_set) set D8 D9 action=start require-all=false role=Stopped sequential=true (id:colocation_set_D5D6D7_set-1) setoptions score=INFINITY (id:colocation_set_D5D6D7)
1f8f5b
+    set D5 D6 action=stop role=Started (id:colocation_set_D5D6D7-1_set) set D7 D8 action=promote role=Slave (id:colocation_set_D5D6D7-1_set-1) set D8 D9 action=demote role=Master (id:colocation_set_D5D6D7-1_set-2) setoptions score=INFINITY (id:colocation_set_D5D6D7-1)
1f8f5b
 """)
1f8f5b
         assert r == 0
1f8f5b
 
1f8f5b
         o, r = pcs(temp_cib, "resource delete D5")
1f8f5b
         ac(o, outdent(
1f8f5b
             """\
1f8f5b
-            Removing D5 from set pcs_rsc_set_D5_D6_D7
1f8f5b
-            Removing D5 from set pcs_rsc_set_D5_D6-1
1f8f5b
+            Removing D5 from set colocation_set_D5D6D7_set
1f8f5b
+            Removing D5 from set colocation_set_D5D6D7-1_set
1f8f5b
             Deleting Resource - D5
1f8f5b
             """
1f8f5b
         ))
1f8f5b
@@ -613,20 +613,32 @@ Colocation Constraints:
1f8f5b
         o, r = pcs(temp_cib, "resource delete D6")
1f8f5b
         ac(o, outdent(
1f8f5b
             """\
1f8f5b
-            Removing D6 from set pcs_rsc_set_D5_D6_D7
1f8f5b
-            Removing D6 from set pcs_rsc_set_D5_D6-1
1f8f5b
-            Removing set pcs_rsc_set_D5_D6-1
1f8f5b
+            Removing D6 from set colocation_set_D5D6D7_set
1f8f5b
+            Removing D6 from set colocation_set_D5D6D7-1_set
1f8f5b
+            Removing set colocation_set_D5D6D7-1_set
1f8f5b
             Deleting Resource - D6
1f8f5b
             """
1f8f5b
         ))
1f8f5b
         assert r == 0
1f8f5b
 
1f8f5b
         o, r = pcs(temp_cib, "constraint ref D7")
1f8f5b
-        ac(o,"Resource: D7\n  pcs_rsc_colocation_set_D5_D6_D7_set_D8_D9\n  pcs_rsc_colocation_set_D5_D6_set_D7_D8_set_D8_D9\n")
1f8f5b
+        ac(o, outdent(
1f8f5b
+            """\
1f8f5b
+            Resource: D7
1f8f5b
+              colocation_set_D5D6D7
1f8f5b
+              colocation_set_D5D6D7-1
1f8f5b
+            """
1f8f5b
+        ))
1f8f5b
         assert r == 0
1f8f5b
 
1f8f5b
         o, r = pcs(temp_cib, "constraint ref D8")
1f8f5b
-        ac(o,"Resource: D8\n  pcs_rsc_colocation_set_D5_D6_D7_set_D8_D9\n  pcs_rsc_colocation_set_D5_D6_set_D7_D8_set_D8_D9\n")
1f8f5b
+        ac(o, outdent(
1f8f5b
+            """\
1f8f5b
+            Resource: D8
1f8f5b
+              colocation_set_D5D6D7
1f8f5b
+              colocation_set_D5D6D7-1
1f8f5b
+            """
1f8f5b
+        ))
1f8f5b
         assert r == 0
1f8f5b
 
1f8f5b
         output, retValue = pcs(temp_cib, "constraint colocation set D1 D2 sequential=foo")
1f8f5b
@@ -852,12 +864,12 @@ Colocation Constraints:
1f8f5b
         ac(o,"""\
1f8f5b
 Ordering Constraints:
1f8f5b
   Resource Sets:
1f8f5b
-    set D5 D6 D7 require-all=true sequential=false (id:pcs_rsc_set_D5_D6_D7) set D8 D9 action=start require-all=false role=Stopped sequential=true (id:pcs_rsc_set_D8_D9) (id:pcs_rsc_order_set_D5_D6_D7_set_D8_D9)
1f8f5b
-    set D5 D6 (id:pcs_rsc_set_D5_D6) (id:pcs_rsc_order_set_D5_D6)
1f8f5b
-    set D5 D6 action=stop role=Started (id:pcs_rsc_set_D5_D6-1) set D7 D8 action=promote role=Slave (id:pcs_rsc_set_D7_D8) set D8 D9 action=demote role=Master (id:pcs_rsc_set_D8_D9-1) (id:pcs_rsc_order_set_D5_D6_set_D7_D8_set_D8_D9)
1f8f5b
+    set D5 D6 D7 require-all=true sequential=false (id:order_set_D5D6D7_set) set D8 D9 action=start require-all=false role=Stopped sequential=true (id:order_set_D5D6D7_set-1) (id:order_set_D5D6D7)
1f8f5b
+    set D5 D6 (id:order_set_D5D6_set) (id:order_set_D5D6)
1f8f5b
+    set D5 D6 action=stop role=Started (id:order_set_D5D6D7-1_set) set D7 D8 action=promote role=Slave (id:order_set_D5D6D7-1_set-1) set D8 D9 action=demote role=Master (id:order_set_D5D6D7-1_set-2) (id:order_set_D5D6D7-1)
1f8f5b
 """)
1f8f5b
 
1f8f5b
-        o, r = pcs(temp_cib, "constraint remove pcs_rsc_order_set_D5_D6")
1f8f5b
+        o, r = pcs(temp_cib, "constraint remove order_set_D5D6")
1f8f5b
         assert r == 0
1f8f5b
         ac(o,"")
1f8f5b
 
1f8f5b
@@ -866,15 +878,15 @@ Ordering Constraints:
1f8f5b
         ac(o,"""\
1f8f5b
 Ordering Constraints:
1f8f5b
   Resource Sets:
1f8f5b
-    set D5 D6 D7 require-all=true sequential=false (id:pcs_rsc_set_D5_D6_D7) set D8 D9 action=start require-all=false role=Stopped sequential=true (id:pcs_rsc_set_D8_D9) (id:pcs_rsc_order_set_D5_D6_D7_set_D8_D9)
1f8f5b
-    set D5 D6 action=stop role=Started (id:pcs_rsc_set_D5_D6-1) set D7 D8 action=promote role=Slave (id:pcs_rsc_set_D7_D8) set D8 D9 action=demote role=Master (id:pcs_rsc_set_D8_D9-1) (id:pcs_rsc_order_set_D5_D6_set_D7_D8_set_D8_D9)
1f8f5b
+    set D5 D6 D7 require-all=true sequential=false (id:order_set_D5D6D7_set) set D8 D9 action=start require-all=false role=Stopped sequential=true (id:order_set_D5D6D7_set-1) (id:order_set_D5D6D7)
1f8f5b
+    set D5 D6 action=stop role=Started (id:order_set_D5D6D7-1_set) set D7 D8 action=promote role=Slave (id:order_set_D5D6D7-1_set-1) set D8 D9 action=demote role=Master (id:order_set_D5D6D7-1_set-2) (id:order_set_D5D6D7-1)
1f8f5b
 """)
1f8f5b
 
1f8f5b
         o, r = pcs(temp_cib, "resource delete D5")
1f8f5b
         ac(o, outdent(
1f8f5b
             """\
1f8f5b
-            Removing D5 from set pcs_rsc_set_D5_D6_D7
1f8f5b
-            Removing D5 from set pcs_rsc_set_D5_D6-1
1f8f5b
+            Removing D5 from set order_set_D5D6D7_set
1f8f5b
+            Removing D5 from set order_set_D5D6D7-1_set
1f8f5b
             Deleting Resource - D5
1f8f5b
             """
1f8f5b
         ))
1f8f5b
@@ -883,9 +895,9 @@ Ordering Constraints:
1f8f5b
         o, r = pcs(temp_cib, "resource delete D6")
1f8f5b
         ac(o, outdent(
1f8f5b
             """\
1f8f5b
-            Removing D6 from set pcs_rsc_set_D5_D6_D7
1f8f5b
-            Removing D6 from set pcs_rsc_set_D5_D6-1
1f8f5b
-            Removing set pcs_rsc_set_D5_D6-1
1f8f5b
+            Removing D6 from set order_set_D5D6D7_set
1f8f5b
+            Removing D6 from set order_set_D5D6D7-1_set
1f8f5b
+            Removing set order_set_D5D6D7-1_set
1f8f5b
             Deleting Resource - D6
1f8f5b
             """
1f8f5b
         ))
1f8f5b
@@ -946,9 +958,9 @@ Error: invalid option 'foo', allowed options are: id, kind, symmetrical
1f8f5b
 Location Constraints:
1f8f5b
 Ordering Constraints:
1f8f5b
   Resource Sets:
1f8f5b
-    set D7 require-all=true sequential=false (id:pcs_rsc_set_D5_D6_D7) set D8 D9 action=start require-all=false role=Stopped sequential=true (id:pcs_rsc_set_D8_D9) (id:pcs_rsc_order_set_D5_D6_D7_set_D8_D9)
1f8f5b
-    set D7 D8 action=promote role=Slave (id:pcs_rsc_set_D7_D8) set D8 D9 action=demote role=Master (id:pcs_rsc_set_D8_D9-1) (id:pcs_rsc_order_set_D5_D6_set_D7_D8_set_D8_D9)
1f8f5b
-    set D1 D2 (id:pcs_rsc_set_D1_D2) setoptions kind=Mandatory symmetrical=false (id:pcs_rsc_order_set_D1_D2)
1f8f5b
+    set D7 require-all=true sequential=false (id:order_set_D5D6D7_set) set D8 D9 action=start require-all=false role=Stopped sequential=true (id:order_set_D5D6D7_set-1) (id:order_set_D5D6D7)
1f8f5b
+    set D7 D8 action=promote role=Slave (id:order_set_D5D6D7-1_set-1) set D8 D9 action=demote role=Master (id:order_set_D5D6D7-1_set-2) (id:order_set_D5D6D7-1)
1f8f5b
+    set D1 D2 (id:order_set_D1D2_set) setoptions kind=Mandatory symmetrical=false (id:order_set_D1D2)
1f8f5b
 Colocation Constraints:
1f8f5b
 Ticket Constraints:
1f8f5b
 """)
1f8f5b
@@ -1220,11 +1232,11 @@ Location Constraints:
1f8f5b
 Ordering Constraints:
1f8f5b
   start stateful1 then start dummy1 (kind:Mandatory) (id:order-stateful1-dummy1-mandatory)
1f8f5b
   Resource Sets:
1f8f5b
-    set stateful1 dummy1 (id:pcs_rsc_set_stateful1_dummy1) (id:pcs_rsc_order_set_stateful1_dummy1)
1f8f5b
+    set stateful1 dummy1 (id:order_set_s1d1_set) (id:order_set_s1d1)
1f8f5b
 Colocation Constraints:
1f8f5b
   stateful1 with dummy1 (score:INFINITY) (id:colocation-stateful1-dummy1-INFINITY)
1f8f5b
   Resource Sets:
1f8f5b
-    set stateful1 dummy1 (id:pcs_rsc_set_stateful1_dummy1-1) setoptions score=INFINITY (id:pcs_rsc_colocation_set_stateful1_dummy1)
1f8f5b
+    set stateful1 dummy1 (id:colocation_set_s1d1_set) setoptions score=INFINITY (id:colocation_set_s1d1)
1f8f5b
 Ticket Constraints:
1f8f5b
 """)
1f8f5b
         assert r == 0
1f8f5b
@@ -1347,14 +1359,14 @@ Ordering Constraints:
1f8f5b
   start stateful1-master then start dummy1 (kind:Mandatory) (id:order-stateful1-master-dummy1-mandatory)
1f8f5b
   start dummy1 then start statefulG-master (kind:Mandatory) (id:order-dummy1-statefulG-master-mandatory)
1f8f5b
   Resource Sets:
1f8f5b
-    set stateful1-master dummy1 (id:pcs_rsc_set_stateful1-master_dummy1) (id:pcs_rsc_order_set_stateful1_dummy1)
1f8f5b
-    set dummy1 statefulG-master (id:pcs_rsc_set_dummy1_statefulG-master) (id:pcs_rsc_order_set_dummy1_statefulG)
1f8f5b
+    set stateful1-master dummy1 (id:order_set_s1d1_set) (id:order_set_s1d1)
1f8f5b
+    set dummy1 statefulG-master (id:order_set_d1sG_set) (id:order_set_d1sG)
1f8f5b
 Colocation Constraints:
1f8f5b
   stateful1-master with dummy1 (score:INFINITY) (id:colocation-stateful1-master-dummy1-INFINITY)
1f8f5b
   dummy1 with statefulG-master (score:INFINITY) (id:colocation-dummy1-statefulG-master-INFINITY)
1f8f5b
   Resource Sets:
1f8f5b
-    set dummy1 stateful1-master (id:pcs_rsc_set_dummy1_stateful1-master) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_stateful1)
1f8f5b
-    set statefulG-master dummy1 (id:pcs_rsc_set_statefulG-master_dummy1) setoptions score=INFINITY (id:pcs_rsc_colocation_set_statefulG_dummy1)
1f8f5b
+    set dummy1 stateful1-master (id:colocation_set_d1s1_set) setoptions score=INFINITY (id:colocation_set_d1s1)
1f8f5b
+    set statefulG-master dummy1 (id:colocation_set_sGd1_set) setoptions score=INFINITY (id:colocation_set_sGd1)
1f8f5b
 Ticket Constraints:
1f8f5b
 """)
1f8f5b
         self.assertEqual(0, returnVal)
1f8f5b
@@ -1398,7 +1410,7 @@ Adding stateful1-master dummy1 (kind: Mandatory) (Options: first-action=start th
1f8f5b
         )
1f8f5b
         ac(output, """\
1f8f5b
 Error: duplicate constraint already exists, use --force to override
1f8f5b
-  set stateful1-master dummy1 (id:pcs_rsc_set_stateful1-master_dummy1) (id:pcs_rsc_order_set_stateful1_dummy1)
1f8f5b
+  set stateful1-master dummy1 (id:order_set_s1d1_set) (id:order_set_s1d1)
1f8f5b
 """)
1f8f5b
         self.assertEqual(1, returnVal)
1f8f5b
 
1f8f5b
@@ -1407,7 +1419,7 @@ Error: duplicate constraint already exists, use --force to override
1f8f5b
         )
1f8f5b
         ac(output, console_report(
1f8f5b
             "Warning: duplicate constraint already exists",
1f8f5b
-            "  set stateful1-master dummy1 (id:pcs_rsc_set_stateful1-master_dummy1) (id:pcs_rsc_order_set_stateful1_dummy1)",
1f8f5b
+            "  set stateful1-master dummy1 (id:order_set_s1d1_set) (id:order_set_s1d1)",
1f8f5b
         ))
1f8f5b
         self.assertEqual(0, returnVal)
1f8f5b
 
1f8f5b
@@ -1431,7 +1443,7 @@ Error: duplicate constraint already exists, use --force to override
1f8f5b
         )
1f8f5b
         ac(output, """\
1f8f5b
 Error: duplicate constraint already exists, use --force to override
1f8f5b
-  set dummy1 stateful1-master (id:pcs_rsc_set_dummy1_stateful1-master) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_stateful1)
1f8f5b
+  set dummy1 stateful1-master (id:colocation_set_d1s1_set) setoptions score=INFINITY (id:colocation_set_d1s1)
1f8f5b
 """)
1f8f5b
         self.assertEqual(1, returnVal)
1f8f5b
 
1f8f5b
@@ -1440,7 +1452,7 @@ Error: duplicate constraint already exists, use --force to override
1f8f5b
         )
1f8f5b
         ac(output, console_report(
1f8f5b
             "Warning: duplicate constraint already exists",
1f8f5b
-            "  set dummy1 stateful1-master (id:pcs_rsc_set_dummy1_stateful1-master) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_stateful1)",
1f8f5b
+            "  set dummy1 stateful1-master (id:colocation_set_d1s1_set) setoptions score=INFINITY (id:colocation_set_d1s1)",
1f8f5b
         ))
1f8f5b
         self.assertEqual(0, returnVal)
1f8f5b
 
1f8f5b
@@ -1465,17 +1477,17 @@ Ordering Constraints:
1f8f5b
   start dummy1 then start statefulG-master (kind:Mandatory) (id:order-dummy1-statefulG-master-mandatory)
1f8f5b
   start stateful1-master then start dummy1 (kind:Mandatory) (id:order-stateful1-master-dummy1-mandatory-1)
1f8f5b
   Resource Sets:
1f8f5b
-    set stateful1-master dummy1 (id:pcs_rsc_set_stateful1-master_dummy1) (id:pcs_rsc_order_set_stateful1_dummy1)
1f8f5b
-    set dummy1 statefulG-master (id:pcs_rsc_set_dummy1_statefulG-master) (id:pcs_rsc_order_set_dummy1_statefulG)
1f8f5b
-    set stateful1-master dummy1 (id:pcs_rsc_set_stateful1-master_dummy1-1) (id:pcs_rsc_order_set_stateful1_dummy1-1)
1f8f5b
+    set stateful1-master dummy1 (id:order_set_s1d1_set) (id:order_set_s1d1)
1f8f5b
+    set dummy1 statefulG-master (id:order_set_d1sG_set) (id:order_set_d1sG)
1f8f5b
+    set stateful1-master dummy1 (id:order_set_s1d1-1_set) (id:order_set_s1d1-1)
1f8f5b
 Colocation Constraints:
1f8f5b
   stateful1-master with dummy1 (score:INFINITY) (id:colocation-stateful1-master-dummy1-INFINITY)
1f8f5b
   dummy1 with statefulG-master (score:INFINITY) (id:colocation-dummy1-statefulG-master-INFINITY)
1f8f5b
   stateful1-master with dummy1 (score:INFINITY) (id:colocation-stateful1-master-dummy1-INFINITY-1)
1f8f5b
   Resource Sets:
1f8f5b
-    set dummy1 stateful1-master (id:pcs_rsc_set_dummy1_stateful1-master) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_stateful1)
1f8f5b
-    set statefulG-master dummy1 (id:pcs_rsc_set_statefulG-master_dummy1) setoptions score=INFINITY (id:pcs_rsc_colocation_set_statefulG_dummy1)
1f8f5b
-    set dummy1 stateful1-master (id:pcs_rsc_set_dummy1_stateful1-master-1) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_stateful1-1)
1f8f5b
+    set dummy1 stateful1-master (id:colocation_set_d1s1_set) setoptions score=INFINITY (id:colocation_set_d1s1)
1f8f5b
+    set statefulG-master dummy1 (id:colocation_set_sGd1_set) setoptions score=INFINITY (id:colocation_set_sGd1)
1f8f5b
+    set dummy1 stateful1-master (id:colocation_set_d1s1-1_set) setoptions score=INFINITY (id:colocation_set_d1s1-1)
1f8f5b
 Ticket Constraints:
1f8f5b
 """)
1f8f5b
         self.assertEqual(0, returnVal)
1f8f5b
@@ -1587,11 +1599,11 @@ Location Constraints:
1f8f5b
 Ordering Constraints:
1f8f5b
   start dummy then start dummy1 (kind:Mandatory) (id:order-dummy-dummy1-mandatory)
1f8f5b
   Resource Sets:
1f8f5b
-    set dummy1 dummy (id:pcs_rsc_set_dummy1_dummy) (id:pcs_rsc_order_set_dummy1_dummy)
1f8f5b
+    set dummy1 dummy (id:order_set_d1dy_set) (id:order_set_d1dy)
1f8f5b
 Colocation Constraints:
1f8f5b
   dummy with dummy1 (score:INFINITY) (id:colocation-dummy-dummy1-INFINITY)
1f8f5b
   Resource Sets:
1f8f5b
-    set dummy1 dummy (id:pcs_rsc_set_dummy1_dummy-1) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_dummy)
1f8f5b
+    set dummy1 dummy (id:colocation_set_d1dy_set) setoptions score=INFINITY (id:colocation_set_d1dy)
1f8f5b
 Ticket Constraints:
1f8f5b
 """)
1f8f5b
         assert r == 0
1f8f5b
@@ -1710,14 +1722,14 @@ Ordering Constraints:
1f8f5b
   start dummy-clone then start dummy1 (kind:Mandatory) (id:order-dummy-clone-dummy1-mandatory)
1f8f5b
   start dummy1 then start dummyG-clone (kind:Mandatory) (id:order-dummy1-dummyG-clone-mandatory)
1f8f5b
   Resource Sets:
1f8f5b
-    set dummy1 dummy-clone (id:pcs_rsc_set_dummy1_dummy-clone) (id:pcs_rsc_order_set_dummy1_dummy)
1f8f5b
-    set dummyG-clone dummy1 (id:pcs_rsc_set_dummyG-clone_dummy1) (id:pcs_rsc_order_set_dummyG_dummy1)
1f8f5b
+    set dummy1 dummy-clone (id:order_set_d1dy_set) (id:order_set_d1dy)
1f8f5b
+    set dummyG-clone dummy1 (id:order_set_dGd1_set) (id:order_set_dGd1)
1f8f5b
 Colocation Constraints:
1f8f5b
   dummy-clone with dummy1 (score:INFINITY) (id:colocation-dummy-clone-dummy1-INFINITY)
1f8f5b
   dummy1 with dummyG-clone (score:INFINITY) (id:colocation-dummy1-dummyG-clone-INFINITY)
1f8f5b
   Resource Sets:
1f8f5b
-    set dummy1 dummy-clone (id:pcs_rsc_set_dummy1_dummy-clone-1) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_dummy)
1f8f5b
-    set dummy1 dummyG-clone (id:pcs_rsc_set_dummy1_dummyG-clone) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_dummyG)
1f8f5b
+    set dummy1 dummy-clone (id:colocation_set_d1dy_set) setoptions score=INFINITY (id:colocation_set_d1dy)
1f8f5b
+    set dummy1 dummyG-clone (id:colocation_set_d1dG_set) setoptions score=INFINITY (id:colocation_set_d1dG)
1f8f5b
 Ticket Constraints:
1f8f5b
 """)
1f8f5b
         self.assertEqual(0, returnVal)
1f8f5b
@@ -1761,7 +1773,7 @@ Adding dummy-clone dummy1 (kind: Mandatory) (Options: first-action=start then-ac
1f8f5b
         )
1f8f5b
         ac(output, """\
1f8f5b
 Error: duplicate constraint already exists, use --force to override
1f8f5b
-  set dummy1 dummy-clone (id:pcs_rsc_set_dummy1_dummy-clone) (id:pcs_rsc_order_set_dummy1_dummy)
1f8f5b
+  set dummy1 dummy-clone (id:order_set_d1dy_set) (id:order_set_d1dy)
1f8f5b
 """)
1f8f5b
         self.assertEqual(1, returnVal)
1f8f5b
 
1f8f5b
@@ -1770,7 +1782,7 @@ Error: duplicate constraint already exists, use --force to override
1f8f5b
         )
1f8f5b
         ac(output, console_report(
1f8f5b
             "Warning: duplicate constraint already exists",
1f8f5b
-            "  set dummy1 dummy-clone (id:pcs_rsc_set_dummy1_dummy-clone) (id:pcs_rsc_order_set_dummy1_dummy)",
1f8f5b
+            "  set dummy1 dummy-clone (id:order_set_d1dy_set) (id:order_set_d1dy)",
1f8f5b
         ))
1f8f5b
         self.assertEqual(0, returnVal)
1f8f5b
 
1f8f5b
@@ -1794,7 +1806,7 @@ Error: duplicate constraint already exists, use --force to override
1f8f5b
         )
1f8f5b
         ac(output, """\
1f8f5b
 Error: duplicate constraint already exists, use --force to override
1f8f5b
-  set dummy1 dummy-clone (id:pcs_rsc_set_dummy1_dummy-clone-1) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_dummy)
1f8f5b
+  set dummy1 dummy-clone (id:colocation_set_d1dy_set) setoptions score=INFINITY (id:colocation_set_d1dy)
1f8f5b
 """)
1f8f5b
         self.assertEqual(1, returnVal)
1f8f5b
 
1f8f5b
@@ -1803,7 +1815,7 @@ Error: duplicate constraint already exists, use --force to override
1f8f5b
         )
1f8f5b
         ac(output, console_report(
1f8f5b
             "Warning: duplicate constraint already exists",
1f8f5b
-            "  set dummy1 dummy-clone (id:pcs_rsc_set_dummy1_dummy-clone-1) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_dummy)",
1f8f5b
+            "  set dummy1 dummy-clone (id:colocation_set_d1dy_set) setoptions score=INFINITY (id:colocation_set_d1dy)",
1f8f5b
         ))
1f8f5b
         self.assertEqual(0, returnVal)
1f8f5b
 
1f8f5b
@@ -1828,17 +1840,17 @@ Ordering Constraints:
1f8f5b
   start dummy1 then start dummyG-clone (kind:Mandatory) (id:order-dummy1-dummyG-clone-mandatory)
1f8f5b
   start dummy-clone then start dummy1 (kind:Mandatory) (id:order-dummy-clone-dummy1-mandatory-1)
1f8f5b
   Resource Sets:
1f8f5b
-    set dummy1 dummy-clone (id:pcs_rsc_set_dummy1_dummy-clone) (id:pcs_rsc_order_set_dummy1_dummy)
1f8f5b
-    set dummyG-clone dummy1 (id:pcs_rsc_set_dummyG-clone_dummy1) (id:pcs_rsc_order_set_dummyG_dummy1)
1f8f5b
-    set dummy1 dummy-clone (id:pcs_rsc_set_dummy1_dummy-clone-2) (id:pcs_rsc_order_set_dummy1_dummy-1)
1f8f5b
+    set dummy1 dummy-clone (id:order_set_d1dy_set) (id:order_set_d1dy)
1f8f5b
+    set dummyG-clone dummy1 (id:order_set_dGd1_set) (id:order_set_dGd1)
1f8f5b
+    set dummy1 dummy-clone (id:order_set_d1dy-1_set) (id:order_set_d1dy-1)
1f8f5b
 Colocation Constraints:
1f8f5b
   dummy-clone with dummy1 (score:INFINITY) (id:colocation-dummy-clone-dummy1-INFINITY)
1f8f5b
   dummy1 with dummyG-clone (score:INFINITY) (id:colocation-dummy1-dummyG-clone-INFINITY)
1f8f5b
   dummy-clone with dummy1 (score:INFINITY) (id:colocation-dummy-clone-dummy1-INFINITY-1)
1f8f5b
   Resource Sets:
1f8f5b
-    set dummy1 dummy-clone (id:pcs_rsc_set_dummy1_dummy-clone-1) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_dummy)
1f8f5b
-    set dummy1 dummyG-clone (id:pcs_rsc_set_dummy1_dummyG-clone) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_dummyG)
1f8f5b
-    set dummy1 dummy-clone (id:pcs_rsc_set_dummy1_dummy-clone-3) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_dummy-1)
1f8f5b
+    set dummy1 dummy-clone (id:colocation_set_d1dy_set) setoptions score=INFINITY (id:colocation_set_d1dy)
1f8f5b
+    set dummy1 dummyG-clone (id:colocation_set_d1dG_set) setoptions score=INFINITY (id:colocation_set_d1dG)
1f8f5b
+    set dummy1 dummy-clone (id:colocation_set_d1dy-1_set) setoptions score=INFINITY (id:colocation_set_d1dy-1)
1f8f5b
 Ticket Constraints:
1f8f5b
 """)
1f8f5b
         self.assertEqual(0, returnVal)
1f8f5b
@@ -2420,14 +2432,14 @@ Ticket Constraints:
1f8f5b
         output, returnVal = pcs("constraint order set D1 D2")
1f8f5b
         ac(output, """\
1f8f5b
 Error: duplicate constraint already exists, use --force to override
1f8f5b
-  set D1 D2 (id:pcs_rsc_set_D1_D2) (id:pcs_rsc_order_set_D1_D2)
1f8f5b
+  set D1 D2 (id:order_set_D1D2_set) (id:order_set_D1D2)
1f8f5b
 """)
1f8f5b
         self.assertEqual(1, returnVal)
1f8f5b
 
1f8f5b
         output, returnVal = pcs("constraint order set D1 D2 --force")
1f8f5b
         ac(output, console_report(
1f8f5b
             "Warning: duplicate constraint already exists",
1f8f5b
-            "  set D1 D2 (id:pcs_rsc_set_D1_D2) (id:pcs_rsc_order_set_D1_D2)",
1f8f5b
+            "  set D1 D2 (id:order_set_D1D2_set) (id:order_set_D1D2)",
1f8f5b
         ))
1f8f5b
         self.assertEqual(0, returnVal)
1f8f5b
 
1f8f5b
@@ -2438,14 +2450,14 @@ Error: duplicate constraint already exists, use --force to override
1f8f5b
         output, returnVal = pcs("constraint order set D1 D2 set D5 D6")
1f8f5b
         ac(output, """\
1f8f5b
 Error: duplicate constraint already exists, use --force to override
1f8f5b
-  set D1 D2 (id:pcs_rsc_set_D1_D2-2) set D5 D6 (id:pcs_rsc_set_D5_D6) (id:pcs_rsc_order_set_D1_D2_set_D5_D6)
1f8f5b
+  set D1 D2 (id:order_set_D1D2D5_set) set D5 D6 (id:order_set_D1D2D5_set-1) (id:order_set_D1D2D5)
1f8f5b
 """)
1f8f5b
         self.assertEqual(1, returnVal)
1f8f5b
 
1f8f5b
         output, returnVal = pcs("constraint order set D1 D2 set D5 D6 --force")
1f8f5b
         ac(output, console_report(
1f8f5b
             "Warning: duplicate constraint already exists",
1f8f5b
-            "  set D1 D2 (id:pcs_rsc_set_D1_D2-2) set D5 D6 (id:pcs_rsc_set_D5_D6) (id:pcs_rsc_order_set_D1_D2_set_D5_D6)",
1f8f5b
+            "  set D1 D2 (id:order_set_D1D2D5_set) set D5 D6 (id:order_set_D1D2D5_set-1) (id:order_set_D1D2D5)",
1f8f5b
         ))
1f8f5b
         self.assertEqual(0, returnVal)
1f8f5b
 
1f8f5b
@@ -2457,14 +2469,14 @@ Error: duplicate constraint already exists, use --force to override
1f8f5b
         output, returnVal = pcs("constraint colocation set D1 D2")
1f8f5b
         ac(output, """\
1f8f5b
 Error: duplicate constraint already exists, use --force to override
1f8f5b
-  set D1 D2 (id:pcs_rsc_set_D1_D2-4) setoptions score=INFINITY (id:pcs_rsc_colocation_set_D1_D2)
1f8f5b
+  set D1 D2 (id:colocation_set_D1D2_set) setoptions score=INFINITY (id:colocation_set_D1D2)
1f8f5b
 """)
1f8f5b
         self.assertEqual(1, returnVal)
1f8f5b
 
1f8f5b
         output, returnVal = pcs("constraint colocation set D1 D2 --force")
1f8f5b
         ac(output, console_report(
1f8f5b
             "Warning: duplicate constraint already exists",
1f8f5b
-            "  set D1 D2 (id:pcs_rsc_set_D1_D2-4) setoptions score=INFINITY (id:pcs_rsc_colocation_set_D1_D2)"
1f8f5b
+            "  set D1 D2 (id:colocation_set_D1D2_set) setoptions score=INFINITY (id:colocation_set_D1D2)"
1f8f5b
         ))
1f8f5b
         self.assertEqual(0, returnVal)
1f8f5b
 
1f8f5b
@@ -2475,7 +2487,7 @@ Error: duplicate constraint already exists, use --force to override
1f8f5b
         output, returnVal = pcs("constraint colocation set D1 D2 set D5 D6")
1f8f5b
         ac(output, """\
1f8f5b
 Error: duplicate constraint already exists, use --force to override
1f8f5b
-  set D1 D2 (id:pcs_rsc_set_D1_D2-6) set D5 D6 (id:pcs_rsc_set_D5_D6-2) setoptions score=INFINITY (id:pcs_rsc_colocation_set_D1_D2_set_D5_D6)
1f8f5b
+  set D1 D2 (id:colocation_set_D1D2D5_set) set D5 D6 (id:colocation_set_D1D2D5_set-1) setoptions score=INFINITY (id:colocation_set_D1D2D5)
1f8f5b
 """)
1f8f5b
         self.assertEqual(1, returnVal)
1f8f5b
 
1f8f5b
@@ -2484,7 +2496,7 @@ Error: duplicate constraint already exists, use --force to override
1f8f5b
         )
1f8f5b
         ac(output, console_report(
1f8f5b
             "Warning: duplicate constraint already exists",
1f8f5b
-            "  set D1 D2 (id:pcs_rsc_set_D1_D2-6) set D5 D6 (id:pcs_rsc_set_D5_D6-2) setoptions score=INFINITY (id:pcs_rsc_colocation_set_D1_D2_set_D5_D6)"
1f8f5b
+            "  set D1 D2 (id:colocation_set_D1D2D5_set) set D5 D6 (id:colocation_set_D1D2D5_set-1) setoptions score=INFINITY (id:colocation_set_D1D2D5)"
1f8f5b
         ))
1f8f5b
         self.assertEqual(0, returnVal)
1f8f5b
 
1f8f5b
@@ -2503,18 +2515,18 @@ Error: duplicate constraint already exists, use --force to override
1f8f5b
 Location Constraints:
1f8f5b
 Ordering Constraints:
1f8f5b
   Resource Sets:
1f8f5b
-    set D1 D2 (id:pcs_rsc_set_D1_D2) (id:pcs_rsc_order_set_D1_D2)
1f8f5b
-    set D1 D2 (id:pcs_rsc_set_D1_D2-1) (id:pcs_rsc_order_set_D1_D2-1)
1f8f5b
-    set D1 D2 (id:pcs_rsc_set_D1_D2-2) set D5 D6 (id:pcs_rsc_set_D5_D6) (id:pcs_rsc_order_set_D1_D2_set_D5_D6)
1f8f5b
-    set D1 D2 (id:pcs_rsc_set_D1_D2-3) set D5 D6 (id:pcs_rsc_set_D5_D6-1) (id:pcs_rsc_order_set_D1_D2_set_D5_D6-1)
1f8f5b
-    set D6 D1 (id:pcs_rsc_set_D6_D1-1) (id:pcs_rsc_order_set_D6_D1)
1f8f5b
+    set D1 D2 (id:order_set_D1D2_set) (id:order_set_D1D2)
1f8f5b
+    set D1 D2 (id:order_set_D1D2-1_set) (id:order_set_D1D2-1)
1f8f5b
+    set D1 D2 (id:order_set_D1D2D5_set) set D5 D6 (id:order_set_D1D2D5_set-1) (id:order_set_D1D2D5)
1f8f5b
+    set D1 D2 (id:order_set_D1D2D5-1_set) set D5 D6 (id:order_set_D1D2D5-1_set-1) (id:order_set_D1D2D5-1)
1f8f5b
+    set D6 D1 (id:order_set_D6D1_set) (id:order_set_D6D1)
1f8f5b
 Colocation Constraints:
1f8f5b
   Resource Sets:
1f8f5b
-    set D1 D2 (id:pcs_rsc_set_D1_D2-4) setoptions score=INFINITY (id:pcs_rsc_colocation_set_D1_D2)
1f8f5b
-    set D1 D2 (id:pcs_rsc_set_D1_D2-5) setoptions score=INFINITY (id:pcs_rsc_colocation_set_D1_D2-1)
1f8f5b
-    set D1 D2 (id:pcs_rsc_set_D1_D2-6) set D5 D6 (id:pcs_rsc_set_D5_D6-2) setoptions score=INFINITY (id:pcs_rsc_colocation_set_D1_D2_set_D5_D6)
1f8f5b
-    set D1 D2 (id:pcs_rsc_set_D1_D2-7) set D5 D6 (id:pcs_rsc_set_D5_D6-3) setoptions score=INFINITY (id:pcs_rsc_colocation_set_D1_D2_set_D5_D6-1)
1f8f5b
-    set D6 D1 (id:pcs_rsc_set_D6_D1) setoptions score=INFINITY (id:pcs_rsc_colocation_set_D6_D1)
1f8f5b
+    set D1 D2 (id:colocation_set_D1D2_set) setoptions score=INFINITY (id:colocation_set_D1D2)
1f8f5b
+    set D1 D2 (id:colocation_set_D1D2-1_set) setoptions score=INFINITY (id:colocation_set_D1D2-1)
1f8f5b
+    set D1 D2 (id:colocation_set_D1D2D5_set) set D5 D6 (id:colocation_set_D1D2D5_set-1) setoptions score=INFINITY (id:colocation_set_D1D2D5)
1f8f5b
+    set D1 D2 (id:colocation_set_D1D2D5-1_set) set D5 D6 (id:colocation_set_D1D2D5-1_set-1) setoptions score=INFINITY (id:colocation_set_D1D2D5-1)
1f8f5b
+    set D6 D1 (id:colocation_set_D6D1_set) setoptions score=INFINITY (id:colocation_set_D6D1)
1f8f5b
 Ticket Constraints:
1f8f5b
 """)
1f8f5b
 
1f8f5b
@@ -2782,14 +2794,14 @@ Ordering Constraints:
1f8f5b
   start D1 then start D2 (kind:Mandatory) (id:id7)
1f8f5b
   start D2 then start D1 (kind:Optional) (id:id8)
1f8f5b
   Resource Sets:
1f8f5b
-    set D1 D2 (id:pcs_rsc_set_D1_D2-1) (id:id5)
1f8f5b
-    set D2 D1 (id:pcs_rsc_set_D2_D1-1) setoptions kind=Mandatory (id:id6)
1f8f5b
+    set D1 D2 (id:id5_set) (id:id5)
1f8f5b
+    set D2 D1 (id:id6_set) setoptions kind=Mandatory (id:id6)
1f8f5b
 Colocation Constraints:
1f8f5b
   D1 with D2 (score:INFINITY) (id:id1)
1f8f5b
   D2 with D1 (score:100) (id:id2)
1f8f5b
   Resource Sets:
1f8f5b
-    set D1 D2 (id:pcs_rsc_set_D1_D2) setoptions score=INFINITY (id:id3)
1f8f5b
-    set D2 D1 (id:pcs_rsc_set_D2_D1) setoptions score=100 (id:id4)
1f8f5b
+    set D1 D2 (id:id3_set) setoptions score=INFINITY (id:id3)
1f8f5b
+    set D2 D1 (id:id4_set) setoptions score=100 (id:id4)
1f8f5b
 Ticket Constraints:
1f8f5b
 """)
1f8f5b
         self.assertEqual(0, returnVal)
1f8f5b
@@ -3527,10 +3539,8 @@ class BundleColocation(Bundle):
1f8f5b
             "constraint colocation set B X",
1f8f5b
             """
1f8f5b
                 <constraints>
1f8f5b
-                    
1f8f5b
-                        score="INFINITY"
1f8f5b
-                    >
1f8f5b
-                        <resource_set id="pcs_rsc_set_B_X">
1f8f5b
+                    <rsc_colocation id="colocation_set_BBXX" score="INFINITY">
1f8f5b
+                        <resource_set id="colocation_set_BBXX_set">
1f8f5b
                             <resource_ref id="B" />
1f8f5b
                             <resource_ref id="X" />
1f8f5b
                         </resource_set>
1f8f5b
@@ -3553,10 +3563,8 @@ class BundleColocation(Bundle):
1f8f5b
             "constraint colocation set R X --force",
1f8f5b
             """
1f8f5b
                 <constraints>
1f8f5b
-                    
1f8f5b
-                        score="INFINITY"
1f8f5b
-                    >
1f8f5b
-                        <resource_set id="pcs_rsc_set_R_X">
1f8f5b
+                    <rsc_colocation id="colocation_set_RRXX" score="INFINITY">
1f8f5b
+                        <resource_set id="colocation_set_RRXX_set">
1f8f5b
                             <resource_ref id="R" />
1f8f5b
                             <resource_ref id="X" />
1f8f5b
                         </resource_set>
1f8f5b
@@ -3615,8 +3623,8 @@ class BundleOrder(Bundle):
1f8f5b
             "constraint order set B X",
1f8f5b
             """
1f8f5b
                 <constraints>
1f8f5b
-                    <rsc_order id="pcs_rsc_order_set_B_X">
1f8f5b
-                        <resource_set id="pcs_rsc_set_B_X">
1f8f5b
+                    <rsc_order id="order_set_BBXX">
1f8f5b
+                        <resource_set id="order_set_BBXX_set">
1f8f5b
                             <resource_ref id="B" />
1f8f5b
                             <resource_ref id="X" />
1f8f5b
                         </resource_set>
1f8f5b
@@ -3639,8 +3647,8 @@ class BundleOrder(Bundle):
1f8f5b
             "constraint order set R X --force",
1f8f5b
             """
1f8f5b
                 <constraints>
1f8f5b
-                    <rsc_order id="pcs_rsc_order_set_R_X">
1f8f5b
-                        <resource_set id="pcs_rsc_set_R_X">
1f8f5b
+                    <rsc_order id="order_set_RRXX">
1f8f5b
+                        <resource_set id="order_set_RRXX_set">
1f8f5b
                             <resource_ref id="R" />
1f8f5b
                             <resource_ref id="X" />
1f8f5b
                         </resource_set>
1f8f5b
@@ -3693,8 +3701,8 @@ class BundleTicket(Bundle):
1f8f5b
             "constraint ticket set B setoptions ticket=T",
1f8f5b
             """
1f8f5b
                 <constraints>
1f8f5b
-                    <rsc_ticket id="pcs_rsc_ticket_set_B" ticket="T">
1f8f5b
-                        <resource_set id="pcs_rsc_set_B">
1f8f5b
+                    <rsc_ticket id="ticket_set_BB" ticket="T">
1f8f5b
+                        <resource_set id="ticket_set_BB_set">
1f8f5b
                             <resource_ref id="B" />
1f8f5b
                         </resource_set>
1f8f5b
                     </rsc_ticket>
1f8f5b
@@ -3716,8 +3724,8 @@ class BundleTicket(Bundle):
1f8f5b
             "constraint ticket set R setoptions ticket=T --force",
1f8f5b
             """
1f8f5b
                 <constraints>
1f8f5b
-                    <rsc_ticket id="pcs_rsc_ticket_set_R" ticket="T">
1f8f5b
-                        <resource_set id="pcs_rsc_set_R">
1f8f5b
+                    <rsc_ticket id="ticket_set_RR" ticket="T">
1f8f5b
+                        <resource_set id="ticket_set_RR_set">
1f8f5b
                             <resource_ref id="R" />
1f8f5b
                         </resource_set>
1f8f5b
                     </rsc_ticket>
1f8f5b
-- 
1f8f5b
2.21.0
1f8f5b