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-25 17:36:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/crmsh (Old)
 and      /work/SRC/openSUSE:Factory/.crmsh.new.1938 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "crmsh"

Tue Jan 25 17:36:01 2022 rev:238 rq:948943 version:4.4.0+20220125.d0150a88

Changes:
--------
--- /work/SRC/openSUSE:Factory/crmsh/crmsh.changes      2022-01-17 
22:34:22.714256949 +0100
+++ /work/SRC/openSUSE:Factory/.crmsh.new.1938/crmsh.changes    2022-01-25 
17:37:23.101790966 +0100
@@ -1,0 +2,12 @@
+Tue Jan 25 07:51:13 UTC 2022 - xli...@suse.com
+
+- Update to version 4.4.0+20220125.d0150a88:
+  * Dev: ui_node: Use diff and patch instead of replace cib
+
+-------------------------------------------------------------------
+Tue Jan 18 00:56:51 UTC 2022 - xli...@suse.com
+
+- Update to version 4.4.0+20220118.5d56321b:
+  * Dev: crm report: Add dpkg support
+
+-------------------------------------------------------------------

Old:
----
  crmsh-4.4.0+20220117.3debc274.tar.bz2

New:
----
  crmsh-4.4.0+20220125.d0150a88.tar.bz2

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

Other differences:
------------------
++++++ crmsh.spec ++++++
--- /var/tmp/diff_new_pack.BarFuu/_old  2022-01-25 17:37:23.777786310 +0100
+++ /var/tmp/diff_new_pack.BarFuu/_new  2022-01-25 17:37:23.785786254 +0100
@@ -36,7 +36,7 @@
 Summary:        High Availability cluster command-line interface
 License:        GPL-2.0-or-later
 Group:          %{pkg_group}
-Version:        4.4.0+20220117.3debc274
+Version:        4.4.0+20220125.d0150a88
 Release:        0
 URL:            http://crmsh.github.io
 Source0:        %{name}-%{version}.tar.bz2

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.BarFuu/_old  2022-01-25 17:37:23.873785648 +0100
+++ /var/tmp/diff_new_pack.BarFuu/_new  2022-01-25 17:37:23.881785593 +0100
@@ -9,7 +9,7 @@
 </service>
 <service name="tar_scm">
   <param name="url">https://github.com/ClusterLabs/crmsh.git</param>
-  <param 
name="changesrevision">ac97ee74e6358b03e0a50bd28a92390add801cec</param>
+  <param 
name="changesrevision">dd6f18660a24fd6ab9a25d284d8abbc95b8c831f</param>
 </service>
 </servicedata>
 (No newline at EOF)

++++++ crmsh-4.4.0+20220117.3debc274.tar.bz2 -> 
crmsh-4.4.0+20220125.d0150a88.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crmsh-4.4.0+20220117.3debc274/crmsh/constants.py 
new/crmsh-4.4.0+20220125.d0150a88/crmsh/constants.py
--- old/crmsh-4.4.0+20220117.3debc274/crmsh/constants.py        2022-01-17 
02:50:15.000000000 +0100
+++ new/crmsh-4.4.0+20220125.d0150a88/crmsh/constants.py        2022-01-25 
08:34:18.000000000 +0100
@@ -504,7 +504,6 @@
 
 
 CIB_QUERY = "cibadmin -Q"
-CIB_REPLACE = "cibadmin -R -X '{xmlstr}'"
 CIB_UPGRADE = "crm configure upgrade force"
 CIB_RAW_FILE = "/var/lib/pacemaker/cib/cib.xml"
 XML_NODE_PATH = "/cib/configuration/nodes/node"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-4.4.0+20220117.3debc274/crmsh/report/utillib.py 
new/crmsh-4.4.0+20220125.d0150a88/crmsh/report/utillib.py
--- old/crmsh-4.4.0+20220117.3debc274/crmsh/report/utillib.py   2022-01-17 
02:50:15.000000000 +0100
+++ new/crmsh-4.4.0+20220125.d0150a88/crmsh/report/utillib.py   2022-01-25 
08:34:18.000000000 +0100
@@ -1154,7 +1154,21 @@
 
 
 def pkg_ver_deb(packages):
