Hello community, here is the log from the commit of package crmsh for openSUSE:Factory checked in at 2016-03-26 15:24:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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-03-17 16:48:13.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.crmsh.new/crmsh.changes 2016-03-26 15:24:49.000000000 +0100 @@ -1,0 +2,16 @@ +Mon Mar 21 08:16:46 UTC 2016 - [email protected] + +- Update to version 2.2.0+git.1458546035.5df0420: + + medium: scripts: SBD wizard which configures SBD itself (fate#318320) + + medium: main: Add -o|--opt to pass extra options for crmsh + + medium: hb_report: Add timeout to SSH connection (bsc#971690) + + low: command: handle stray regex characters in input + + low: scripts: Clean up various scripts + +------------------------------------------------------------------- +Wed Mar 16 17:03:21 UTC 2016 - [email protected] + +- Fix build-compare by only touching files with timestamps in the future + and by not including the rebuild counter in hb_report + +------------------------------------------------------------------- Old: ---- crmsh-2.2.0+git.1458042315.389d264.tar.bz2 New: ---- crmsh-2.2.0+git.1458546035.5df0420.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ crmsh.spec ++++++ --- /var/tmp/diff_new_pack.ahnQih/_old 2016-03-26 15:24:50.000000000 +0100 +++ /var/tmp/diff_new_pack.ahnQih/_new 2016-03-26 15:24:50.000000000 +0100 @@ -36,7 +36,7 @@ Summary: High Availability cluster command-line interface License: GPL-2.0+ Group: %{pkg_group} -Version: 2.2.0+git.1458042315.389d264 +Version: 2.2.0+git.1458546035.5df0420 Release: 0 Url: http://crmsh.github.io Source0: %{name}-%{version}.tar.bz2 @@ -144,7 +144,7 @@ # This can result in files having been created in the future # when building on machines in timezones 'behind' the one the # commit occurred in - which seriously confuses 'make' -find . -exec touch \{\} \; +find . -mtime -0 -exec touch \{\} \; %build ./autogen.sh @@ -152,10 +152,10 @@ %{configure} \ --sysconfdir=%{_sysconfdir} \ --localstatedir=%{_var} \ - --with-version=%{version}-%{release} \ + --with-version=%{version} \ --docdir=%{crmsh_docdir} -make %{_smp_mflags} VERSION="%{version}-%{release}" sysconfdir=%{_sysconfdir} localstatedir=%{_var} +make %{_smp_mflags} VERSION="%{version}" sysconfdir=%{_sysconfdir} localstatedir=%{_var} %if 0%{?with_regression_tests} ./test/run --quiet ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.ahnQih/_old 2016-03-26 15:24:50.000000000 +0100 +++ /var/tmp/diff_new_pack.ahnQih/_new 2016-03-26 15:24:50.000000000 +0100 @@ -1,4 +1,4 @@ <servicedata> <service name="tar_scm"> <param name="url">git://github.com/ClusterLabs/crmsh.git</param> - <param name="changesrevision">389d264af0fe7c8bd8eb304e8afd0a02a0186cbc</param></service></servicedata> \ No newline at end of file + <param name="changesrevision">5df0420c4bde1f550f5476c9540d5fc0a92105f1</param></service></servicedata> \ No newline at end of file ++++++ crmsh-2.2.0+git.1458042315.389d264.tar.bz2 -> crmsh-2.2.0+git.1458546035.5df0420.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1458042315.389d264/crmsh/command.py new/crmsh-2.2.0+git.1458546035.5df0420/crmsh/command.py --- old/crmsh-2.2.0+git.1458042315.389d264/crmsh/command.py 2016-03-15 12:49:51.000000000 +0100 +++ new/crmsh-2.2.0+git.1458546035.5df0420/crmsh/command.py 2016-03-21 09:16:45.000000000 +0100 @@ -205,12 +205,15 @@ import re def fuzzy_match(rx): - matcher = re.compile(rx, re.I) - matches = [c - for m, c in items.iteritems() - if matcher.match(m)] - if len(matches) == 1: - return matches[0] + try: + matcher = re.compile(rx, re.I) + matches = [c + for m, c in items.iteritems() + if matcher.match(m)] + if len(matches) == 1: + return matches[0] + except re.error as e: + raise ValueError(e) return None # prefix match diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1458042315.389d264/crmsh/handles.py new/crmsh-2.2.0+git.1458546035.5df0420/crmsh/handles.py --- old/crmsh-2.2.0+git.1458042315.389d264/crmsh/handles.py 2016-03-15 12:49:51.000000000 +0100 +++ new/crmsh-2.2.0+git.1458546035.5df0420/crmsh/handles.py 2016-03-21 09:16:45.000000000 +0100 @@ -4,7 +4,7 @@ import re -_head_re = re.compile(r'\{\{(\#|\^)?([A-Za-z0-9\#\$:_-]+)\}\}') +headmatcher = re.compile(r'\{\{(\#|\^)?([A-Za-z0-9\#\$:_-]+)\}\}') class value(object): @@ -75,7 +75,7 @@ def _parse(template, context, strict): ret = "" while template: - head = _head_re.search(template) + head = headmatcher.search(template) if head is None: ret += template break diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1458042315.389d264/crmsh/main.py new/crmsh-2.2.0+git.1458546035.5df0420/crmsh/main.py --- old/crmsh-2.2.0+git.1458042315.389d264/crmsh/main.py 2016-03-15 12:49:51.000000000 +0100 +++ new/crmsh-2.2.0+git.1458546035.5df0420/crmsh/main.py 2016-03-21 09:16:45.000000000 +0100 @@ -127,6 +127,10 @@ "of directories separated by semi-colons (e.g. /dir1;/dir2;etc.).") parser.add_option("-X", dest="profile", metavar="PROFILE", help="Collect profiling data and save in PROFILE.") + parser.add_option("-o", "--opt", action="append", type="string", metavar="OPTION=VALUE", + help="Set crmsh option temporarily. If the options are saved using" + + "+options save+ then the value passed here will also be saved." + + "Multiple options can be set by using +-o+ multiple times.") return parser @@ -307,6 +311,13 @@ options.shadow = opts.cib or options.shadow options.scriptdir = opts.scriptdir or options.scriptdir options.ask_no = opts.ask_no + for opt in opts.opt or []: + try: + k, v = opt.split('=') + s, n = k.split('.') + config.set_option(s, n, v) + except ValueError as e: + raise ValueError("Expected -o <section>.<name>=<value>: %s" % (e)) return args diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1458042315.389d264/crmsh/scripts.py new/crmsh-2.2.0+git.1458546035.5df0420/crmsh/scripts.py --- old/crmsh-2.2.0+git.1458042315.389d264/crmsh/scripts.py 2016-03-15 12:49:51.000000000 +0100 +++ new/crmsh-2.2.0+git.1458546035.5df0420/crmsh/scripts.py 2016-03-21 09:16:45.000000000 +0100 @@ -204,14 +204,22 @@ action['longdesc'] = '' else: action['longdesc'] = Text.desc(script, action['longdesc']) + + hre = handles.headmatcher + if 'when' in action: when = action['when'] - if re.search(r'\{\{.*\}\}', when): + if hre.search(when): action['when'] = Text(script, when) elif when: action['when'] = Text(script, '{{%s}}' % (when)) else: del action['when'] + for k, v in action.iteritems(): + if isinstance(v, basestring) and hre.search(v): + v = Text(script, v) + if Text.isa(v): + action[k] = str(v).strip() @staticmethod def _mergeable(action): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1458042315.389d264/crmsh/ui_script.py new/crmsh-2.2.0+git.1458546035.5df0420/crmsh/ui_script.py --- old/crmsh-2.2.0+git.1458042315.389d264/crmsh/ui_script.py 2016-03-15 12:49:51.000000000 +0100 +++ new/crmsh-2.2.0+git.1458546035.5df0420/crmsh/ui_script.py 2016-03-21 09:16:45.000000000 +0100 @@ -159,12 +159,17 @@ _set(ret, key.split(':'), val) return ret +_fixups = { + 'wizard': 'Legacy Wizards', + 'sap': 'SAP', + 'nfs': 'NFS' +} + def _category_pretty(c): - if str(c).lower() == 'wizard': - return "Wizard (Legacy)" - elif str(c).lower() == 'sap': - return "SAP" + v = _fixups.get(str(c).lower()) + if v is not None: + return v return str(c).capitalize() @@ -445,11 +450,14 @@ return False else: for action in actions: - print(json.dumps({'name': str(action.get('name', '')), - 'shortdesc': str(action.get('shortdesc', '')), - 'longdesc': str(action.get('longdesc', '')), - 'text': str(action.get('text', '')), - 'nodes': str(action.get('nodes', ''))})) + obj = {'name': str(action.get('name', '')), + 'shortdesc': str(action.get('shortdesc', '')), + 'longdesc': str(action.get('longdesc', '')), + 'text': str(action.get('text', '')), + 'nodes': str(action.get('nodes', ''))} + if 'sudo' in action: + obj['sudo'] = action['sudo'] + print(json.dumps(obj)) return True def _json_run(self, context, cmd): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1458042315.389d264/data-manifest new/crmsh-2.2.0+git.1458546035.5df0420/data-manifest --- old/crmsh-2.2.0+git.1458042315.389d264/data-manifest 2016-03-15 12:49:51.000000000 +0100 +++ new/crmsh-2.2.0+git.1458546035.5df0420/data-manifest 2016-03-21 09:16:45.000000000 +0100 @@ -47,6 +47,7 @@ scripts/sapinstance/main.yml scripts/sap-simple-stack/main.yml scripts/sap-simple-stack-plus/main.yml +scripts/sbd-device/main.yml scripts/sbd/main.yml scripts/virtual-ip/main.yml templates/apache @@ -74,6 +75,7 @@ test/evaltest.sh test/history-test.tar.bz2 test/list-undocumented-commands.py +test/profile-history.sh test/README.regression test/regression.sh test/run diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1458042315.389d264/doc/crm.8.adoc new/crmsh-2.2.0+git.1458546035.5df0420/doc/crm.8.adoc --- old/crmsh-2.2.0+git.1458042315.389d264/doc/crm.8.adoc 2016-03-15 12:49:51.000000000 +0100 +++ new/crmsh-2.2.0+git.1458546035.5df0420/doc/crm.8.adoc 2016-03-21 09:16:45.000000000 +0100 @@ -97,6 +97,11 @@ Extra directory where crm looks for cluster scripts, or a list of directories separated by semi-colons (e.g. +/dir1;/dir2;etc.+). +*-o, --opt*='OPTION=VALUE':: + Set crmsh option temporarily. If the options are saved using + +options save+ then the value passed here will also be saved. + Multiple options can be set by using +-o+ multiple times. + [[topics_Introduction,Introduction]] == Introduction @@ -4359,7 +4364,7 @@ Example: ............... -crm(live)history# timeframe "Jul 18 12:00" "Jul 18 12:30" +crm(live)history# limit "Jul 18 12:00" "Jul 18 12:30" crm(live)history# session save strange_restart crm(live)history# session pack Report saved in .../strange_restart.tar.bz2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1458042315.389d264/doc/website-v1/man-1.2.adoc new/crmsh-2.2.0+git.1458546035.5df0420/doc/website-v1/man-1.2.adoc --- old/crmsh-2.2.0+git.1458042315.389d264/doc/website-v1/man-1.2.adoc 2016-03-15 12:49:51.000000000 +0100 +++ new/crmsh-2.2.0+git.1458546035.5df0420/doc/website-v1/man-1.2.adoc 2016-03-21 09:16:45.000000000 +0100 @@ -2982,7 +2982,7 @@ from developers or your support, the `session pack` command can help create a report. This is an example: ............... - crm(live)history# timeframe "Jul 18 12:00" "Jul 18 12:30" + crm(live)history# limit "Jul 18 12:00" "Jul 18 12:30" crm(live)history# session save strange_restart crm(live)history# session pack Report saved in .../strange_restart.tar.bz2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1458042315.389d264/doc/website-v1/man-2.0.adoc new/crmsh-2.2.0+git.1458546035.5df0420/doc/website-v1/man-2.0.adoc --- old/crmsh-2.2.0+git.1458042315.389d264/doc/website-v1/man-2.0.adoc 2016-03-15 12:49:51.000000000 +0100 +++ new/crmsh-2.2.0+git.1458546035.5df0420/doc/website-v1/man-2.0.adoc 2016-03-21 09:16:45.000000000 +0100 @@ -4335,7 +4335,7 @@ Example: ............... -crm(live)history# timeframe "Jul 18 12:00" "Jul 18 12:30" +crm(live)history# limit "Jul 18 12:00" "Jul 18 12:30" crm(live)history# session save strange_restart crm(live)history# session pack Report saved in .../strange_restart.tar.bz2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1458042315.389d264/hb_report/hb_report.in new/crmsh-2.2.0+git.1458546035.5df0420/hb_report/hb_report.in --- old/crmsh-2.2.0+git.1458042315.389d264/hb_report/hb_report.in 2016-03-15 12:49:51.000000000 +0100 +++ new/crmsh-2.2.0+git.1458546035.5df0420/hb_report/hb_report.in 2016-03-21 09:16:45.000000000 +0100 @@ -25,7 +25,7 @@ export LOGD_CF SSH_PASSWORD_NODES="" -: ${SSH_OPTS="-o StrictHostKeyChecking=no -o EscapeChar=none"} +: ${SSH_OPTS="-o StrictHostKeyChecking=no -o EscapeChar=none -o ConnectTimeout=15"} LOG_PATTERNS="CRIT: ERROR:" # PEINPUTS_PATT="peng.*PEngine Input stored" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1458042315.389d264/scripts/exportfs/main.yml new/crmsh-2.2.0+git.1458546035.5df0420/scripts/exportfs/main.yml --- old/crmsh-2.2.0+git.1458042315.389d264/scripts/exportfs/main.yml 2016-03-15 12:49:51.000000000 +0100 +++ new/crmsh-2.2.0+git.1458546035.5df0420/scripts/exportfs/main.yml 2016-03-21 09:16:45.000000000 +0100 @@ -1,6 +1,6 @@ version: 2.2 shortdesc: "NFS Exported File System" -category: Server +category: NFS include: - agent: ocf:heartbeat:exportfs parameters: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1458042315.389d264/scripts/gfs2/main.yml new/crmsh-2.2.0+git.1458546035.5df0420/scripts/gfs2/main.yml --- old/crmsh-2.2.0+git.1458042315.389d264/scripts/gfs2/main.yml 2016-03-15 12:49:51.000000000 +0100 +++ new/crmsh-2.2.0+git.1458546035.5df0420/scripts/gfs2/main.yml 2016-03-21 09:16:45.000000000 +0100 @@ -34,17 +34,15 @@ actions: - include: gfs2-base - cib: | - primitive {{id}} ocf:heartbeat:Filesystem - params + primitive {{id}} Filesystem directory="{{directory}}" - fstype="gfs2" device="{{device}}" + fstype=gfs2 {{#options}}options="{{options}}"{{/options}} - - monitor {{id}} 20:40 + op monitor interval=20s timeout=40s clone c-{{id}} {{id}} - meta interleave="true" ordered="true" + meta interleave=true ordered=true - crm: "configure modgroup {{gfs2-base:clvm-group}} add c-{{id}}" shortdesc: Add cloned file system to cLVM group diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1458042315.389d264/scripts/gfs2-base/main.yml new/crmsh-2.2.0+git.1458546035.5df0420/scripts/gfs2-base/main.yml --- old/crmsh-2.2.0+git.1458042315.389d264/scripts/gfs2-base/main.yml 2016-03-15 12:49:51.000000000 +0100 +++ new/crmsh-2.2.0+git.1458546035.5df0420/scripts/gfs2-base/main.yml 2016-03-21 09:16:45.000000000 +0100 @@ -3,7 +3,7 @@ # # License: GNU General Public License (GPL) version: 2.2 -category: File System +category: Script shortdesc: GFS2 File System Base (Cloned) longdesc: | This template generates a cloned instance of the GFS2 file system. @@ -20,7 +20,7 @@ primitive gfs-controld ocf:pacemaker:controld clone c-gfs gfs-controld - meta interleave="true" ordered="true" + meta interleave=true ordered=true - crm: configure modgroup {{clvm-group}} add c-gfs shortdesc: Add gfs controld to cLVM group diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1458042315.389d264/scripts/lvm-drbd/main.yml new/crmsh-2.2.0+git.1458546035.5df0420/scripts/lvm-drbd/main.yml --- old/crmsh-2.2.0+git.1458042315.389d264/scripts/lvm-drbd/main.yml 2016-03-15 12:49:51.000000000 +0100 +++ new/crmsh-2.2.0+git.1458546035.5df0420/scripts/lvm-drbd/main.yml 2016-03-21 09:16:45.000000000 +0100 @@ -4,7 +4,7 @@ version: 2.2 category: File System shortdesc: LVM Group on DRBD -longdesc: > +longdesc: | Configure a LVM resource group on top of DRBD. A DRBD primitive and Multi-state resource is used to replicate diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1458042315.389d264/scripts/mailto/main.yml new/crmsh-2.2.0+git.1458546035.5df0420/scripts/mailto/main.yml --- old/crmsh-2.2.0+git.1458042315.389d264/scripts/mailto/main.yml 2016-03-15 12:49:51.000000000 +0100 +++ new/crmsh-2.2.0+git.1458546035.5df0420/scripts/mailto/main.yml 2016-03-21 09:16:45.000000000 +0100 @@ -1,5 +1,7 @@ version: 2.2 -shortdesc: MailTo +shortdesc: E-Mail +longdesc: | + Notifies recipient by e-mail in the event of a resource takeover. category: Basic include: - agent: ocf:heartbeat:MailTo diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1458042315.389d264/scripts/nfsserver/main.yml new/crmsh-2.2.0+git.1458546035.5df0420/scripts/nfsserver/main.yml --- old/crmsh-2.2.0+git.1458042315.389d264/scripts/nfsserver/main.yml 2016-03-15 12:49:51.000000000 +0100 +++ new/crmsh-2.2.0+git.1458546035.5df0420/scripts/nfsserver/main.yml 2016-03-21 09:16:45.000000000 +0100 @@ -2,9 +2,9 @@ # # License: GNU General Public License (GPL) version: 2.2 -category: Server +category: NFS shortdesc: NFS Server -longdesc: > +longdesc: | Configure an NFS server. Requires an existing file system resource, for example a file system running on LVM on DRBD. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1458042315.389d264/scripts/nfsserver-lvm-drbd/main.yml new/crmsh-2.2.0+git.1458546035.5df0420/scripts/nfsserver-lvm-drbd/main.yml --- old/crmsh-2.2.0+git.1458042315.389d264/scripts/nfsserver-lvm-drbd/main.yml 2016-03-15 12:49:51.000000000 +0100 +++ new/crmsh-2.2.0+git.1458546035.5df0420/scripts/nfsserver-lvm-drbd/main.yml 2016-03-21 09:16:45.000000000 +0100 @@ -2,9 +2,9 @@ # # License: GNU General Public License (GPL) version: 2.2 -category: Server +category: NFS shortdesc: NFS Server on LVM and DRBD -longdesc: > +longdesc: | Configure a highly available two-node NFS server on top of LVM and DRBD. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1458042315.389d264/scripts/ocfs2/main.yml new/crmsh-2.2.0+git.1458546035.5df0420/scripts/ocfs2/main.yml --- old/crmsh-2.2.0+git.1458042315.389d264/scripts/ocfs2/main.yml 2016-03-15 12:49:51.000000000 +0100 +++ new/crmsh-2.2.0+git.1458546035.5df0420/scripts/ocfs2/main.yml 2016-03-21 09:16:45.000000000 +0100 @@ -5,7 +5,7 @@ version: 2.2 category: File System shortdesc: OCFS2 File System -longdesc: > +longdesc: | Configure an OCFS2 File System resource and add it to a cloned DLM base group. OCFS2 uses the cluster membership services from Pacemaker which diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1458042315.389d264/scripts/sap-simple-stack/main.yml new/crmsh-2.2.0+git.1458546035.5df0420/scripts/sap-simple-stack/main.yml --- old/crmsh-2.2.0+git.1458042315.389d264/scripts/sap-simple-stack/main.yml 2016-03-15 12:49:51.000000000 +0100 +++ new/crmsh-2.2.0+git.1458546035.5df0420/scripts/sap-simple-stack/main.yml 2016-03-21 09:16:45.000000000 +0100 @@ -1,7 +1,7 @@ --- version: 2.2 category: SAP -shortdesc: SAP Simple Stack Instance +shortdesc: SAP SimpleStack Instance longdesc: | Configure a SAP instance including: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1458042315.389d264/scripts/sbd/main.yml new/crmsh-2.2.0+git.1458546035.5df0420/scripts/sbd/main.yml --- old/crmsh-2.2.0+git.1458042315.389d264/scripts/sbd/main.yml 2016-03-15 12:49:51.000000000 +0100 +++ new/crmsh-2.2.0+git.1458546035.5df0420/scripts/sbd/main.yml 2016-03-21 09:16:45.000000000 +0100 @@ -16,13 +16,20 @@ parameters: - name: id shortdesc: Resource ID (Name) - example: stonith-sbd + value: sbd-fencing + example: sbd-fencing required: true type: resource +include: + - script: sbd-device + required: false + actions: + - include: sbd-device + - cib: | primitive {{id}} stonith:external/sbd - op start start-delay=15s timeout=60s + pcmk_delay_max=30s property stonith-enabled=true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1458042315.389d264/scripts/sbd-device/main.yml new/crmsh-2.2.0+git.1458546035.5df0420/scripts/sbd-device/main.yml --- old/crmsh-2.2.0+git.1458042315.389d264/scripts/sbd-device/main.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/crmsh-2.2.0+git.1458546035.5df0420/scripts/sbd-device/main.yml 2016-03-21 09:16:45.000000000 +0100 @@ -0,0 +1,63 @@ +# Copyright (C) 2016 Kristoffer Gronlund +# +# License: GNU General Public License (GPL) +version: 2.2 +category: Script +shortdesc: "Create SBD Device" +longdesc: | + Optional step to initialize and configure the SBD Device. + + Prerequisites: + + * The environment must have shared storage reachable by all nodes. + +parameters: + - name: device + shortdesc: Shared Storage Device + example: /dev/disk/by-id/... + required: true + type: string + + - name: watchdog + shortdesc: Watchdog Device + value: /dev/watchdog + type: string + +actions: + - shortdesc: Verify configuration + sudo: true + call: | + #!/bin/sh + set -e + systemctl is-active --quiet sbd && { echo "ERROR: SBD daemon is already running"; exit 1; } || true + test -b "{{device}}" || { echo "ERROR: Not a device: {{device}"; exit 1; } + lsmod | egrep "(wd|dog)" || { echo "ERROR: No watchdog kernel module loaded"; exit 1; } + test -b "{{watchdog}}" || { echo "ERROR: Not a device: {{watchdog}}"; exit 1; } + + - shortdesc: Initialize the SBD device + sudo: true + nodes: local + call: | + #!/bin/sh + set -e + sbd -d "{{device}}" create + + - shortdesc: Verify SBD Device + call: | + #!/bin/sh + sbd -d "{{device}}" list + + - shortdesc: Configure SBD Daemon + sudo: true + call: | + #!/bin/sh + [ -f "/etc/sysconfig/sbd" ] && rm -f /etc/sysconfig/sbd || true + <<EOF + SBD_DEVICE="{{device}}" + SBD_WATCHDOG="yes" + SBD_WATCHDOG_DEV="{{watchdog}}" + EOF > /etc/sysconfig/sbd + + - shortdesc: Enable SBD Daemon + service: + - sbd: start diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1458042315.389d264/test/testcases/scripts.exp new/crmsh-2.2.0+git.1458546035.5df0420/test/testcases/scripts.exp --- old/crmsh-2.2.0+git.1458042315.389d264/test/testcases/scripts.exp 2016-03-15 12:49:51.000000000 +0100 +++ new/crmsh-2.2.0+git.1458546035.5df0420/test/testcases/scripts.exp 2016-03-21 09:16:45.000000000 +0100 @@ -14,7 +14,7 @@ .EXT crm_resource --show-metadata ocf:heartbeat:Raid1 Basic: -mailto MailTo +mailto E-Mail virtual-ip Virtual IP Database: @@ -31,11 +31,16 @@ drbd DRBD Block Device filesystem File System (mount point) gfs2 GFS2 File System (Cloned) -gfs2-base GFS2 File System Base (Cloned) lvm-drbd LVM Group on DRBD ocfs2 OCFS2 File System raid-lvm RAID Hosting LVM +NFS: + +exportfs NFS Exported File System +nfsserver NFS Server +nfsserver-lvm-drbd NFS Server on LVM and DRBD + SAP: sap-as SAP ASCS Instance @@ -47,9 +52,6 @@ Server: apache Apache Webserver -exportfs NFS Exported File System -nfsserver NFS Server -nfsserver-lvm-drbd NFS Server on LVM and DRBD Stonith: @@ -61,7 +63,7 @@ ERROR: 3: Error when loading script haproxy: No meta-data for agent: systemd:haproxy Basic: -mailto MailTo +mailto E-Mail virtual-ip Virtual IP Database: @@ -78,11 +80,16 @@ drbd DRBD Block Device filesystem File System (mount point) gfs2 GFS2 File System (Cloned) -gfs2-base GFS2 File System Base (Cloned) lvm-drbd LVM Group on DRBD ocfs2 OCFS2 File System raid-lvm RAID Hosting LVM +NFS: + +exportfs NFS Exported File System +nfsserver NFS Server +nfsserver-lvm-drbd NFS Server on LVM and DRBD + SAP: sap-as SAP ASCS Instance @@ -95,6 +102,7 @@ add Add a new node to an already existing cluster check-uptime Check uptime of nodes +gfs2-base GFS2 File System Base (Cloned) health Check the health of the cluster init Initialize a new cluster lvm Controls the availability of an LVM Volume Group @@ -102,13 +110,11 @@ remove Remove node from cluster sapdb SAP Database Instance sapinstance SAP Instance +sbd-device Create SBD Device Server: apache Apache Webserver -exportfs NFS Exported File System -nfsserver NFS Server -nfsserver-lvm-drbd NFS Server on LVM and DRBD Stonith: @@ -152,6 +158,7 @@ sapdb sapinstance sbd +sbd-device virtual-ip .INP: list names all add @@ -189,6 +196,7 @@ sapdb sapinstance sbd +sbd-device virtual-ip .INP: list all names add @@ -226,15 +234,15 @@ sapdb sapinstance sbd +sbd-device virtual-ip .INP: list bogus ERROR: 7: script.list: Unexpected argument 'bogus': expected [all|names] .INP: show mailto mailto (Basic) -MailTo +E-Mail - This is a resource agent for MailTo. It sends email to a sysadmin -whenever a takeover occurs. +Notifies recipient by e-mail in the event of a resource takeover. 1. Notifies recipients by email in the event of resource takeover @@ -263,7 +271,7 @@ clone c-foo foo .INP: run mailto id=foo [email protected] subject=hello nodes=node1 dry_run=true -INFO: 10: MailTo +INFO: 10: E-Mail INFO: 10: Nodes: node1 ** all - #!/usr/bin/env python import crm_script
