Hello community, here is the log from the commit of package crmsh for openSUSE:Factory checked in at 2015-08-31 22:59:25 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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 2015-08-28 08:27:17.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.crmsh.new/crmsh.changes 2015-08-31 22:59:27.000000000 +0200 @@ -1,0 +2,9 @@ +Mon Aug 31 06:45:13 UTC 2015 - kgronlund@suse.com + +- Update to version 2.2.0~rc3+git.1440887645.cd6ac8a: + + doc: Clarify documentation for colocations using node-attribute + + high: parse: Fix crash when referencing score types by name (bsc#940194) + + low: scripts: Improved script parameter validation + + medium: scripts: Add MailTo script + +------------------------------------------------------------------- Old: ---- crmsh-2.2.0~rc3+git.1440626270.8872dbc.tar.bz2 New: ---- crmsh-2.2.0~rc3+git.1440887645.cd6ac8a.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ crmsh.spec ++++++ --- /var/tmp/diff_new_pack.eqIzqs/_old 2015-08-31 22:59:28.000000000 +0200 +++ /var/tmp/diff_new_pack.eqIzqs/_new 2015-08-31 22:59:28.000000000 +0200 @@ -36,7 +36,7 @@ Summary: High Availability cluster command-line interface License: GPL-2.0+ Group: %{pkg_group} -Version: 2.2.0~rc3+git.1440626270.8872dbc +Version: 2.2.0~rc3+git.1440887645.cd6ac8a Release: 0 Url: http://crmsh.github.io Source0: %{name}-%{version}.tar.bz2 ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.eqIzqs/_old 2015-08-31 22:59:28.000000000 +0200 +++ /var/tmp/diff_new_pack.eqIzqs/_new 2015-08-31 22:59:28.000000000 +0200 @@ -1,4 +1,4 @@ <servicedata> <service name="tar_scm"> <param name="url">git://github.com/ClusterLabs/crmsh.git</param> - <param name="changesrevision">8872dbc78204535d7b544393bef03c7bf485441f</param></service></servicedata> \ No newline at end of file + <param name="changesrevision">cd6ac8af585a2f35074fcdeafba7a8e50bcd568f</param></service></servicedata> \ No newline at end of file ++++++ crmsh-2.2.0~rc3+git.1440626270.8872dbc.tar.bz2 -> crmsh-2.2.0~rc3+git.1440887645.cd6ac8a.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0~rc3+git.1440626270.8872dbc/doc/crm.8.adoc new/crmsh-2.2.0~rc3+git.1440887645.cd6ac8a/doc/crm.8.adoc --- old/crmsh-2.2.0~rc3+git.1440626270.8872dbc/doc/crm.8.adoc 2015-08-27 00:01:24.000000000 +0200 +++ new/crmsh-2.2.0~rc3+git.1440887645.cd6ac8a/doc/crm.8.adoc 2015-08-31 08:45:12.000000000 +0200 @@ -2608,8 +2608,11 @@ Sets cannot be nested. -The optional +node-attribute+ references an attribute in nodes' -instance attributes. +The optional +node-attribute+ can be used to colocate resources on a +set of nodes and not necessarily on the same node. For example, by +setting a node attribute +color+ on all nodes and setting the ++node-attribute+ value to +color+ as well, the colocated resources +will be placed on any node that has the same color. For more details on how to configure resource sets, see <<topics_Features_Resourcesets,`Syntax: Resource sets`>>. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0~rc3+git.1440626270.8872dbc/modules/parse.py new/crmsh-2.2.0~rc3+git.1440887645.cd6ac8a/modules/parse.py --- old/crmsh-2.2.0~rc3+git.1440626270.8872dbc/modules/parse.py 2015-08-27 00:01:24.000000000 +0200 +++ new/crmsh-2.2.0~rc3+git.1440887645.cd6ac8a/modules/parse.py 2015-08-31 08:45:12.000000000 +0200 @@ -495,7 +495,7 @@ def validate_score(self, score, noattr=False): if not noattr and score in olist(constants.score_types): - return constants.score_types[score.lower()] + return ["score", constants.score_types[score.lower()]] elif re.match("^[+-]?(inf(inity)?|INF(INITY)?|[0-9]+)$", score): score = re.sub("inf(inity)?|INF(INITY)?", "INFINITY", score) return ["score", score] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0~rc3+git.1440626270.8872dbc/modules/scripts.py new/crmsh-2.2.0~rc3+git.1440887645.cd6ac8a/modules/scripts.py --- old/crmsh-2.2.0~rc3+git.1440626270.8872dbc/modules/scripts.py 2015-08-27 00:01:24.000000000 +0200 +++ new/crmsh-2.2.0~rc3+git.1440887645.cd6ac8a/modules/scripts.py 2015-08-31 08:45:12.000000000 +0200 @@ -1272,11 +1272,11 @@ elif type == 'integer': ok, _ = _valid_integer(value) if not ok: - errors.append("%s=%s is not %s" % (param.get('name'), value, type)) + errors.append("%s=%s is not an integer" % (param.get('name'), value)) elif type == 'port': ok, ival = _valid_integer(value) if not ok: - errors.append("%s=%s is not %s" % (param.get('name'), value, type)) + errors.append("%s=%s is not a valid port" % (param.get('name'), value)) if ival < 0 or ival > 65535: errors.append("%s=%s is out of port range" % (param.get('name'), value)) elif type == 'string': @@ -1291,18 +1291,18 @@ errors.append("%s=%s %s" % (param.get('name'), value, str(e))) elif type == 'ip_address': if not _valid_ip(value): - errors.append("%s=%s is not %s" % (param.get('name'), value, type)) + errors.append("%s=%s is not an IP address" % (param.get('name'), value)) elif type == 'email': - if not re.match(r'[^@]+@[^@]+\.[^@]+', value): - errors.append("%s=%s is not %s" % (param.get('value'), value, type)) + if not re.match(r'[^@]+@[^@]+', value): + errors.append("%s=%s is not a valid email address" % (param.get('value'), value)) elif type == 'ip_network': sp = value.rsplit('/', 1) if len(sp) == 1 and not (is_valid_ipv4_address(value) or is_valid_ipv6_address(value)): - errors.append("%s=%s is not %s" % (param.get('name'), value, type)) + errors.append("%s=%s is not a valid IP network" % (param.get('name'), value)) elif len(sp) == 2 and (not _valid_ip(sp[0]) or not _valid_integer(sp[1])): - errors.append("%s=%s is not %s" % (param.get('name'), value, type)) + errors.append("%s=%s is not a valid IP network" % (param.get('name'), value)) else: - errors.append("%s=%s is not %s" % (param.get('name'), value, type)) + errors.append("%s=%s is not a valid IP network" % (param.get('name'), value)) else: errors.append("%s=%s is unknown type %s" % (param.get('name'), value, type)) return value diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0~rc3+git.1440626270.8872dbc/scripts/mailto/main.yml new/crmsh-2.2.0~rc3+git.1440887645.cd6ac8a/scripts/mailto/main.yml --- old/crmsh-2.2.0~rc3+git.1440626270.8872dbc/scripts/mailto/main.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/crmsh-2.2.0~rc3+git.1440887645.cd6ac8a/scripts/mailto/main.yml 2015-08-31 08:45:12.000000000 +0200 @@ -0,0 +1,25 @@ +--- +- version: 2.2 + shortdesc: MailTo + category: Basic + include: + - agent: ocf:heartbeat:MailTo + name: mailto + parameters: + - name: id + type: resource + required: true + - name: email + type: email + required: true + - name: subject + type: string + required: false + ops: | + op start timeout="10" + op stop timeout="10" + op monitor interval="10" timeout="10" + actions: + - include: mailto + - cib: | + clone c-{{id}} {{id}}