-    pass
+    res = ""
+    for pack in packages.split():
+        code, out = get_command_info("dpkg-query -s %s" % pack)
+        if code != 0:
+            continue
+        distro = "Unknown"
+        for line in out.split('\n'):
+            if re.match("^Package\s*:", line):
+                name = line.split(':')[1].lstrip()
+            elif re.match("^Version\s*:", line):
+                version = line.split(':')[1].lstrip()
+            elif re.match("^Architecture\s*:", line):
+                arch = line.split(':')[1].lstrip()
+        res += "%s %s - %s\n" % (name, version, arch)
+    return res
 
 
 def pkg_ver_pkg_info(packages):
@@ -1454,7 +1468,14 @@
 
 
 def verify_deb(packages):
-    pass
+    res = ""
+    for pack in packages.split():
+        cmd = r"dpkg --verify %s | grep -v 'not installed'" % pack
+        code, out = crmutils.get_stdout(cmd)
+        if code != 0 and out:
+            res = "For package %s:\n" % pack
+            res += out + "\n"
+    return res
 
 
 def verify_packages(packages):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crmsh-4.4.0+20220117.3debc274/crmsh/ui_node.py 
new/crmsh-4.4.0+20220125.d0150a88/crmsh/ui_node.py
--- old/crmsh-4.4.0+20220117.3debc274/crmsh/ui_node.py  2022-01-17 
02:50:15.000000000 +0100
+++ new/crmsh-4.4.0+20220125.d0150a88/crmsh/ui_node.py  2022-01-25 
08:34:18.000000000 +0100
@@ -337,8 +337,10 @@
                 res_item = xmlutil.get_set_nodes(interface_item, 
"instance_attributes", create=True)
                 xmlutil.set_attr(res_item[0], "standby", "on")
 
-        cmd = constants.CIB_REPLACE.format(xmlstr=xmlutil.xml_tostring(cib))
-        utils.get_stdout_or_raise_error(cmd)
+        orig_cib = xmlutil.cibdump2elem()
+        rc = utils.diff_and_patch(xmlutil.xml_tostring(orig_cib), 
xmlutil.xml_tostring(cib))
+        if not rc:
+            return False
         for node in node_list:
             logger.info("standby node %s", node)
 
@@ -362,8 +364,10 @@
                 if item and item[0].get("value") != "off":
                     item[0].set("value", "off")
 
-        cmd = constants.CIB_REPLACE.format(xmlstr=xmlutil.xml_tostring(cib))
-        utils.get_stdout_or_raise_error(cmd)
+        orig_cib = xmlutil.cibdump2elem()
+        rc = utils.diff_and_patch(xmlutil.xml_tostring(orig_cib), 
xmlutil.xml_tostring(cib))
+        if not rc:
+            return False
         for node in node_list:
             logger.info("online node %s", node)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crmsh-4.4.0+20220117.3debc274/crmsh/utils.py 
new/crmsh-4.4.0+20220125.d0150a88/crmsh/utils.py
--- old/crmsh-4.4.0+20220117.3debc274/crmsh/utils.py    2022-01-17 
02:50:15.000000000 +0100
+++ new/crmsh-4.4.0+20220125.d0150a88/crmsh/utils.py    2022-01-25 
08:34:18.000000000 +0100
@@ -3067,4 +3067,25 @@
         return upgrade_dict[value]
 
     return value
+
+
+def diff_and_patch(orig_cib_str, current_cib_str):
+    """
+    Use crm_diff to generate patch, then apply
+    """
+    # In cibconfig.py, _patch_cib method doesn't include status section
+    # So here should make a function to handle common cases
+    cmd = "crm_diff -u -O '{}' -N '{}'".format(orig_cib_str, current_cib_str)
+    rc, cib_diff, err = get_stdout_stderr(cmd)
+    if rc == 0: # no difference
+        return True
+    if err:
+        logger.error("Failed to run crm_diff: %s", err)
+        return False
+    logger.debug("Diff: %s", cib_diff)
+    rc = pipe_string("cibadmin -p -P --force", cib_diff)
+    if rc != 0:
+        logger.error("Failed to patch")
+        return False
+    return True
 # vim:ts=4:sw=4:et:

Reply via email to