Hello community, here is the log from the commit of package crmsh for openSUSE:Factory checked in at 2016-06-14 23:06:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/crmsh (Old) and /work/SRC/openSUSE:Factory/.crmsh.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "crmsh" Changes: -------- --- /work/SRC/openSUSE:Factory/crmsh/crmsh.changes 2016-05-23 16:40:43.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.crmsh.new/crmsh.changes 2016-06-14 23:06:54.000000000 +0200 @@ -1,0 +2,19 @@ +Wed Jun 01 08:22:41 UTC 2016 - [email protected] + +- Update to version 2.2.0+git.1464769043.9e4df55: + * medium: tmpfiles: Create temporary directory if non-existing (bsc#981583) + +------------------------------------------------------------------- +Thu May 26 04:40:28 UTC 2016 - [email protected] + +- Update to version 2.2.0+git.1464237560.fd9e583: + + high: constants: Add maintenance to set of known attributes (bsc#981659) + + medium: xmlutil: reduce unknown attribute to warning (bsc#981659) + +------------------------------------------------------------------- +Wed May 25 09:20:57 UTC 2016 - [email protected] + +- Update to version 2.2.0+git.1464167894.621fe00: + + medium: scripts: no-quorum-policy=ignore is deprecated (bsc#981056) + +------------------------------------------------------------------- Old: ---- crmsh-2.2.0+git.1463777827.9b402a8.tar.bz2 New: ---- crmsh-2.2.0+git.1464769043.9e4df55.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ crmsh.spec ++++++ --- /var/tmp/diff_new_pack.HEPd8d/_old 2016-06-14 23:06:55.000000000 +0200 +++ /var/tmp/diff_new_pack.HEPd8d/_new 2016-06-14 23:06:55.000000000 +0200 @@ -32,13 +32,13 @@ %{!?python_sitelib: %define python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} -%define version_unconverted 2.2.0+git.1463777827.9b402a8 +%define version_unconverted 2.2.0+git.1464769043.9e4df55 Name: crmsh Summary: High Availability cluster command-line interface License: GPL-2.0+ Group: %{pkg_group} -Version: 2.2.0+git.1463777827.9b402a8 +Version: 2.2.0+git.1464769043.9e4df55 Release: 0 Url: http://crmsh.github.io Source0: %{name}-%{version}.tar.bz2 ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.HEPd8d/_old 2016-06-14 23:06:55.000000000 +0200 +++ /var/tmp/diff_new_pack.HEPd8d/_new 2016-06-14 23:06:55.000000000 +0200 @@ -1,4 +1,4 @@ <servicedata> <service name="tar_scm"> <param name="url">git://github.com/ClusterLabs/crmsh.git</param> - <param name="changesrevision">9b402a8f9970f430a037dd0251ea88155d569ef4</param></service></servicedata> \ No newline at end of file + <param name="changesrevision">9e4df55617a3255398064d789af1b5180d0de736</param></service></servicedata> \ No newline at end of file ++++++ crmsh-2.2.0+git.1463777827.9b402a8.tar.bz2 -> crmsh-2.2.0+git.1464769043.9e4df55.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1463777827.9b402a8/crmsh/constants.py new/crmsh-2.2.0+git.1464769043.9e4df55/crmsh/constants.py --- old/crmsh-2.2.0+git.1463777827.9b402a8/crmsh/constants.py 2016-05-23 10:25:56.000000000 +0200 +++ new/crmsh-2.2.0+git.1464769043.9e4df55/crmsh/constants.py 2016-06-01 10:22:40.000000000 +0200 @@ -203,7 +203,7 @@ precious_attrs = ("id-ref",) op_extra_attrs = ("interval",) rsc_meta_attributes = ( - "allow-migrate", "is-managed", "interval-origin", + "allow-migrate", "maintenance", "is-managed", "interval-origin", "migration-threshold", "priority", "multiple-active", "failure-timeout", "resource-stickiness", "target-role", "restart-type", "description", "remote-node", "requires", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1463777827.9b402a8/crmsh/corosync.py new/crmsh-2.2.0+git.1464769043.9e4df55/crmsh/corosync.py --- old/crmsh-2.2.0+git.1463777827.9b402a8/crmsh/corosync.py 2016-05-23 10:25:56.000000000 +0200 +++ new/crmsh-2.2.0+git.1464769043.9e4df55/crmsh/corosync.py 2016-06-01 10:22:40.000000000 +0200 @@ -414,8 +414,7 @@ p.add('nodelist', make_section('nodelist.node', node_value)) num_nodes = p.count('nodelist.node') - if num_nodes > 2: - p.remove('quorum.two_node') + p.set('quorum.two_node', '1' if num_nodes == 2 else '0') f = open(conf(), 'w') f.write(p.to_string()) @@ -445,8 +444,7 @@ if nth == -1: return - if p.count('nodelist.node') <= 2: - p.set('quorum.two_node', '1') + p.set('quorum.two_node', '1' if num_nodes == 2 else '0') f = open(conf(), 'w') f.write(p.to_string()) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1463777827.9b402a8/crmsh/msg.py new/crmsh-2.2.0+git.1464769043.9e4df55/crmsh/msg.py --- old/crmsh-2.2.0+git.1463777827.9b402a8/crmsh/msg.py 2016-05-23 10:25:56.000000000 +0200 +++ new/crmsh-2.2.0+git.1464769043.9e4df55/crmsh/msg.py 2016-06-01 10:22:40.000000000 +0200 @@ -139,38 +139,10 @@ err_buf.error("%s not available, check your installation" % name) -def no_file_err(name): - err_buf.error("%s does not exist" % name) - - -def missing_prog_warn(name): - err_buf.warning("could not find any %s on the system" % name) - - -def node_err(msg, node): - err_buf.error("%s: %s" % (msg, etree.tostring(node, pretty_print=True))) - - -def node_debug(msg, node): - err_buf.debug("%s: %s" % (msg, etree.tostring(node, pretty_print=True))) - - -def no_attribute_err(attr, obj_type): - err_buf.error("required attribute %s not found in %s" % (attr, obj_type)) - - -def bad_def_err(what, msg): - err_buf.error("bad %s definition: %s" % (what, msg)) - - def unsupported_err(name): err_buf.error("%s is not supported" % name) -def no_such_obj_err(name): - err_buf.error("%s object is not supported" % name) - - def missing_obj_err(node): err_buf.error("object %s:%s missing (shouldn't have happened)" % (node.tag, node.get("id"))) @@ -181,10 +153,6 @@ (constraint_id, obj_id)) -def obj_exists_err(name): - err_buf.error("object %s already exists" % name) - - def no_object_err(name): err_buf.error("object %s does not exist" % name) @@ -197,10 +165,6 @@ err_buf.error("%s: id is already in use" % node_id) -def skill_err(s): - err_buf.error("%s: this command is not allowed at this skill level" % s) - - def syntax_err(s, token='', context='', msg=''): err = "syntax" if context: @@ -233,10 +197,6 @@ err_buf.info("offending string: %s" % s) -def cib_no_elem_err(el_name): - err_buf.error("CIB contains no '%s' element!" % el_name) - - def cib_ver_unsupported_err(validator, rel): err_buf.error("Unsupported CIB: validator '%s', release '%s'" % (validator, rel)) @@ -261,9 +221,5 @@ err_buf.info("offending xml: %s" % xml) -def not_impl_info(s): - err_buf.info("%s is not implemented yet" % s) - - err_buf = ErrorBuffer() # vim:ts=4:sw=4:et: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1463777827.9b402a8/crmsh/tmpfiles.py new/crmsh-2.2.0+git.1464769043.9e4df55/crmsh/tmpfiles.py --- old/crmsh-2.2.0+git.1463777827.9b402a8/crmsh/tmpfiles.py 2016-05-23 10:25:56.000000000 +0200 +++ new/crmsh-2.2.0+git.1464769043.9e4df55/crmsh/tmpfiles.py 2016-06-01 10:22:40.000000000 +0200 @@ -30,6 +30,14 @@ pass +def _mkdir(directory): + if not os.path.isdir(directory): + try: + os.makedirs(directory) + except OSError as err: + raise ValueError("Failed to create directory: %s" % (err)) + + def add(filename): ''' Remove the named file at program exit. @@ -44,12 +52,17 @@ Create a temporary file and remove it at program exit. Returns (fd, filename) ''' + _mkdir(directory) fd, fname = mkstemp(dir=directory, prefix=prefix) add(fname) return fd, fname def create_dir(directory=utils.get_tempdir(), prefix='crmsh_'): + ''' + Create a temporary directory and remove it at program exit. + ''' + _mkdir(directory) ret = mkdtemp(dir=directory, prefix=prefix) if len(_FILES) + len(_DIRS) == 0: atexit.register(_exit_handler) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1463777827.9b402a8/crmsh/xmlutil.py new/crmsh-2.2.0+git.1464769043.9e4df55/crmsh/xmlutil.py --- old/crmsh-2.2.0+git.1463777827.9b402a8/crmsh/xmlutil.py 2016-05-23 10:25:56.000000000 +0200 +++ new/crmsh-2.2.0+git.1464769043.9e4df55/crmsh/xmlutil.py 2016-06-01 10:22:40.000000000 +0200 @@ -13,7 +13,7 @@ from . import options from . import schema from . import constants -from .msg import common_err, common_error, common_debug, cib_parse_err, err_buf +from .msg import common_err, common_error, common_warn, common_debug, cib_parse_err, err_buf from . import userdir from . import utils from .utils import add_sudo, str2file, str2tmp, get_boolean @@ -135,8 +135,8 @@ for nvpair in node.iterchildren("nvpair"): n = nvpair.get("name") if n and n not in attr_list: - common_err("%s: attribute %s does not exist" % (ident, n)) - rc |= utils.get_check_rc() + common_warn("%s: unknown attribute '%s'" % (ident, n)) + rc |= 1 return rc diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1463777827.9b402a8/scripts/init/basic.cib.template new/crmsh-2.2.0+git.1464769043.9e4df55/scripts/init/basic.cib.template --- old/crmsh-2.2.0+git.1463777827.9b402a8/scripts/init/basic.cib.template 2016-05-23 10:25:56.000000000 +0200 +++ new/crmsh-2.2.0+git.1464769043.9e4df55/scripts/init/basic.cib.template 2016-06-01 10:22:40.000000000 +0200 @@ -1,13 +1,12 @@ # Note: STONITH must be enabled for proper functionality! -property $id="cib-bootstrap-options" \ - stonith-enabled="false" \ - no-quorum-policy="%(no_quorum_policy)s" \ - placement-strategy="balanced" +property cib-bootstrap-options: \ + stonith-enabled=false \ + placement-strategy=balanced -op_defaults $id="op-options" \ - timeout="600" \ - record-pending="true" +op_defaults op-options: \ + timeout=600 \ + record-pending=true -rsc_defaults $id="rsc-options" \ - resource-stickiness="1" \ - migration-threshold="3" +rsc_defaults rsc-options: \ + resource-stickiness=1 \ + migration-threshold=3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1463777827.9b402a8/scripts/init/configure.py new/crmsh-2.2.0+git.1464769043.9e4df55/scripts/init/configure.py --- old/crmsh-2.2.0+git.1463777827.9b402a8/scripts/init/configure.py 2016-05-23 10:25:56.000000000 +0200 +++ new/crmsh-2.2.0+git.1464769043.9e4df55/scripts/init/configure.py 2016-06-01 10:22:40.000000000 +0200 @@ -91,16 +91,14 @@ } """ % (node, i + 1) - quorum_txt = "" - if len(nodelist) == 1: - quorum_txt = '' - if len(nodelist) == 2: - quorum_txt = """ two_node: 1 -""" - else: - quorum_txt = """ provider: corosync_votequorum + twonode = 1 if len(nodelist) == 2 else 0 + expected_votes = len(nodelist) + + quorum_txt = """ + provider: corosync_votequorum + two_node: %s expected_votes: %s -""" % ((len(nodelist) / 2) + 1) + """ % (twonode, expected_votes) try: crm_script.save_template('./corosync.conf.template', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1463777827.9b402a8/scripts/init/init.py new/crmsh-2.2.0+git.1464769043.9e4df55/scripts/init/init.py --- old/crmsh-2.2.0+git.1463777827.9b402a8/scripts/init/init.py 2016-05-23 10:25:56.000000000 +0200 +++ new/crmsh-2.2.0+git.1464769043.9e4df55/scripts/init/init.py 2016-06-01 10:22:40.000000000 +0200 @@ -17,13 +17,8 @@ try: nodelist = crm_script.param('nodes') - if len(nodelist) < 3: - policy = 'ignore' - else: - policy = 'stop' crm_script.save_template('./basic.cib.template', - './basic.cib', - no_quorum_policy=policy) + './basic.cib') except IOError, e: crm_script.exit_fail("IO error: %s" % (str(e))) except ValueError, e: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1463777827.9b402a8/test/unittests/test_cliformat.py new/crmsh-2.2.0+git.1464769043.9e4df55/test/unittests/test_cliformat.py --- old/crmsh-2.2.0+git.1463777827.9b402a8/test/unittests/test_cliformat.py 2016-05-23 10:25:56.000000000 +0200 +++ new/crmsh-2.2.0+git.1464769043.9e4df55/test/unittests/test_cliformat.py 2016-06-01 10:22:40.000000000 +0200 @@ -259,6 +259,11 @@ @with_setup(setup_func, teardown_func) +def test_locrule(): + roundtrip('location loc-testfs-with-eth1 testfs rule ethmonitor-eth1 eq 1') + + +@with_setup(setup_func, teardown_func) def test_is_value_sane(): roundtrip('''primitive p1 dummy params state="bo'o"''')
