Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package crmsh for openSUSE:Factory checked 
in at 2022-01-06 15:50:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/crmsh (Old)
 and      /work/SRC/openSUSE:Factory/.crmsh.new.1896 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "crmsh"

Thu Jan  6 15:50:50 2022 rev:235 rq:943881 version:4.3.1+20220104.b683bf0d

Changes:
--------
--- /work/SRC/openSUSE:Factory/crmsh/crmsh.changes      2021-12-24 
20:23:33.926031533 +0100
+++ /work/SRC/openSUSE:Factory/.crmsh.new.1896/crmsh.changes    2022-01-06 
15:50:54.340958815 +0100
@@ -1,0 +2,14 @@
+Tue Jan 04 09:19:17 UTC 2022 - xli...@suse.com
+
+- Update to version 4.3.1+20220104.b683bf0d:
+  * Dev: bootstrap: Avoid duplicated setting for rsc_defaults
+
+-------------------------------------------------------------------
+Wed Dec 29 09:18:10 UTC 2021 - xli...@suse.com
+
+- Update to version 4.3.1+20211229.ace94b1f:
+  * Dev: testcase: Adjust original testcase based on previous changes
+  * Fix: ui_configure: Give a deprecated warning when using "ms" subcommand 
(bsc#1194125)
+  * Fix: xmlutil: Parse promotable clone correctly and also consider 
compatibility (bsc#1194125)
+
+-------------------------------------------------------------------

Old:
----
  crmsh-4.3.1+20211224.922207f9.tar.bz2

New:
----
  crmsh-4.3.1+20220104.b683bf0d.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ crmsh.spec ++++++
--- /var/tmp/diff_new_pack.lTqOxa/_old  2022-01-06 15:50:54.860959101 +0100
+++ /var/tmp/diff_new_pack.lTqOxa/_new  2022-01-06 15:50:54.864959103 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package crmsh
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -36,7 +36,7 @@
 Summary:        High Availability cluster command-line interface
 License:        GPL-2.0-or-later
 Group:          %{pkg_group}
-Version:        4.3.1+20211224.922207f9
+Version:        4.3.1+20220104.b683bf0d
 Release:        0
 URL:            http://crmsh.github.io
 Source0:        %{name}-%{version}.tar.bz2

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.lTqOxa/_old  2022-01-06 15:50:54.904959125 +0100
+++ /var/tmp/diff_new_pack.lTqOxa/_new  2022-01-06 15:50:54.908959127 +0100
@@ -9,7 +9,7 @@
 </service>
 <service name="tar_scm">
   <param name="url">https://github.com/ClusterLabs/crmsh.git</param>
-  <param 
name="changesrevision">922207f9c694bc5bc61dfaac50ba800b8447384c</param>
+  <param 
name="changesrevision">0a4a198844f550840c8d0cecf95537dca4b93046</param>
 </service>
 </servicedata>
 (No newline at EOF)

++++++ crmsh-4.3.1+20211224.922207f9.tar.bz2 -> 
crmsh-4.3.1+20220104.b683bf0d.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crmsh-4.3.1+20211224.922207f9/crmsh/bootstrap.py 
new/crmsh-4.3.1+20220104.b683bf0d/crmsh/bootstrap.py
--- old/crmsh-4.3.1+20211224.922207f9/crmsh/bootstrap.py        2021-12-24 
10:24:59.000000000 +0100
+++ new/crmsh-4.3.1+20220104.b683bf0d/crmsh/bootstrap.py        2022-01-04 
10:03:01.000000000 +0100
@@ -1213,10 +1213,13 @@
 
     logger.info("Loading initial cluster configuration")
 
+    rsc_defaults_str = "rsc_defaults rsc-options: migration-threshold=3"
+    if not xmlutil.RscState().has_rsc_stickiness():
+        rsc_defaults_str += " resource-stickiness=1"
     crm_configure_load("update", """property cib-bootstrap-options: 
stonith-enabled=false
 op_defaults op-options: timeout=600 record-pending=true
-rsc_defaults rsc-options: resource-stickiness=1 migration-threshold=3
-""")
+{}
+""".format(rsc_defaults_str))
 
     _context.sbd_manager.configure_sbd_resource_and_properties()
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crmsh-4.3.1+20211224.922207f9/crmsh/cibconfig.py 
new/crmsh-4.3.1+20220104.b683bf0d/crmsh/cibconfig.py
--- old/crmsh-4.3.1+20211224.922207f9/crmsh/cibconfig.py        2021-12-24 
10:24:59.000000000 +0100
+++ new/crmsh-4.3.1+20220104.b683bf0d/crmsh/cibconfig.py        2022-01-04 
10:03:01.000000000 +0100
@@ -32,7 +32,7 @@
 from .utils import run_ptest, is_id_valid, edit_file, get_boolean, 
filter_string
 from .xmlutil import is_child_rsc, rsc_constraint, sanitize_cib, rename_id, 
get_interesting_nodes
 from .xmlutil import is_pref_location, get_topnode, new_cib, 
get_rscop_defaults_meta_node
-from .xmlutil import rename_rscref, is_ms, silly_constraint, is_container, 
fix_comments
+from .xmlutil import rename_rscref, is_ms_or_promotable_clone, 
silly_constraint, is_container, fix_comments
 from .xmlutil import sanity_check_nvpairs, merge_nodes, op2list, mk_rsc_type, 
is_resource
 from .xmlutil import stuff_comments, is_comment, is_constraint, read_cib, 
processing_sort_cli
 from .xmlutil import find_operation, get_rsc_children_ids, is_primitive, 
referenced_resources
@@ -3011,7 +3011,7 @@
                             implied_actions.remove(op)
                         elif can_migrate(r_node) and op in 
implied_migrate_actions:
                             implied_migrate_actions.remove(op)
-                        elif is_ms(obj.node.getparent()) and op in 
implied_ms_actions:
+                        elif is_ms_or_promotable_clone(obj.node.getparent()) 
and op in implied_ms_actions:
                             implied_ms_actions.remove(op)
                         elif op not in other_actions:
                             continue
@@ -3022,7 +3022,7 @@
             l = implied_actions
             if can_migrate(r_node):
                 l += implied_migrate_actions
-            if is_ms(obj.node.getparent()):
+            if is_ms_or_promotable_clone(obj.node.getparent()):
                 l += implied_ms_actions
             for op in l:
                 adv_timeout = ra.get_adv_timeout(op)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crmsh-4.3.1+20211224.922207f9/crmsh/cibverify.py 
new/crmsh-4.3.1+20220104.b683bf0d/crmsh/cibverify.py
--- old/crmsh-4.3.1+20211224.922207f9/crmsh/cibverify.py        2021-12-24 
10:24:59.000000000 +0100
+++ new/crmsh-4.3.1+20220104.b683bf0d/crmsh/cibverify.py        2022-01-04 
10:03:01.000000000 +0100
@@ -28,5 +28,5 @@
             else:
                 logger.error(_prettify(line, 0))
         else:
-            logger.info(_prettify(line, 7))
+            logger.error(_prettify(line, 7))
     return rc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crmsh-4.3.1+20211224.922207f9/crmsh/completers.py 
new/crmsh-4.3.1+20220104.b683bf0d/crmsh/completers.py
--- old/crmsh-4.3.1+20211224.922207f9/crmsh/completers.py       2021-12-24 
10:24:59.000000000 +0100
+++ new/crmsh-4.3.1+20220104.b683bf0d/crmsh/completers.py       2022-01-04 
10:03:01.000000000 +0100
@@ -51,7 +51,7 @@
     nodes = xmlutil.get_interesting_nodes(cib_el, [])
     rsc_id_list = [x.get("id") for x in nodes if xmlutil.is_resource(x)]
     if args and args[0] in ['promote', 'demote']:
-        return [item for item in rsc_id_list if xmlutil.RscState().is_ms(item)]
+        return [item for item in rsc_id_list if 
xmlutil.RscState().is_ms_or_promotable_clone(item)]
     if args and args[0] == "started":
         return [item for item in rsc_id_list if 
xmlutil.RscState().is_running(item)]
     if args and args[0] == "stopped":
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crmsh-4.3.1+20211224.922207f9/crmsh/rsctest.py 
new/crmsh-4.3.1+20220104.b683bf0d/crmsh/rsctest.py
--- old/crmsh-4.3.1+20211224.922207f9/crmsh/rsctest.py  2021-12-24 
10:24:59.000000000 +0100
+++ new/crmsh-4.3.1+20220104.b683bf0d/crmsh/rsctest.py  2022-01-04 
10:03:01.000000000 +0100
@@ -4,7 +4,7 @@
 import os
 import sys
 from .utils import rmdir_r, quote, this_node, ext_cmd
-from .xmlutil import get_topmost_rsc, get_op_timeout, get_child_nvset_node, 
is_ms, is_cloned
+from .xmlutil import get_topmost_rsc, get_op_timeout, get_child_nvset_node, 
is_ms_or_promotable_clone, is_cloned
 from . import log
 
 
@@ -69,8 +69,8 @@
     def debug(self, s):
         logger.debug("%s: %s", self.id_str(), s)
 
-    def is_ms(self):
-        return is_ms(get_topmost_rsc(self.rscdef_node))
+    def is_ms_or_promotable_clone(self):
+        return is_ms_or_promotable_clone(get_topmost_rsc(self.rscdef_node))
 
     def nvset2env(self, set_n):
         if set_n is None:
@@ -195,7 +195,7 @@
         """
         Make sure resource is stopped on node.
         """
-        if self.is_ms():
+        if self.is_ms_or_promotable_clone():
             self.runop("demote", (node,))
         self.runop("stop", (node,))
         ok = self.is_ok(node)
@@ -209,7 +209,7 @@
         Perform test of resource on node.
         """
         self.runop("start", (node,))
-        if self.is_ms() and self.is_ok(node):
+        if self.is_ms_or_promotable_clone() and self.is_ok(node):
             self.runop("promote", (node,))
         return self.is_ok(node)
 
@@ -227,7 +227,7 @@
         if not stopped:
             if self.is_ok(node):
                 self.warn("resource running at %s" % (node))
-            elif self.is_ms() and self.is_master(node):
+            elif self.is_ms_or_promotable_clone() and self.is_master(node):
                 self.warn("resource is master at %s" % (node))
             else:
                 self.warn("resource not clean at %s" % (node))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crmsh-4.3.1+20211224.922207f9/crmsh/ui_configure.py 
new/crmsh-4.3.1+20220104.b683bf0d/crmsh/ui_configure.py
--- old/crmsh-4.3.1+20211224.922207f9/crmsh/ui_configure.py     2021-12-24 
10:24:59.000000000 +0100
+++ new/crmsh-4.3.1+20220104.b683bf0d/crmsh/ui_configure.py     2022-01-04 
10:03:01.000000000 +0100
@@ -1027,6 +1027,9 @@
         """usage: ms <name> <rsc>
         [params <param>=<value> [<param>=<value>...]]
         [meta <attribute>=<value> [<attribute>=<value>...]]"""
+        format_str = " " if "meta" in args else " meta "
+        new_cmd_str = ' '.join(args) + "{}promotable=true".format(format_str)
+        logger.warning('"ms" is deprecated. Please use "clone 
{}"'.format(new_cmd_str))
         return self.__conf_object(context.get_command_name(), *args)
 
     @command.skill_level('administrator')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crmsh-4.3.1+20211224.922207f9/crmsh/ui_resource.py 
new/crmsh-4.3.1+20220104.b683bf0d/crmsh/ui_resource.py
--- old/crmsh-4.3.1+20211224.922207f9/crmsh/ui_resource.py      2021-12-24 
10:24:59.000000000 +0100
+++ new/crmsh-4.3.1+20220104.b683bf0d/crmsh/ui_resource.py      2022-01-04 
10:03:01.000000000 +0100
@@ -335,8 +335,8 @@
         "usage: promote <rsc>"
         if not utils.is_name_sane(rsc):
             return False
-        if not xmlutil.RscState().is_ms(rsc):
-            logger.error("%s is not a master-slave resource", rsc)
+        if not xmlutil.RscState().is_ms_or_promotable_clone(rsc):
+            logger.error("%s is not a promotable resource", rsc)
             return False
         return utils.ext_cmd(self.rsc_setrole % (rsc, "Master")) == 0
 
@@ -363,8 +363,8 @@
         "usage: demote <rsc>"
         if not utils.is_name_sane(rsc):
             return False
-        if not xmlutil.RscState().is_ms(rsc):
-            logger.error("%s is not a master-slave resource", rsc)
+        if not xmlutil.RscState().is_ms_or_promotable_clone(rsc):
+            logger.error("%s is not a promotable resource", rsc)
             return False
         return utils.ext_cmd(self.rsc_setrole % (rsc, "Slave")) == 0
 
@@ -653,7 +653,7 @@
                 context.fatal_error("Failed to add trace for %s:%s" % (rsc_id, 
name))
         trace('start')
         trace('stop')
-        if xmlutil.is_ms(rsc.node):
+        if xmlutil.is_ms_or_promotable_clone(rsc.node):
             trace('promote')
             trace('demote')
         for op_node in op_nodes:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crmsh-4.3.1+20211224.922207f9/crmsh/xmlutil.py 
new/crmsh-4.3.1+20220104.b683bf0d/crmsh/xmlutil.py
--- old/crmsh-4.3.1+20211224.922207f9/crmsh/xmlutil.py  2021-12-24 
10:24:59.000000000 +0100
+++ new/crmsh-4.3.1+20220104.b683bf0d/crmsh/xmlutil.py  2022-01-04 
10:03:01.000000000 +0100
@@ -16,7 +16,7 @@
 from . import userdir
 from .utils import add_sudo, str2file, str2tmp, get_boolean
 from .utils import get_stdout, get_stdout_or_raise_error, stdout2list, 
crm_msec, crm_time_cmp
-from .utils import olist, get_cib_in_use, get_tempdir, to_ascii
+from .utils import olist, get_cib_in_use, get_tempdir, to_ascii, 
is_boolean_true
 from . import log
 
 
@@ -218,14 +218,24 @@
         except (IndexError, AttributeError):
             return None
 
-    def is_ms(self, ident):
+    def has_rsc_stickiness(self):
+        """
+        Check if resource-stickiness already set
+        """
+        self._init_cib()
+        if self.rsc_dflt_elem is None:
+            return False
+        attr = get_attr_in_set(self.rsc_dflt_elem, "resource-stickiness")
+        return attr is not None
+
+    def is_ms_or_promotable_clone(self, ident):
         '''
         Test if the resource is master-slave.
         '''
         rsc_node = self.rsc2node(ident)
         if rsc_node is None:
             return False
-        return is_ms(rsc_node)
+        return is_ms_or_promotable_clone(rsc_node)
 
     def rsc_clone(self, ident):
         '''
@@ -540,8 +550,10 @@
     return node.tag == "group"
 
 
-def is_ms(node):
-    return node.tag in ("master", "ms")
+def is_ms_or_promotable_clone(node):
+    is_promotable = is_boolean_true(get_attr_value(get_child_nvset_node(node), 
"promotable"))
+    is_ms = node.tag in ("master", "ms")
+    return is_ms or is_promotable
 
 
 def is_clone(node):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crmsh-4.3.1+20211224.922207f9/test/crm-interface 
new/crmsh-4.3.1+20220104.b683bf0d/test/crm-interface
--- old/crmsh-4.3.1+20211224.922207f9/test/crm-interface        2021-12-24 
10:24:59.000000000 +0100
+++ new/crmsh-4.3.1+20220104.b683bf0d/test/crm-interface        2022-01-04 
10:03:01.000000000 +0100
@@ -32,7 +32,7 @@
 primitive p3 ocf:pacemaker:Dummy
 primitive st stonith:null params hostlist=node1
 clone c1 p1
-ms m1 p2
+clone m1 p2 meta promotable=true
 op_defaults timeout=60s
 commit
 up
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-4.3.1+20211224.922207f9/test/testcases/confbasic.exp 
new/crmsh-4.3.1+20220104.b683bf0d/test/testcases/confbasic.exp
--- old/crmsh-4.3.1+20211224.922207f9/test/testcases/confbasic.exp      
2021-12-24 10:24:59.000000000 +0100
+++ new/crmsh-4.3.1+20220104.b683bf0d/test/testcases/confbasic.exp      
2022-01-04 10:03:01.000000000 +0100
@@ -22,15 +22,19 @@
 .INP: clone c d3       meta clone-max=1
 .INP: primitive d4 ocf:pacemaker:Dummy
 .INP: ms m d4
+WARNING: 19: "ms" is deprecated. Please use "clone m d4 meta promotable=true"
 .INP: delete m
 .INP: master m d4
 WARNING: 21: This command 'master' is deprecated, please use 'ms'
 INFO: 21: "master" is accepted as "ms"
+WARNING: 21: "ms" is deprecated. Please use "clone m d4 meta promotable=true"
 .INP: primitive s5 ocf:pacemaker:Stateful      operations $id-ref=d1-ops
 .EXT crm_resource --show-metadata ocf:pacemaker:Stateful
 .INP: primitive s6 ocf:pacemaker:Stateful      operations $id-ref=d1
 .INP: ms m5 s5
+WARNING: 24: "ms" is deprecated. Please use "clone m5 s5 meta promotable=true"
 .INP: ms m6 s6
+WARNING: 25: "ms" is deprecated. Please use "clone m6 s6 meta promotable=true"
 .INP: primitive d7 Dummy       params rule inf: #uname eq node1 fake=1         
params rule inf: #uname eq node2 fake=2         op start interval=0 timeout=60s 
        op_params 2: rule #uname eq node1 op_param=dummy         op_params 1: 
op_param=smart         op_meta 2: rule #ra-version version:gt 1.0 
start-delay=120m         op_meta 1: start-delay=60m
 .EXT crm_resource --show-metadata ocf:heartbeat:Dummy
 .INP: primitive d8 ocf:pacemaker:Dummy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-4.3.1+20211224.922207f9/test/testcases/file.exp 
new/crmsh-4.3.1+20220104.b683bf0d/test/testcases/file.exp
--- old/crmsh-4.3.1+20211224.922207f9/test/testcases/file.exp   2021-12-24 
10:24:59.000000000 +0100
+++ new/crmsh-4.3.1+20220104.b683bf0d/test/testcases/file.exp   2022-01-04 
10:03:01.000000000 +0100
@@ -8,8 +8,9 @@
 primitive p3 ocf:pacemaker:Dummy
 primitive st stonith:null \
        params hostlist=node1
-ms m1 p2
 clone c1 p1
+clone m1 p2 \
+       meta promotable=true
 rsc_defaults build-resource-defaults: \
        resource-stickiness=1
 op_defaults op-options: \
@@ -44,8 +45,9 @@
 primitive st stonith:null \
        params hostlist=node1
 # comment
-ms m1 p2
 clone c1 p1
+clone m1 p2 \
+       meta promotable=true
 property cib-bootstrap-options: \
        cluster-recheck-interval=10m
 rsc_defaults build-resource-defaults: \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-4.3.1+20211224.922207f9/test/testcases/resource.exp 
new/crmsh-4.3.1+20220104.b683bf0d/test/testcases/resource.exp
--- old/crmsh-4.3.1+20211224.922207f9/test/testcases/resource.exp       
2021-12-24 10:24:59.000000000 +0100
+++ new/crmsh-4.3.1+20220104.b683bf0d/test/testcases/resource.exp       
2022-01-04 10:03:01.000000000 +0100
@@ -96,8 +96,9 @@
     <crm_config/>
     <nodes/>
     <resources>
-      <master id="m1">
+      <clone id="m1">
         <meta_attributes id="m1-meta_attributes">
+          <nvpair name="promotable" value="true" 
id="m1-meta_attributes-promotable"/>
           <nvpair id="m1-meta_attributes-maintenance" name="maintenance" 
value="true"/>
         </meta_attributes>
         <primitive id="p2" class="ocf" provider="heartbeat" type="Delay">
@@ -107,7 +108,7 @@
             <nvpair name="stopdelay" value="2" 
id="p2-instance_attributes-stopdelay"/>
           </instance_attributes>
         </primitive>
-      </master>
+      </clone>
     </resources>
     <constraints/>
   </configuration>
@@ -123,8 +124,9 @@
     <crm_config/>
     <nodes/>
     <resources>
-      <master id="m1">
+      <clone id="m1">
         <meta_attributes id="m1-meta_attributes">
+          <nvpair name="promotable" value="true" 
id="m1-meta_attributes-promotable"/>
           <nvpair id="m1-meta_attributes-maintenance" name="maintenance" 
value="false"/>
         </meta_attributes>
         <primitive id="p2" class="ocf" provider="heartbeat" type="Delay">
@@ -134,7 +136,7 @@
             <nvpair name="stopdelay" value="2" 
id="p2-instance_attributes-stopdelay"/>
           </instance_attributes>
         </primitive>
-      </master>
+      </clone>
     </resources>
     <constraints/>
   </configuration>
@@ -927,6 +929,7 @@
 WARNING: This command 'rm' is deprecated, please use 'delete'
 INFO: "rm" is accepted as "delete"
 .TRY configure ms msg g
+WARNING: "ms" is deprecated. Please use "clone msg g meta promotable=true"
 .TRY resource scores
 .EXT crm_simulate -sUL
 2 of 6 resource instances DISABLED and 0 BLOCKED from further action due to 
failure

Reply via email to