Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package crmsh for openSUSE:Factory checked in at 2023-04-21 14:17:43 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/crmsh (Old) and /work/SRC/openSUSE:Factory/.crmsh.new.1533 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "crmsh" Fri Apr 21 14:17:43 2023 rev:291 rq:1081150 version:4.5.0+20230421.a509b8ce Changes: -------- --- /work/SRC/openSUSE:Factory/crmsh/crmsh.changes 2023-03-31 21:15:43.366440273 +0200 +++ /work/SRC/openSUSE:Factory/.crmsh.new.1533/crmsh.changes 2023-04-21 14:17:52.330870211 +0200 @@ -1,0 +2,9 @@ +Fri Apr 21 08:47:46 UTC 2023 - xli...@suse.com + +- Update to version 4.5.0+20230421.a509b8ce: + * Dev: bootstrap: Call 'crm configure load' inside crm_configure_load + * Fix: cibconfig: use any existing rsc_defaults set rather than create another one (bsc#1210614) + * Revert "Dev: bootstrap: Avoid duplicated setting for rsc_defaults" + * Dev: bootstrap: Print output for other nodes when using -N option + +------------------------------------------------------------------- Old: ---- crmsh-4.5.0+20230331.10398d83.tar.bz2 New: ---- crmsh-4.5.0+20230421.a509b8ce.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ crmsh.spec ++++++ --- /var/tmp/diff_new_pack.qsAtfy/_old 2023-04-21 14:17:52.986873889 +0200 +++ /var/tmp/diff_new_pack.qsAtfy/_new 2023-04-21 14:17:52.990873912 +0200 @@ -36,7 +36,7 @@ Summary: High Availability cluster command-line interface License: GPL-2.0-or-later Group: %{pkg_group} -Version: 4.5.0+20230331.10398d83 +Version: 4.5.0+20230421.a509b8ce Release: 0 URL: http://crmsh.github.io Source0: %{name}-%{version}.tar.bz2 ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.qsAtfy/_old 2023-04-21 14:17:53.046874226 +0200 +++ /var/tmp/diff_new_pack.qsAtfy/_new 2023-04-21 14:17:53.050874248 +0200 @@ -9,7 +9,7 @@ </service> <service name="tar_scm"> <param name="url">https://github.com/ClusterLabs/crmsh.git</param> - <param name="changesrevision">10398d831004cf1420689ca7856125a1325a7239</param> + <param name="changesrevision">a509b8ce039b4f6c6070f9be5545dd04dbf979f2</param> </service> </servicedata> (No newline at EOF) ++++++ crmsh-4.5.0+20230331.10398d83.tar.bz2 -> crmsh-4.5.0+20230421.a509b8ce.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.5.0+20230331.10398d83/crmsh/bootstrap.py new/crmsh-4.5.0+20230421.a509b8ce/crmsh/bootstrap.py --- old/crmsh-4.5.0+20230331.10398d83/crmsh/bootstrap.py 2023-03-31 04:18:08.000000000 +0200 +++ new/crmsh-4.5.0+20230421.a509b8ce/crmsh/bootstrap.py 2023-04-21 10:23:56.000000000 +0200 @@ -451,17 +451,15 @@ def crm_configure_load(action, configuration): + action_types = ("update", "replace", "push") + if action not in action_types: + utils.fatal(f"Action type should be: {action_types}") logger_utils.log_only_to_file("Loading crm config (%s), content is:" % (action)) logger_utils.log_only_to_file(configuration) - if not cib_factory.initialize(): - utils.fatal("Failed to load cluster configuration") - set_obj = mkset_obj() - if action == 'replace': - cib_factory.erase() - if not set_obj.save(configuration, remove=False, method=action): - utils.fatal("Failed to load cluster configuration") - if not cib_factory.commit(): - utils.fatal("Failed to commit cluster configuration") + + configuration_tmpfile = utils.str2tmp(configuration) + tmpfiles.add(configuration_tmpfile) + utils.get_stdout_or_raise_error(f"crm -F configure load {action} {configuration_tmpfile}") def wait_for_resource(message, resource, timeout_ms=WAIT_TIMEOUT_MS_DEFAULT): @@ -1527,13 +1525,10 @@ 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 -{} -""".format(rsc_defaults_str)) +rsc_defaults rsc-options: resource-stickiness=1 migration-threshold=3 +""") _context.sbd_manager.configure_sbd_resource_and_properties() @@ -2431,7 +2426,8 @@ logger.info("Adding node {} to cluster".format(node)) cmd = 'crm cluster join -y {} -c {}@{}'.format(options, _context.current_user, utils.this_node()) logger.info("Running command on {}: {}".format(node, cmd)) - utils.get_stdout_or_raise_error(cmd, node) + out = utils.get_stdout_or_raise_error(cmd, node) + print(out) def bootstrap_join(context): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.5.0+20230331.10398d83/crmsh/cibconfig.py new/crmsh-4.5.0+20230421.a509b8ce/crmsh/cibconfig.py --- old/crmsh-4.5.0+20230331.10398d83/crmsh/cibconfig.py 2023-03-31 04:18:08.000000000 +0200 +++ new/crmsh-4.5.0+20230421.a509b8ce/crmsh/cibconfig.py 2023-04-21 10:23:56.000000000 +0200 @@ -3411,6 +3411,11 @@ def set_property_cli(self, obj_type, node): pset_id = node.get('id') or default_id_for_obj(obj_type) obj = self.find_object(pset_id) + # If id is the default, use any existing set rather create another one. + if not obj and pset_id == default_id_for_obj(obj_type): + objs = self.get_elems_on_type("type:%s" %obj_type) + if objs and len(objs) > 0: + obj = objs[-1] if not obj: if not is_id_valid(pset_id): logger_utils.invalid_id_err(pset_id) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.5.0+20230331.10398d83/crmsh/xmlutil.py new/crmsh-4.5.0+20230421.a509b8ce/crmsh/xmlutil.py --- old/crmsh-4.5.0+20230331.10398d83/crmsh/xmlutil.py 2023-03-31 04:18:08.000000000 +0200 +++ new/crmsh-4.5.0+20230421.a509b8ce/crmsh/xmlutil.py 2023-04-21 10:23:56.000000000 +0200 @@ -234,16 +234,6 @@ except (IndexError, AttributeError): return None - 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.