From 1f8f5b8507cfc3ecf2723c41afc55038d571f848 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: May 20 2020 09:55:18 +0000 Subject: import pcs-0.9.169-2.el7 --- diff --git a/.gitignore b/.gitignore index fb4514e..9b425cd 100644 --- a/.gitignore +++ b/.gitignore @@ -6,9 +6,9 @@ SOURCES/mock-1.0.1.tar.gz SOURCES/multi_json-1.13.1.gem SOURCES/open4-1.3.4.gem SOURCES/orderedhash-0.0.6.gem -SOURCES/pcs-0.9.168.tar.gz +SOURCES/pcs-0.9.169.tar.gz SOURCES/pyagentx-0.4.pcs.1.tar.gz -SOURCES/rack-1.6.11.gem +SOURCES/rack-1.6.12.gem SOURCES/rack-protection-1.5.5.gem SOURCES/rack-test-0.8.3.gem SOURCES/rpam-ruby19-1.2.1.gem diff --git a/.pcs.metadata b/.pcs.metadata index edbbf5a..0662232 100644 --- a/.pcs.metadata +++ b/.pcs.metadata @@ -6,9 +6,9 @@ baa3446eb63557a24c4522dc5a61cfad082fa395 SOURCES/mock-1.0.1.tar.gz ff6e0965061cb6f604ee4d87a2cf96a2917f9f88 SOURCES/multi_json-1.13.1.gem 41a7fe9f8e3e02da5ae76c821b89c5b376a97746 SOURCES/open4-1.3.4.gem 709cc95025009e5d221e37cb0777e98582146809 SOURCES/orderedhash-0.0.6.gem -ff0268d0e67d09897d204046511dca6c70f9c8b6 SOURCES/pcs-0.9.168.tar.gz +44842fc15ada73f8f228e4100a9f14b5dc356d5b SOURCES/pcs-0.9.169.tar.gz 276a92c6d679a71bd0daaf12cb7b3616f1a89b72 SOURCES/pyagentx-0.4.pcs.1.tar.gz -64a0cd32f46c0ff44ffda4055048fe6309903110 SOURCES/rack-1.6.11.gem +d7e31bb0e4edef5ecb5863bd168e5a1ee7394e38 SOURCES/rack-1.6.12.gem f80ea6672253a90fa031db0c1e2e1fe056582118 SOURCES/rack-protection-1.5.5.gem 908e2a877da8eb6745073c51709dc024c4457e44 SOURCES/rack-test-0.8.3.gem a90e5a60d99445404a3c29a66d953a5e9918976d SOURCES/rpam-ruby19-1.2.1.gem diff --git a/SOURCES/bz1458153-01-give-back-orig.-master-behav.-resource-create.patch b/SOURCES/bz1458153-01-give-back-orig.-master-behav.-resource-create.patch index 0d0b228..b4a983c 100644 --- a/SOURCES/bz1458153-01-give-back-orig.-master-behav.-resource-create.patch +++ b/SOURCES/bz1458153-01-give-back-orig.-master-behav.-resource-create.patch @@ -1,7 +1,7 @@ -From 5f7596de91aec9becf55030476a559a4ebd9c0f6 Mon Sep 17 00:00:00 2001 +From 8d2d2afc809c98b7fa05d478df2c0e4f5753571a Mon Sep 17 00:00:00 2001 From: Ivan Devat Date: Mon, 5 Jun 2017 17:13:41 +0200 -Subject: [PATCH 1/4] give back orig. --master behav. (resource create) +Subject: [PATCH 2/6] give back orig. --master behav. (resource create) --- pcs/cli/common/parse_args.py | 8 +- @@ -14,10 +14,10 @@ Subject: [PATCH 1/4] give back orig. --master behav. (resource create) 7 files changed, 228 insertions(+), 59 deletions(-) diff --git a/pcs/cli/common/parse_args.py b/pcs/cli/common/parse_args.py -index 6a3210ac..4aee169c 100644 +index 715e7643..e816492a 100644 --- a/pcs/cli/common/parse_args.py +++ b/pcs/cli/common/parse_args.py -@@ -301,7 +301,13 @@ def upgrade_args(arg_list): +@@ -307,7 +307,13 @@ def upgrade_args(arg_list): and args_without_options[:2] == ["resource", "create"] ): @@ -87,10 +87,10 @@ index efe38d0e..900094c9 100644 ], upgrade_args([ diff --git a/pcs/resource.py b/pcs/resource.py -index d3761327..f71ed578 100644 +index 33f76656..a8256fdc 100644 --- a/pcs/resource.py +++ b/pcs/resource.py -@@ -392,6 +392,25 @@ def resource_create(lib, argv, modifiers): +@@ -397,6 +397,25 @@ def resource_create(lib, argv, modifiers): ra_type = argv[1] parts = parse_create_args(argv[2:]) @@ -406,10 +406,10 @@ index ecb16384..57d95350 100644 , "Error: you can specify only one of clone, master, bundle or" diff --git a/pcs/test/test_constraints.py b/pcs/test/test_constraints.py -index 36bcb652..be751c36 100644 +index df8594a5..671f0122 100644 --- a/pcs/test/test_constraints.py +++ b/pcs/test/test_constraints.py -@@ -388,43 +388,43 @@ Ticket Constraints: +@@ -393,43 +393,43 @@ Ticket Constraints: def testColocationConstraints(self): # see also BundleColocation @@ -463,7 +463,7 @@ index 36bcb652..be751c36 100644 output, returnVal = pcs(temp_cib, line) assert returnVal == 0 and output == "" -@@ -1045,7 +1045,7 @@ Ticket Constraints: +@@ -1066,7 +1066,7 @@ Ticket Constraints: assert returnVal == 1 def testLocationBadRules(self): @@ -472,7 +472,7 @@ index 36bcb652..be751c36 100644 ac(o,"") assert r == 0 -@@ -1066,7 +1066,7 @@ Ticket Constraints: +@@ -1087,7 +1087,7 @@ Ticket Constraints: """) assert r == 0 @@ -481,7 +481,7 @@ index 36bcb652..be751c36 100644 ac(o,"") assert r == 0 -@@ -1105,7 +1105,7 @@ Ticket Constraints: +@@ -1126,7 +1126,7 @@ Ticket Constraints: ac(o,"") assert r == 0 @@ -490,7 +490,7 @@ index 36bcb652..be751c36 100644 ac(o, """\ Warning: changing a monitor operation interval from 10 to 11 to make the operation unique """) -@@ -1226,7 +1226,7 @@ Ticket Constraints: +@@ -1247,7 +1247,7 @@ Ticket Constraints: self.assertEqual(0, returnVal) output, returnVal = pcs( @@ -500,10 +500,10 @@ index 36bcb652..be751c36 100644 ac(output, """\ Warning: changing a monitor operation interval from 10 to 11 to make the operation unique diff --git a/pcs/test/test_resource.py b/pcs/test/test_resource.py -index 20f6af73..c294e288 100644 +index 2a110683..e49b59a1 100644 --- a/pcs/test/test_resource.py +++ b/pcs/test/test_resource.py -@@ -2897,7 +2897,7 @@ Ticket Constraints: +@@ -2898,7 +2898,7 @@ Ticket Constraints: output, returnVal = pcs( temp_cib, @@ -512,7 +512,7 @@ index 20f6af73..c294e288 100644 ) assert returnVal == 0 assert output == "", [output] -@@ -3010,7 +3010,7 @@ Warning: changing a monitor operation interval from 10 to 11 to make the operati +@@ -3011,7 +3011,7 @@ Warning: changing a monitor operation interval from 10 to 11 to make the operati ac(o,"") assert r == 0 @@ -521,7 +521,7 @@ index 20f6af73..c294e288 100644 ac(o,"") assert r == 0 -@@ -3236,7 +3236,7 @@ Warning: changing a monitor operation interval from 10 to 11 to make the operati +@@ -3237,7 +3237,7 @@ Warning: changing a monitor operation interval from 10 to 11 to make the operati output, returnVal = pcs( temp_cib, @@ -530,7 +530,7 @@ index 20f6af73..c294e288 100644 ) ac(output, "") self.assertEqual(0, returnVal) -@@ -3901,7 +3901,7 @@ Error: Cannot remove more than one resource from cloned group +@@ -3902,7 +3902,7 @@ Error: Cannot remove more than one resource from cloned group # However those test the pcs library. I'm leaving these tests here to # test the cli part for now. self.assert_pcs_success( @@ -539,7 +539,7 @@ index 20f6af73..c294e288 100644 "Warning: changing a monitor operation interval from 10 to 11 to make the operation unique\n" ) -@@ -5514,7 +5514,7 @@ class CloneMasterUpdate(unittest.TestCase, AssertPcsMixin): +@@ -5515,7 +5515,7 @@ class CloneMasterUpdate(unittest.TestCase, AssertPcsMixin): def test_no_op_allowed_in_master_update(self): self.assert_pcs_success( @@ -549,10 +549,10 @@ index 20f6af73..c294e288 100644 self.assert_pcs_success( "resource show dummy-master", diff --git a/pcs/utils.py b/pcs/utils.py -index e274cfe5..9c27d329 100644 +index 66f7ebf1..73721a2a 100644 --- a/pcs/utils.py +++ b/pcs/utils.py -@@ -2976,6 +2976,13 @@ def get_modifiers(): +@@ -2981,6 +2981,13 @@ def get_modifiers(): "wait": pcs_options.get("--wait", False), "watchdog": pcs_options.get("--watchdog", []), "no_watchdog_validation": "--no-watchdog-validation" in pcs_options, diff --git a/SOURCES/bz1459503-01-OSP-workarounds-not-compatible-wi.patch b/SOURCES/bz1459503-01-OSP-workarounds-not-compatible-wi.patch index f5d3746..7923723 100644 --- a/SOURCES/bz1459503-01-OSP-workarounds-not-compatible-wi.patch +++ b/SOURCES/bz1459503-01-OSP-workarounds-not-compatible-wi.patch @@ -1,7 +1,7 @@ -From 1a5824440819834aad193b0f7676e6d44285212f Mon Sep 17 00:00:00 2001 +From f7c6c3af0eed6ff2a305642a78f0421f502fd6a0 Mon Sep 17 00:00:00 2001 From: Ivan Devat Date: Wed, 7 Jun 2017 14:36:05 +0200 -Subject: [PATCH 2/4] squash bz1459503 OSP workarounds not compatible wi +Subject: [PATCH 3/6] squash bz1459503 OSP workarounds not compatible wi reuse existing pcmk authkey during setup @@ -14,7 +14,7 @@ show only warn if `resource create` creates remote 4 files changed, 31 insertions(+), 22 deletions(-) diff --git a/pcs/cluster.py b/pcs/cluster.py -index 7727cbef..0bacae16 100644 +index 561a3d20..a32fdc7e 100644 --- a/pcs/cluster.py +++ b/pcs/cluster.py @@ -525,13 +525,21 @@ def cluster_setup(argv): @@ -41,10 +41,10 @@ index 7727cbef..0bacae16 100644 if modifiers["encryption"] == "1": file_definitions.update( diff --git a/pcs/lib/commands/resource.py b/pcs/lib/commands/resource.py -index 0073964d..f34fef4b 100644 +index 1ad03a48..ad7a1a20 100644 --- a/pcs/lib/commands/resource.py +++ b/pcs/lib/commands/resource.py -@@ -76,7 +76,8 @@ def _validate_remote_connection( +@@ -79,7 +79,8 @@ def _validate_remote_connection( report_list.append( reports.get_problem_creator( report_codes.FORCE_NOT_SUITABLE_COMMAND, @@ -54,7 +54,7 @@ index 0073964d..f34fef4b 100644 )(reports.use_command_node_add_remote) ) -@@ -106,7 +107,8 @@ def _validate_guest_change( +@@ -109,7 +110,8 @@ def _validate_guest_change( report_list.append( reports.get_problem_creator( report_codes.FORCE_NOT_SUITABLE_COMMAND, @@ -98,10 +98,10 @@ index 57d95350..3cd49e74 100644 def test_warn_when_on_pacemaker_remote_guest_attempt(self): diff --git a/pcs/test/test_resource.py b/pcs/test/test_resource.py -index c294e288..4581942d 100644 +index e49b59a1..fed8465e 100644 --- a/pcs/test/test_resource.py +++ b/pcs/test/test_resource.py -@@ -5871,10 +5871,10 @@ class ResourceUpdateRemoteAndGuestChecks(unittest.TestCase, AssertPcsMixin): +@@ -5872,10 +5872,10 @@ class ResourceUpdateRemoteAndGuestChecks(unittest.TestCase, AssertPcsMixin): self.assert_pcs_success( "resource create R ocf:heartbeat:Dummy", ) @@ -115,7 +115,7 @@ index c294e288..4581942d 100644 ) def test_update_warn_on_pacemaker_guest_attempt(self): self.assert_pcs_success( -@@ -5893,10 +5893,10 @@ class ResourceUpdateRemoteAndGuestChecks(unittest.TestCase, AssertPcsMixin): +@@ -5894,10 +5894,10 @@ class ResourceUpdateRemoteAndGuestChecks(unittest.TestCase, AssertPcsMixin): "Warning: this command is not sufficient for creating a guest node," " use 'pcs cluster node add-guest'\n" ) @@ -129,7 +129,7 @@ index c294e288..4581942d 100644 ) def test_update_warn_on_pacemaker_guest_attempt_remove(self): -@@ -5917,10 +5917,10 @@ class ResourceUpdateRemoteAndGuestChecks(unittest.TestCase, AssertPcsMixin): +@@ -5918,10 +5918,10 @@ class ResourceUpdateRemoteAndGuestChecks(unittest.TestCase, AssertPcsMixin): self.assert_pcs_success( "resource create R ocf:heartbeat:Dummy", ) @@ -143,7 +143,7 @@ index c294e288..4581942d 100644 ) def test_meta_warn_on_pacemaker_guest_attempt(self): -@@ -5941,10 +5941,10 @@ class ResourceUpdateRemoteAndGuestChecks(unittest.TestCase, AssertPcsMixin): +@@ -5942,10 +5942,10 @@ class ResourceUpdateRemoteAndGuestChecks(unittest.TestCase, AssertPcsMixin): "Warning: this command is not sufficient for creating a guest node," " use 'pcs cluster node add-guest'\n" ) diff --git a/SOURCES/bz1820813-01-use-subprocess32-instead-of-subprocess.patch b/SOURCES/bz1820813-01-use-subprocess32-instead-of-subprocess.patch new file mode 100644 index 0000000..77e4a3c --- /dev/null +++ b/SOURCES/bz1820813-01-use-subprocess32-instead-of-subprocess.patch @@ -0,0 +1,68 @@ +From f625b0fb215013ff7bc50e78e82e34118c0e55d3 Mon Sep 17 00:00:00 2001 +From: Ivan Devat +Date: Mon, 20 Apr 2020 12:22:05 +0200 +Subject: [PATCH] use subprocess32 instead of subprocess + +See rhbz#1820813 for details. +--- + pcs/cluster.py | 2 +- + pcs/lib/external.py | 2 +- + pcs/test/test_lib_external.py | 2 +- + pcs/utils.py | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/pcs/cluster.py b/pcs/cluster.py +index e8fa0ce4..97414f83 100644 +--- a/pcs/cluster.py ++++ b/pcs/cluster.py +@@ -6,7 +6,7 @@ from __future__ import ( + + import math + import os +-import subprocess ++import subprocess32 as subprocess + import re + import sys + import socket +diff --git a/pcs/lib/external.py b/pcs/lib/external.py +index 852929b2..c399256b 100644 +--- a/pcs/lib/external.py ++++ b/pcs/lib/external.py +@@ -17,7 +17,7 @@ except ImportError: + from shlex import quote as shell_quote + import re + import signal +-import subprocess ++import subprocess32 as subprocess + import sys + try: + # python2 +diff --git a/pcs/test/test_lib_external.py b/pcs/test/test_lib_external.py +index 827cb801..58655cc8 100644 +--- a/pcs/test/test_lib_external.py ++++ b/pcs/test/test_lib_external.py +@@ -35,7 +35,7 @@ _service = settings.service_binary + _systemctl = settings.systemctl_binary + + +-@mock.patch("subprocess.Popen", autospec=True) ++@mock.patch("subprocess32.Popen", autospec=True) + class CommandRunnerTest(TestCase): + def setUp(self): + self.mock_logger = mock.MagicMock(logging.Logger) +diff --git a/pcs/utils.py b/pcs/utils.py +index 73721a2a..eb756581 100644 +--- a/pcs/utils.py ++++ b/pcs/utils.py +@@ -6,7 +6,7 @@ from __future__ import ( + + import os + import sys +-import subprocess ++import subprocess32 as subprocess + import xml.dom.minidom + from xml.dom.minidom import parseString, parse + import xml.etree.ElementTree as ET +-- +2.21.0 + diff --git a/SOURCES/bz1824206-01-Keep-autogenerated-IDs-of-set-constraints-short.patch b/SOURCES/bz1824206-01-Keep-autogenerated-IDs-of-set-constraints-short.patch new file mode 100644 index 0000000..ccbf2ce --- /dev/null +++ b/SOURCES/bz1824206-01-Keep-autogenerated-IDs-of-set-constraints-short.patch @@ -0,0 +1,815 @@ +From e2420c1912b126e2be1818cf6fa52af595ad553b Mon Sep 17 00:00:00 2001 +From: Tomas Jelinek +Date: Fri, 17 Apr 2020 13:27:46 +0200 +Subject: [PATCH 1/6] Keep autogenerated IDs of set constraints short + +--- + pcs/lib/cib/constraint/colocation.py | 2 +- + pcs/lib/cib/constraint/constraint.py | 18 +- + pcs/lib/cib/constraint/order.py | 2 +- + pcs/lib/cib/constraint/resource_set.py | 5 +- + pcs/lib/cib/constraint/ticket.py | 2 +- + pcs/lib/cib/test/test_constraint.py | 14 +- + .../cib/test/test_constraint_colocation.py | 2 +- + pcs/lib/cib/test/test_constraint_order.py | 2 +- + pcs/lib/cib/test/test_constraint_ticket.py | 2 +- + pcs/lib/cib/test/test_resource_set.py | 12 +- + .../commands/test/test_constraint_common.py | 20 +- + pcs/test/test_constraints.py | 202 +++++++++--------- + 12 files changed, 141 insertions(+), 142 deletions(-) + +diff --git a/pcs/lib/cib/constraint/colocation.py b/pcs/lib/cib/constraint/colocation.py +index 8006a36f..d19522ab 100644 +--- a/pcs/lib/cib/constraint/colocation.py ++++ b/pcs/lib/cib/constraint/colocation.py +@@ -20,7 +20,7 @@ def prepare_options_with_set(cib, options, resource_set_list): + options = constraint.prepare_options( + tuple(SCORE_NAMES), + options, +- partial(constraint.create_id, cib, TAG_NAME, resource_set_list), ++ partial(constraint.create_id, cib, "colocation", resource_set_list), + partial(check_new_id_applicable, cib, DESCRIPTION), + ) + +diff --git a/pcs/lib/cib/constraint/constraint.py b/pcs/lib/cib/constraint/constraint.py +index 02af9d02..936918c2 100644 +--- a/pcs/lib/cib/constraint/constraint.py ++++ b/pcs/lib/cib/constraint/constraint.py +@@ -98,11 +98,19 @@ def export_plain(element): + return {"options": export_attributes(element)} + + def create_id(cib, type_prefix, resource_set_list): +- id = "pcs_" +type_prefix +"".join([ +- "_set_"+"_".join(id_set) +- for id_set in resource_set.extract_id_set_list(resource_set_list) +- ]) +- return find_unique_id(cib, id) ++ # Create a semi-random id. We need it to be predictable (for testing), short ++ # and somehow different than other ids so that we don't spend much time in ++ # find_unique_id. ++ # Avoid using actual resource names. It makes the id very long (consider 10 ++ # or more resources in a set constraint). Also, if a resource is deleted ++ # and therefore removed from the constraint, the id no longer matches the ++ # constraint. ++ resource_ids = [] ++ for _set in resource_set_list: ++ resource_ids.extend(_set["ids"]) ++ id_part = "".join([_id[0] + _id[-1] for _id in resource_ids][:3]) ++ return find_unique_id(cib, "{0}_set_{1}".format(type_prefix, id_part) ++ ) + + def have_duplicate_resource_sets(element, other_element): + get_id_set_list = lambda element: [ +diff --git a/pcs/lib/cib/constraint/order.py b/pcs/lib/cib/constraint/order.py +index 4c520ae7..6085f0db 100644 +--- a/pcs/lib/cib/constraint/order.py ++++ b/pcs/lib/cib/constraint/order.py +@@ -24,7 +24,7 @@ def prepare_options_with_set(cib, options, resource_set_list): + tuple(ATTRIB.keys()), + options, + create_id=partial( +- constraint.create_id, cib, TAG_NAME, resource_set_list ++ constraint.create_id, cib, "order", resource_set_list + ), + validate_id=partial(check_new_id_applicable, cib, DESCRIPTION), + ) +diff --git a/pcs/lib/cib/constraint/resource_set.py b/pcs/lib/cib/constraint/resource_set.py +index 6ec18205..e9833ff7 100644 +--- a/pcs/lib/cib/constraint/resource_set.py ++++ b/pcs/lib/cib/constraint/resource_set.py +@@ -39,9 +39,6 @@ def validate_options(options): + reports.invalid_option_value(name, value, ATTRIB[name]) + ) + +-def extract_id_set_list(resource_set_list): +- return [resource_set["ids"] for resource_set in resource_set_list] +- + def create(parent, resource_set): + """ + parent - lxml element for append new resource_set +@@ -50,7 +47,7 @@ def create(parent, resource_set): + element.attrib.update(resource_set["options"]) + element.attrib["id"] = find_unique_id( + parent.getroottree(), +- "pcs_rsc_set_{0}".format("_".join(resource_set["ids"])) ++ "{0}_set".format(parent.attrib.get("id", "constraint_set")) + ) + + for id in resource_set["ids"]: +diff --git a/pcs/lib/cib/constraint/ticket.py b/pcs/lib/cib/constraint/ticket.py +index a2dbd5fe..cc1413ea 100644 +--- a/pcs/lib/cib/constraint/ticket.py ++++ b/pcs/lib/cib/constraint/ticket.py +@@ -48,7 +48,7 @@ def prepare_options_with_set(cib, options, resource_set_list): + tuple(ATTRIB.keys()), + options, + create_id=partial( +- constraint.create_id, cib, TAG_NAME, resource_set_list ++ constraint.create_id, cib, "ticket", resource_set_list + ), + validate_id=partial(tools.check_new_id_applicable, cib, DESCRIPTION), + ) +diff --git a/pcs/lib/cib/test/test_constraint.py b/pcs/lib/cib/test/test_constraint.py +index aa0f21cd..2712a81f 100644 +--- a/pcs/lib/cib/test/test_constraint.py ++++ b/pcs/lib/cib/test/test_constraint.py +@@ -263,19 +263,15 @@ class PrepareOptionsTest(TestCase): + mock_validate_id.assert_called_once_with("invalid") + + class CreateIdTest(TestCase): +- @mock.patch( +- "pcs.lib.cib.constraint.constraint.resource_set.extract_id_set_list" +- ) + @mock.patch("pcs.lib.cib.constraint.constraint.find_unique_id") +- def test_create_id_from_resource_set_list(self, mock_find_id, mock_extract): +- mock_extract.return_value = [["A", "B"], ["C"]] ++ def test_create_id_from_resource_set_list(self, mock_find_id): ++ resource_set_list = [{"ids": ["A", "B"]}, {"ids": ["C"]}] + mock_find_id.return_value = "some_id" + self.assertEqual( + "some_id", +- constraint.create_id("cib", "PREFIX", "resource_set_list") ++ constraint.create_id("cib", "PREFIX", resource_set_list) + ) +- mock_extract.assert_called_once_with("resource_set_list") +- mock_find_id.assert_called_once_with("cib", "pcs_PREFIX_set_A_B_set_C") ++ mock_find_id.assert_called_once_with("cib", "PREFIX_set_AABBCC") + + def fixture_constraint_section(return_value): + constraint_section = mock.MagicMock() +@@ -359,7 +355,7 @@ class CreateWithSetTest(TestCase): + assert_xml_equal(etree.tostring(constraint_section).decode(), """ + + +- ++ + + + +diff --git a/pcs/lib/cib/test/test_constraint_colocation.py b/pcs/lib/cib/test/test_constraint_colocation.py +index 25923bb3..75f7924c 100644 +--- a/pcs/lib/cib/test/test_constraint_colocation.py ++++ b/pcs/lib/cib/test/test_constraint_colocation.py +@@ -36,7 +36,7 @@ class PrepareOptionsWithSetTest(TestCase): + self.assertEqual(expected_options, self.prepare(options)) + mock_create_id.assert_called_once_with( + self.cib, +- colocation.TAG_NAME, ++ "colocation", + self.resource_set_list + ) + +diff --git a/pcs/lib/cib/test/test_constraint_order.py b/pcs/lib/cib/test/test_constraint_order.py +index c43fa2c4..4f5719d3 100644 +--- a/pcs/lib/cib/test/test_constraint_order.py ++++ b/pcs/lib/cib/test/test_constraint_order.py +@@ -36,7 +36,7 @@ class PrepareOptionsWithSetTest(TestCase): + self.assertEqual(expected_options, self.prepare(options)) + mock_create_id.assert_called_once_with( + self.cib, +- order.TAG_NAME, ++ "order", + self.resource_set_list + ) + +diff --git a/pcs/lib/cib/test/test_constraint_ticket.py b/pcs/lib/cib/test/test_constraint_ticket.py +index ff91f255..111c88e8 100644 +--- a/pcs/lib/cib/test/test_constraint_ticket.py ++++ b/pcs/lib/cib/test/test_constraint_ticket.py +@@ -183,7 +183,7 @@ class PrepareOptionsWithSetTest(TestCase): + self.assertEqual(expected_options, self.prepare(options)) + mock_create_id.assert_called_once_with( + self.cib, +- ticket.TAG_NAME, ++ "ticket", + self.resource_set_list + ) + +diff --git a/pcs/lib/cib/test/test_resource_set.py b/pcs/lib/cib/test/test_resource_set.py +index 5e0d75c2..fda2723e 100644 +--- a/pcs/lib/cib/test/test_resource_set.py ++++ b/pcs/lib/cib/test/test_resource_set.py +@@ -60,16 +60,6 @@ class PrepareSetTest(TestCase): + }), + ) + +-class ExtractIdListTest(TestCase): +- def test_return_id_list_from_resource_set_list(self): +- self.assertEqual( +- [["A", "B"], ["C", "D"]], +- resource_set.extract_id_set_list([ +- {"ids": ["A", "B"], "options": {}}, +- {"ids": ["C", "D"], "options": {}}, +- ]) +- ) +- + class CreateTest(TestCase): + def test_resource_set_to_parent(self): + constraint_element = etree.Element("constraint") +@@ -79,7 +69,7 @@ class CreateTest(TestCase): + ) + assert_xml_equal(etree.tostring(constraint_element).decode(), """ + +- ++ + + + +diff --git a/pcs/lib/commands/test/test_constraint_common.py b/pcs/lib/commands/test/test_constraint_common.py +index bf359380..ddbcbe8e 100644 +--- a/pcs/lib/commands/test/test_constraint_common.py ++++ b/pcs/lib/commands/test/test_constraint_common.py +@@ -62,11 +62,11 @@ class CreateWithSetTest(TestCase): + self.env.push_cib.assert_called_once_with() + self.independent_cib.find(".//constraints").append(etree.XML(""" + +- ++ + + + +- ++ + + + +@@ -90,11 +90,11 @@ class CreateWithSetTest(TestCase): + 'resource_sets': [ + { + 'ids': ['A', 'B'], +- 'options':{'role':'Master', 'id':'pcs_rsc_set_A_B'} ++ 'options':{'role':'Master', 'id':'some_id_set'} + }, + { + 'ids': ['E', 'F'], +- 'options':{'action':'start', 'id':'pcs_rsc_set_E_F'} ++ 'options':{'action':'start', 'id':'some_id_set-1'} + } + ], + }] +@@ -115,11 +115,11 @@ class CreateWithSetTest(TestCase): + constraint_section = self.independent_cib.find(".//constraints") + constraint_section.append(etree.XML(""" + +- ++ + + + +- ++ + + + +@@ -127,11 +127,11 @@ class CreateWithSetTest(TestCase): + """)) + constraint_section.append(etree.XML(""" + +- ++ + + + +- ++ + + + +@@ -177,7 +177,7 @@ class ShowTest(TestCase): + { + 'resource_sets': [{ + 'ids': ['A', 'B'], +- 'options': {'role': 'Master', 'id': 'pcs_rsc_set_A_B'}, ++ 'options': {'role': 'Master', 'id': 'some_id_set'}, + }], + 'options': {'symmetrical': 'true', 'id': 'some_id'} + }, +@@ -185,7 +185,7 @@ class ShowTest(TestCase): + 'options': {'symmetrical': 'true', 'id': 'some_id'}, + 'resource_sets': [{ + 'ids': ['E', 'F'], +- 'options': {'action': 'start', 'id': 'pcs_rsc_set_E_F'} ++ 'options': {'action': 'start', 'id': 'some_id_set-1'} + }] + } + ] +diff --git a/pcs/test/test_constraints.py b/pcs/test/test_constraints.py +index 3feaa053..df8594a5 100644 +--- a/pcs/test/test_constraints.py ++++ b/pcs/test/test_constraints.py +@@ -581,13 +581,13 @@ Ticket Constraints: + ac(o, """\ + Colocation Constraints: + Resource Sets: +- 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) +- set D5 D6 (id:pcs_rsc_set_D5_D6) setoptions score=INFINITY (id:pcs_rsc_colocation_set_D5_D6) +- 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) ++ 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) ++ set D5 D6 (id:colocation_set_D5D6_set) setoptions score=INFINITY (id:colocation_set_D5D6) ++ 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) + """) + assert r == 0 + +- o, r = pcs(temp_cib, "constraint remove pcs_rsc_colocation_set_D5_D6") ++ o, r = pcs(temp_cib, "constraint remove colocation_set_D5D6") + ac(o,"") + assert r == 0 + +@@ -595,16 +595,16 @@ Colocation Constraints: + ac(o, """\ + Colocation Constraints: + Resource Sets: +- 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) +- 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) ++ 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) ++ 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) + """) + assert r == 0 + + o, r = pcs(temp_cib, "resource delete D5") + ac(o, outdent( + """\ +- Removing D5 from set pcs_rsc_set_D5_D6_D7 +- Removing D5 from set pcs_rsc_set_D5_D6-1 ++ Removing D5 from set colocation_set_D5D6D7_set ++ Removing D5 from set colocation_set_D5D6D7-1_set + Deleting Resource - D5 + """ + )) +@@ -613,20 +613,32 @@ Colocation Constraints: + o, r = pcs(temp_cib, "resource delete D6") + ac(o, outdent( + """\ +- Removing D6 from set pcs_rsc_set_D5_D6_D7 +- Removing D6 from set pcs_rsc_set_D5_D6-1 +- Removing set pcs_rsc_set_D5_D6-1 ++ Removing D6 from set colocation_set_D5D6D7_set ++ Removing D6 from set colocation_set_D5D6D7-1_set ++ Removing set colocation_set_D5D6D7-1_set + Deleting Resource - D6 + """ + )) + assert r == 0 + + o, r = pcs(temp_cib, "constraint ref D7") +- 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") ++ ac(o, outdent( ++ """\ ++ Resource: D7 ++ colocation_set_D5D6D7 ++ colocation_set_D5D6D7-1 ++ """ ++ )) + assert r == 0 + + o, r = pcs(temp_cib, "constraint ref D8") +- 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") ++ ac(o, outdent( ++ """\ ++ Resource: D8 ++ colocation_set_D5D6D7 ++ colocation_set_D5D6D7-1 ++ """ ++ )) + assert r == 0 + + output, retValue = pcs(temp_cib, "constraint colocation set D1 D2 sequential=foo") +@@ -852,12 +864,12 @@ Colocation Constraints: + ac(o,"""\ + Ordering Constraints: + Resource Sets: +- 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) +- set D5 D6 (id:pcs_rsc_set_D5_D6) (id:pcs_rsc_order_set_D5_D6) +- 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) ++ 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) ++ set D5 D6 (id:order_set_D5D6_set) (id:order_set_D5D6) ++ 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) + """) + +- o, r = pcs(temp_cib, "constraint remove pcs_rsc_order_set_D5_D6") ++ o, r = pcs(temp_cib, "constraint remove order_set_D5D6") + assert r == 0 + ac(o,"") + +@@ -866,15 +878,15 @@ Ordering Constraints: + ac(o,"""\ + Ordering Constraints: + Resource Sets: +- 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) +- 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) ++ 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) ++ 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) + """) + + o, r = pcs(temp_cib, "resource delete D5") + ac(o, outdent( + """\ +- Removing D5 from set pcs_rsc_set_D5_D6_D7 +- Removing D5 from set pcs_rsc_set_D5_D6-1 ++ Removing D5 from set order_set_D5D6D7_set ++ Removing D5 from set order_set_D5D6D7-1_set + Deleting Resource - D5 + """ + )) +@@ -883,9 +895,9 @@ Ordering Constraints: + o, r = pcs(temp_cib, "resource delete D6") + ac(o, outdent( + """\ +- Removing D6 from set pcs_rsc_set_D5_D6_D7 +- Removing D6 from set pcs_rsc_set_D5_D6-1 +- Removing set pcs_rsc_set_D5_D6-1 ++ Removing D6 from set order_set_D5D6D7_set ++ Removing D6 from set order_set_D5D6D7-1_set ++ Removing set order_set_D5D6D7-1_set + Deleting Resource - D6 + """ + )) +@@ -946,9 +958,9 @@ Error: invalid option 'foo', allowed options are: id, kind, symmetrical + Location Constraints: + Ordering Constraints: + Resource Sets: +- 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) +- 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) +- set D1 D2 (id:pcs_rsc_set_D1_D2) setoptions kind=Mandatory symmetrical=false (id:pcs_rsc_order_set_D1_D2) ++ 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) ++ 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) ++ set D1 D2 (id:order_set_D1D2_set) setoptions kind=Mandatory symmetrical=false (id:order_set_D1D2) + Colocation Constraints: + Ticket Constraints: + """) +@@ -1220,11 +1232,11 @@ Location Constraints: + Ordering Constraints: + start stateful1 then start dummy1 (kind:Mandatory) (id:order-stateful1-dummy1-mandatory) + Resource Sets: +- set stateful1 dummy1 (id:pcs_rsc_set_stateful1_dummy1) (id:pcs_rsc_order_set_stateful1_dummy1) ++ set stateful1 dummy1 (id:order_set_s1d1_set) (id:order_set_s1d1) + Colocation Constraints: + stateful1 with dummy1 (score:INFINITY) (id:colocation-stateful1-dummy1-INFINITY) + Resource Sets: +- set stateful1 dummy1 (id:pcs_rsc_set_stateful1_dummy1-1) setoptions score=INFINITY (id:pcs_rsc_colocation_set_stateful1_dummy1) ++ set stateful1 dummy1 (id:colocation_set_s1d1_set) setoptions score=INFINITY (id:colocation_set_s1d1) + Ticket Constraints: + """) + assert r == 0 +@@ -1347,14 +1359,14 @@ Ordering Constraints: + start stateful1-master then start dummy1 (kind:Mandatory) (id:order-stateful1-master-dummy1-mandatory) + start dummy1 then start statefulG-master (kind:Mandatory) (id:order-dummy1-statefulG-master-mandatory) + Resource Sets: +- set stateful1-master dummy1 (id:pcs_rsc_set_stateful1-master_dummy1) (id:pcs_rsc_order_set_stateful1_dummy1) +- set dummy1 statefulG-master (id:pcs_rsc_set_dummy1_statefulG-master) (id:pcs_rsc_order_set_dummy1_statefulG) ++ set stateful1-master dummy1 (id:order_set_s1d1_set) (id:order_set_s1d1) ++ set dummy1 statefulG-master (id:order_set_d1sG_set) (id:order_set_d1sG) + Colocation Constraints: + stateful1-master with dummy1 (score:INFINITY) (id:colocation-stateful1-master-dummy1-INFINITY) + dummy1 with statefulG-master (score:INFINITY) (id:colocation-dummy1-statefulG-master-INFINITY) + Resource Sets: +- set dummy1 stateful1-master (id:pcs_rsc_set_dummy1_stateful1-master) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_stateful1) +- set statefulG-master dummy1 (id:pcs_rsc_set_statefulG-master_dummy1) setoptions score=INFINITY (id:pcs_rsc_colocation_set_statefulG_dummy1) ++ set dummy1 stateful1-master (id:colocation_set_d1s1_set) setoptions score=INFINITY (id:colocation_set_d1s1) ++ set statefulG-master dummy1 (id:colocation_set_sGd1_set) setoptions score=INFINITY (id:colocation_set_sGd1) + Ticket Constraints: + """) + self.assertEqual(0, returnVal) +@@ -1398,7 +1410,7 @@ Adding stateful1-master dummy1 (kind: Mandatory) (Options: first-action=start th + ) + ac(output, """\ + Error: duplicate constraint already exists, use --force to override +- set stateful1-master dummy1 (id:pcs_rsc_set_stateful1-master_dummy1) (id:pcs_rsc_order_set_stateful1_dummy1) ++ set stateful1-master dummy1 (id:order_set_s1d1_set) (id:order_set_s1d1) + """) + self.assertEqual(1, returnVal) + +@@ -1407,7 +1419,7 @@ Error: duplicate constraint already exists, use --force to override + ) + ac(output, console_report( + "Warning: duplicate constraint already exists", +- " set stateful1-master dummy1 (id:pcs_rsc_set_stateful1-master_dummy1) (id:pcs_rsc_order_set_stateful1_dummy1)", ++ " set stateful1-master dummy1 (id:order_set_s1d1_set) (id:order_set_s1d1)", + )) + self.assertEqual(0, returnVal) + +@@ -1431,7 +1443,7 @@ Error: duplicate constraint already exists, use --force to override + ) + ac(output, """\ + Error: duplicate constraint already exists, use --force to override +- set dummy1 stateful1-master (id:pcs_rsc_set_dummy1_stateful1-master) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_stateful1) ++ set dummy1 stateful1-master (id:colocation_set_d1s1_set) setoptions score=INFINITY (id:colocation_set_d1s1) + """) + self.assertEqual(1, returnVal) + +@@ -1440,7 +1452,7 @@ Error: duplicate constraint already exists, use --force to override + ) + ac(output, console_report( + "Warning: duplicate constraint already exists", +- " set dummy1 stateful1-master (id:pcs_rsc_set_dummy1_stateful1-master) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_stateful1)", ++ " set dummy1 stateful1-master (id:colocation_set_d1s1_set) setoptions score=INFINITY (id:colocation_set_d1s1)", + )) + self.assertEqual(0, returnVal) + +@@ -1465,17 +1477,17 @@ Ordering Constraints: + start dummy1 then start statefulG-master (kind:Mandatory) (id:order-dummy1-statefulG-master-mandatory) + start stateful1-master then start dummy1 (kind:Mandatory) (id:order-stateful1-master-dummy1-mandatory-1) + Resource Sets: +- set stateful1-master dummy1 (id:pcs_rsc_set_stateful1-master_dummy1) (id:pcs_rsc_order_set_stateful1_dummy1) +- set dummy1 statefulG-master (id:pcs_rsc_set_dummy1_statefulG-master) (id:pcs_rsc_order_set_dummy1_statefulG) +- set stateful1-master dummy1 (id:pcs_rsc_set_stateful1-master_dummy1-1) (id:pcs_rsc_order_set_stateful1_dummy1-1) ++ set stateful1-master dummy1 (id:order_set_s1d1_set) (id:order_set_s1d1) ++ set dummy1 statefulG-master (id:order_set_d1sG_set) (id:order_set_d1sG) ++ set stateful1-master dummy1 (id:order_set_s1d1-1_set) (id:order_set_s1d1-1) + Colocation Constraints: + stateful1-master with dummy1 (score:INFINITY) (id:colocation-stateful1-master-dummy1-INFINITY) + dummy1 with statefulG-master (score:INFINITY) (id:colocation-dummy1-statefulG-master-INFINITY) + stateful1-master with dummy1 (score:INFINITY) (id:colocation-stateful1-master-dummy1-INFINITY-1) + Resource Sets: +- set dummy1 stateful1-master (id:pcs_rsc_set_dummy1_stateful1-master) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_stateful1) +- set statefulG-master dummy1 (id:pcs_rsc_set_statefulG-master_dummy1) setoptions score=INFINITY (id:pcs_rsc_colocation_set_statefulG_dummy1) +- set dummy1 stateful1-master (id:pcs_rsc_set_dummy1_stateful1-master-1) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_stateful1-1) ++ set dummy1 stateful1-master (id:colocation_set_d1s1_set) setoptions score=INFINITY (id:colocation_set_d1s1) ++ set statefulG-master dummy1 (id:colocation_set_sGd1_set) setoptions score=INFINITY (id:colocation_set_sGd1) ++ set dummy1 stateful1-master (id:colocation_set_d1s1-1_set) setoptions score=INFINITY (id:colocation_set_d1s1-1) + Ticket Constraints: + """) + self.assertEqual(0, returnVal) +@@ -1587,11 +1599,11 @@ Location Constraints: + Ordering Constraints: + start dummy then start dummy1 (kind:Mandatory) (id:order-dummy-dummy1-mandatory) + Resource Sets: +- set dummy1 dummy (id:pcs_rsc_set_dummy1_dummy) (id:pcs_rsc_order_set_dummy1_dummy) ++ set dummy1 dummy (id:order_set_d1dy_set) (id:order_set_d1dy) + Colocation Constraints: + dummy with dummy1 (score:INFINITY) (id:colocation-dummy-dummy1-INFINITY) + Resource Sets: +- set dummy1 dummy (id:pcs_rsc_set_dummy1_dummy-1) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_dummy) ++ set dummy1 dummy (id:colocation_set_d1dy_set) setoptions score=INFINITY (id:colocation_set_d1dy) + Ticket Constraints: + """) + assert r == 0 +@@ -1710,14 +1722,14 @@ Ordering Constraints: + start dummy-clone then start dummy1 (kind:Mandatory) (id:order-dummy-clone-dummy1-mandatory) + start dummy1 then start dummyG-clone (kind:Mandatory) (id:order-dummy1-dummyG-clone-mandatory) + Resource Sets: +- set dummy1 dummy-clone (id:pcs_rsc_set_dummy1_dummy-clone) (id:pcs_rsc_order_set_dummy1_dummy) +- set dummyG-clone dummy1 (id:pcs_rsc_set_dummyG-clone_dummy1) (id:pcs_rsc_order_set_dummyG_dummy1) ++ set dummy1 dummy-clone (id:order_set_d1dy_set) (id:order_set_d1dy) ++ set dummyG-clone dummy1 (id:order_set_dGd1_set) (id:order_set_dGd1) + Colocation Constraints: + dummy-clone with dummy1 (score:INFINITY) (id:colocation-dummy-clone-dummy1-INFINITY) + dummy1 with dummyG-clone (score:INFINITY) (id:colocation-dummy1-dummyG-clone-INFINITY) + Resource Sets: +- set dummy1 dummy-clone (id:pcs_rsc_set_dummy1_dummy-clone-1) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_dummy) +- set dummy1 dummyG-clone (id:pcs_rsc_set_dummy1_dummyG-clone) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_dummyG) ++ set dummy1 dummy-clone (id:colocation_set_d1dy_set) setoptions score=INFINITY (id:colocation_set_d1dy) ++ set dummy1 dummyG-clone (id:colocation_set_d1dG_set) setoptions score=INFINITY (id:colocation_set_d1dG) + Ticket Constraints: + """) + self.assertEqual(0, returnVal) +@@ -1761,7 +1773,7 @@ Adding dummy-clone dummy1 (kind: Mandatory) (Options: first-action=start then-ac + ) + ac(output, """\ + Error: duplicate constraint already exists, use --force to override +- set dummy1 dummy-clone (id:pcs_rsc_set_dummy1_dummy-clone) (id:pcs_rsc_order_set_dummy1_dummy) ++ set dummy1 dummy-clone (id:order_set_d1dy_set) (id:order_set_d1dy) + """) + self.assertEqual(1, returnVal) + +@@ -1770,7 +1782,7 @@ Error: duplicate constraint already exists, use --force to override + ) + ac(output, console_report( + "Warning: duplicate constraint already exists", +- " set dummy1 dummy-clone (id:pcs_rsc_set_dummy1_dummy-clone) (id:pcs_rsc_order_set_dummy1_dummy)", ++ " set dummy1 dummy-clone (id:order_set_d1dy_set) (id:order_set_d1dy)", + )) + self.assertEqual(0, returnVal) + +@@ -1794,7 +1806,7 @@ Error: duplicate constraint already exists, use --force to override + ) + ac(output, """\ + Error: duplicate constraint already exists, use --force to override +- set dummy1 dummy-clone (id:pcs_rsc_set_dummy1_dummy-clone-1) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_dummy) ++ set dummy1 dummy-clone (id:colocation_set_d1dy_set) setoptions score=INFINITY (id:colocation_set_d1dy) + """) + self.assertEqual(1, returnVal) + +@@ -1803,7 +1815,7 @@ Error: duplicate constraint already exists, use --force to override + ) + ac(output, console_report( + "Warning: duplicate constraint already exists", +- " set dummy1 dummy-clone (id:pcs_rsc_set_dummy1_dummy-clone-1) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_dummy)", ++ " set dummy1 dummy-clone (id:colocation_set_d1dy_set) setoptions score=INFINITY (id:colocation_set_d1dy)", + )) + self.assertEqual(0, returnVal) + +@@ -1828,17 +1840,17 @@ Ordering Constraints: + start dummy1 then start dummyG-clone (kind:Mandatory) (id:order-dummy1-dummyG-clone-mandatory) + start dummy-clone then start dummy1 (kind:Mandatory) (id:order-dummy-clone-dummy1-mandatory-1) + Resource Sets: +- set dummy1 dummy-clone (id:pcs_rsc_set_dummy1_dummy-clone) (id:pcs_rsc_order_set_dummy1_dummy) +- set dummyG-clone dummy1 (id:pcs_rsc_set_dummyG-clone_dummy1) (id:pcs_rsc_order_set_dummyG_dummy1) +- set dummy1 dummy-clone (id:pcs_rsc_set_dummy1_dummy-clone-2) (id:pcs_rsc_order_set_dummy1_dummy-1) ++ set dummy1 dummy-clone (id:order_set_d1dy_set) (id:order_set_d1dy) ++ set dummyG-clone dummy1 (id:order_set_dGd1_set) (id:order_set_dGd1) ++ set dummy1 dummy-clone (id:order_set_d1dy-1_set) (id:order_set_d1dy-1) + Colocation Constraints: + dummy-clone with dummy1 (score:INFINITY) (id:colocation-dummy-clone-dummy1-INFINITY) + dummy1 with dummyG-clone (score:INFINITY) (id:colocation-dummy1-dummyG-clone-INFINITY) + dummy-clone with dummy1 (score:INFINITY) (id:colocation-dummy-clone-dummy1-INFINITY-1) + Resource Sets: +- set dummy1 dummy-clone (id:pcs_rsc_set_dummy1_dummy-clone-1) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_dummy) +- set dummy1 dummyG-clone (id:pcs_rsc_set_dummy1_dummyG-clone) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_dummyG) +- set dummy1 dummy-clone (id:pcs_rsc_set_dummy1_dummy-clone-3) setoptions score=INFINITY (id:pcs_rsc_colocation_set_dummy1_dummy-1) ++ set dummy1 dummy-clone (id:colocation_set_d1dy_set) setoptions score=INFINITY (id:colocation_set_d1dy) ++ set dummy1 dummyG-clone (id:colocation_set_d1dG_set) setoptions score=INFINITY (id:colocation_set_d1dG) ++ set dummy1 dummy-clone (id:colocation_set_d1dy-1_set) setoptions score=INFINITY (id:colocation_set_d1dy-1) + Ticket Constraints: + """) + self.assertEqual(0, returnVal) +@@ -2420,14 +2432,14 @@ Ticket Constraints: + output, returnVal = pcs("constraint order set D1 D2") + ac(output, """\ + Error: duplicate constraint already exists, use --force to override +- set D1 D2 (id:pcs_rsc_set_D1_D2) (id:pcs_rsc_order_set_D1_D2) ++ set D1 D2 (id:order_set_D1D2_set) (id:order_set_D1D2) + """) + self.assertEqual(1, returnVal) + + output, returnVal = pcs("constraint order set D1 D2 --force") + ac(output, console_report( + "Warning: duplicate constraint already exists", +- " set D1 D2 (id:pcs_rsc_set_D1_D2) (id:pcs_rsc_order_set_D1_D2)", ++ " set D1 D2 (id:order_set_D1D2_set) (id:order_set_D1D2)", + )) + self.assertEqual(0, returnVal) + +@@ -2438,14 +2450,14 @@ Error: duplicate constraint already exists, use --force to override + output, returnVal = pcs("constraint order set D1 D2 set D5 D6") + ac(output, """\ + Error: duplicate constraint already exists, use --force to override +- 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) ++ set D1 D2 (id:order_set_D1D2D5_set) set D5 D6 (id:order_set_D1D2D5_set-1) (id:order_set_D1D2D5) + """) + self.assertEqual(1, returnVal) + + output, returnVal = pcs("constraint order set D1 D2 set D5 D6 --force") + ac(output, console_report( + "Warning: duplicate constraint already exists", +- " 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)", ++ " set D1 D2 (id:order_set_D1D2D5_set) set D5 D6 (id:order_set_D1D2D5_set-1) (id:order_set_D1D2D5)", + )) + self.assertEqual(0, returnVal) + +@@ -2457,14 +2469,14 @@ Error: duplicate constraint already exists, use --force to override + output, returnVal = pcs("constraint colocation set D1 D2") + ac(output, """\ + Error: duplicate constraint already exists, use --force to override +- set D1 D2 (id:pcs_rsc_set_D1_D2-4) setoptions score=INFINITY (id:pcs_rsc_colocation_set_D1_D2) ++ set D1 D2 (id:colocation_set_D1D2_set) setoptions score=INFINITY (id:colocation_set_D1D2) + """) + self.assertEqual(1, returnVal) + + output, returnVal = pcs("constraint colocation set D1 D2 --force") + ac(output, console_report( + "Warning: duplicate constraint already exists", +- " set D1 D2 (id:pcs_rsc_set_D1_D2-4) setoptions score=INFINITY (id:pcs_rsc_colocation_set_D1_D2)" ++ " set D1 D2 (id:colocation_set_D1D2_set) setoptions score=INFINITY (id:colocation_set_D1D2)" + )) + self.assertEqual(0, returnVal) + +@@ -2475,7 +2487,7 @@ Error: duplicate constraint already exists, use --force to override + output, returnVal = pcs("constraint colocation set D1 D2 set D5 D6") + ac(output, """\ + Error: duplicate constraint already exists, use --force to override +- 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) ++ set D1 D2 (id:colocation_set_D1D2D5_set) set D5 D6 (id:colocation_set_D1D2D5_set-1) setoptions score=INFINITY (id:colocation_set_D1D2D5) + """) + self.assertEqual(1, returnVal) + +@@ -2484,7 +2496,7 @@ Error: duplicate constraint already exists, use --force to override + ) + ac(output, console_report( + "Warning: duplicate constraint already exists", +- " 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)" ++ " set D1 D2 (id:colocation_set_D1D2D5_set) set D5 D6 (id:colocation_set_D1D2D5_set-1) setoptions score=INFINITY (id:colocation_set_D1D2D5)" + )) + self.assertEqual(0, returnVal) + +@@ -2503,18 +2515,18 @@ Error: duplicate constraint already exists, use --force to override + Location Constraints: + Ordering Constraints: + Resource Sets: +- set D1 D2 (id:pcs_rsc_set_D1_D2) (id:pcs_rsc_order_set_D1_D2) +- set D1 D2 (id:pcs_rsc_set_D1_D2-1) (id:pcs_rsc_order_set_D1_D2-1) +- 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) +- 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) +- set D6 D1 (id:pcs_rsc_set_D6_D1-1) (id:pcs_rsc_order_set_D6_D1) ++ set D1 D2 (id:order_set_D1D2_set) (id:order_set_D1D2) ++ set D1 D2 (id:order_set_D1D2-1_set) (id:order_set_D1D2-1) ++ set D1 D2 (id:order_set_D1D2D5_set) set D5 D6 (id:order_set_D1D2D5_set-1) (id:order_set_D1D2D5) ++ set D1 D2 (id:order_set_D1D2D5-1_set) set D5 D6 (id:order_set_D1D2D5-1_set-1) (id:order_set_D1D2D5-1) ++ set D6 D1 (id:order_set_D6D1_set) (id:order_set_D6D1) + Colocation Constraints: + Resource Sets: +- set D1 D2 (id:pcs_rsc_set_D1_D2-4) setoptions score=INFINITY (id:pcs_rsc_colocation_set_D1_D2) +- set D1 D2 (id:pcs_rsc_set_D1_D2-5) setoptions score=INFINITY (id:pcs_rsc_colocation_set_D1_D2-1) +- 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) +- 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) +- set D6 D1 (id:pcs_rsc_set_D6_D1) setoptions score=INFINITY (id:pcs_rsc_colocation_set_D6_D1) ++ set D1 D2 (id:colocation_set_D1D2_set) setoptions score=INFINITY (id:colocation_set_D1D2) ++ set D1 D2 (id:colocation_set_D1D2-1_set) setoptions score=INFINITY (id:colocation_set_D1D2-1) ++ set D1 D2 (id:colocation_set_D1D2D5_set) set D5 D6 (id:colocation_set_D1D2D5_set-1) setoptions score=INFINITY (id:colocation_set_D1D2D5) ++ 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) ++ set D6 D1 (id:colocation_set_D6D1_set) setoptions score=INFINITY (id:colocation_set_D6D1) + Ticket Constraints: + """) + +@@ -2782,14 +2794,14 @@ Ordering Constraints: + start D1 then start D2 (kind:Mandatory) (id:id7) + start D2 then start D1 (kind:Optional) (id:id8) + Resource Sets: +- set D1 D2 (id:pcs_rsc_set_D1_D2-1) (id:id5) +- set D2 D1 (id:pcs_rsc_set_D2_D1-1) setoptions kind=Mandatory (id:id6) ++ set D1 D2 (id:id5_set) (id:id5) ++ set D2 D1 (id:id6_set) setoptions kind=Mandatory (id:id6) + Colocation Constraints: + D1 with D2 (score:INFINITY) (id:id1) + D2 with D1 (score:100) (id:id2) + Resource Sets: +- set D1 D2 (id:pcs_rsc_set_D1_D2) setoptions score=INFINITY (id:id3) +- set D2 D1 (id:pcs_rsc_set_D2_D1) setoptions score=100 (id:id4) ++ set D1 D2 (id:id3_set) setoptions score=INFINITY (id:id3) ++ set D2 D1 (id:id4_set) setoptions score=100 (id:id4) + Ticket Constraints: + """) + self.assertEqual(0, returnVal) +@@ -3527,10 +3539,8 @@ class BundleColocation(Bundle): + "constraint colocation set B X", + """ + +- +- ++ ++ + + + +@@ -3553,10 +3563,8 @@ class BundleColocation(Bundle): + "constraint colocation set R X --force", + """ + +- +- ++ ++ + + + +@@ -3615,8 +3623,8 @@ class BundleOrder(Bundle): + "constraint order set B X", + """ + +- +- ++ ++ + + + +@@ -3639,8 +3647,8 @@ class BundleOrder(Bundle): + "constraint order set R X --force", + """ + +- +- ++ ++ + + + +@@ -3693,8 +3701,8 @@ class BundleTicket(Bundle): + "constraint ticket set B setoptions ticket=T", + """ + +- +- ++ ++ + + + +@@ -3716,8 +3724,8 @@ class BundleTicket(Bundle): + "constraint ticket set R setoptions ticket=T --force", + """ + +- +- ++ ++ + + + +-- +2.21.0 + diff --git a/SOURCES/change-cman-to-rhel6-in-messages.patch b/SOURCES/change-cman-to-rhel6-in-messages.patch index d2f0bd8..27ec2a3 100644 --- a/SOURCES/change-cman-to-rhel6-in-messages.patch +++ b/SOURCES/change-cman-to-rhel6-in-messages.patch @@ -1,7 +1,7 @@ -From 1c3ccce2b538532daa4e4ae35df3f71861e56e16 Mon Sep 17 00:00:00 2001 +From dbaa5bf9ed8cfa68b67afda4718c1cfc5ab847b6 Mon Sep 17 00:00:00 2001 From: Ivan Devat Date: Mon, 23 May 2016 17:00:13 +0200 -Subject: [PATCH 3/4] change cman to rhel6 in messages +Subject: [PATCH 4/6] change cman to rhel6 in messages --- pcs/cli/common/console_report.py | 8 ++++---- @@ -17,7 +17,7 @@ Subject: [PATCH 3/4] change cman to rhel6 in messages 10 files changed, 48 insertions(+), 48 deletions(-) diff --git a/pcs/cli/common/console_report.py b/pcs/cli/common/console_report.py -index 1824bd9a..06ba9a00 100644 +index b5885b6b..9108257e 100644 --- a/pcs/cli/common/console_report.py +++ b/pcs/cli/common/console_report.py @@ -718,7 +718,7 @@ CODE_TO_MESSAGE_BUILDER_MAP = { @@ -29,7 +29,7 @@ index 1824bd9a..06ba9a00 100644 , codes.ID_ALREADY_EXISTS: lambda info: -@@ -978,7 +978,7 @@ CODE_TO_MESSAGE_BUILDER_MAP = { +@@ -986,7 +986,7 @@ CODE_TO_MESSAGE_BUILDER_MAP = { , codes.IGNORED_CMAN_UNSUPPORTED_OPTION: lambda info: @@ -38,7 +38,7 @@ index 1824bd9a..06ba9a00 100644 .format(**info) , -@@ -987,12 +987,12 @@ CODE_TO_MESSAGE_BUILDER_MAP = { +@@ -995,12 +995,12 @@ CODE_TO_MESSAGE_BUILDER_MAP = { , codes.CMAN_UDPU_RESTART_REQUIRED: ( @@ -54,10 +54,10 @@ index 1824bd9a..06ba9a00 100644 ), diff --git a/pcs/cluster.py b/pcs/cluster.py -index 0bacae16..ca47072d 100644 +index a32fdc7e..e8fa0ce4 100644 --- a/pcs/cluster.py +++ b/pcs/cluster.py -@@ -2122,7 +2122,7 @@ def node_add(lib_env, node0, node1, modifiers): +@@ -2125,7 +2125,7 @@ def node_add(lib_env, node0, node1, modifiers): else: utils.err("Unable to update any nodes") if utils.is_cman_with_udpu_transport(): @@ -66,7 +66,7 @@ index 0bacae16..ca47072d 100644 + "cluster restart is required to apply node addition") if wait: print() -@@ -2198,7 +2198,7 @@ def node_remove(lib_env, node0, modifiers): +@@ -2201,7 +2201,7 @@ def node_remove(lib_env, node0, modifiers): output, retval = utils.reloadCorosync() output, retval = utils.run(["crm_node", "--force", "-R", node0]) if utils.is_cman_with_udpu_transport(): @@ -75,7 +75,7 @@ index 0bacae16..ca47072d 100644 + "cluster restart is required to apply node removal") def cluster_localnode(argv): -@@ -2366,7 +2366,7 @@ def cluster_uidgid(argv, silent_list = False): +@@ -2369,7 +2369,7 @@ def cluster_uidgid(argv, silent_list = False): def cluster_get_corosync_conf(argv): if utils.is_rhel6(): @@ -98,10 +98,10 @@ index 6c0f8194..f2cdbaa3 100644 cluster_conf = settings.cluster_conf_file dry_run_output = None diff --git a/pcs/pcs.8 b/pcs/pcs.8 -index 5670f458..db49f8ba 100644 +index 80b80ef7..82d2570e 100644 --- a/pcs/pcs.8 +++ b/pcs/pcs.8 -@@ -215,13 +215,13 @@ auth [[:]] [...] [\fB\-u\fR ] [\fB\-p\fR ] [\fB\ +@@ -249,13 +249,13 @@ auth [[:]] [...] [\fB\-u\fR ] [\fB\-p\fR ] [\fB\ Authenticate pcs to pcsd on nodes specified, or on all nodes configured in the local cluster if no nodes are specified (authorization tokens are stored in ~/.pcs/tokens or /var/lib/pcsd/tokens for root). By default all nodes are also authenticated to each other, using \fB\-\-local\fR only authenticates the local node (and does not authenticate the remote nodes with each other). Using \fB\-\-force\fR forces re\-authentication to occur. .TP setup [\fB\-\-start\fR [\fB\-\-wait\fR[=]]] [\fB\-\-local\fR] [\fB\-\-enable\fR] \fB\-\-name\fR [] [...] [\fB\-\-transport\fR udpu|udp] [\fB\-\-rrpmode\fR active|passive] [\fB\-\-addr0\fR [[[\fB\-\-mcast0\fR
] [\fB\-\-mcastport0\fR ] [\fB\-\-ttl0\fR ]] | [\fB\-\-broadcast0\fR]] [\fB\-\-addr1\fR [[[\fB\-\-mcast1\fR
] [\fB\-\-mcastport1\fR ] [\fB\-\-ttl1\fR ]] | [\fB\-\-broadcast1\fR]]]] [\fB\-\-wait_for_all\fR=<0|1>] [\fB\-\-auto_tie_breaker\fR=<0|1>] [\fB\-\-last_man_standing\fR=<0|1> [\fB\-\-last_man_standing_window\fR=