Hello community,
here is the log from the commit of package pacemaker for openSUSE:Factory
checked in at Wed Jun 30 10:46:23 CEST 2010.
--------
--- pacemaker/pacemaker.changes 2009-07-30 10:59:00.000000000 +0200
+++ /mounts/work_src_done/STABLE/pacemaker/pacemaker.changes 2010-06-25 04:16:22.000000000 +0200
@@ -2 +2 @@
-Thu Jul 30 10:58:43 CEST 2009 - aj@suse.de
+Mon Jun 14 14:25:25 UTC 2010 - lmb@novell.com
@@ -4 +4,32 @@
-- Fix %exclude usage.
+- Shell: templates: clvm,ocfs2: add the fs/vg resource to the base
+ group, add timeouts (bnc#605580)
+- Shell: skip resource checks for property-like elements (lf#2420)
+- Shell: on no id match the first of property-like elements (lf#2420)
+- Shell: set proper ids for rsc/op_defaults (lf#2420)
+- Shell: add exit codes for non-interactive use
+- PE: No services should be stopped until probes finish (lf#2433)
+- PE: Support clones in resource sets (bnc#586613, lf#2404, lf#2409)
+- Tools: Allow ptest and crm_simulate to work with configs that lack a
+ status section
+- Core: Reduce logging for failed xpath searches
+- PE: Support colocation sets with negative scores (lf#2435)
+- PE: Ensure deallocated resources are stopped
+- PE: Ordering dependencies on partially active groups not observed
+ properly (lf#2422)
+- PE: If there are no compatible peers when interleaving clones, ensure
+ the instance is stopped
+- PE: Fix colocation for interleaved clones
+- PE: Fix colocation with partially active groups
+- PE: Don't overwrite existing meta attributes (like timeout) for notify
+ operations (lf#2424)
+- PE: stop-all-resources shouldn't apply to stonith resources (lf#2426)
+- Fencing: Reduce stonith-ng logging (lf#2431)
+- ais: Improved processing when the peer crmd processes join/leave
+ (lf#2401)
+- Tools: crm_resource - Report crmd connection errors
+- Tools: Drop the 'pingd' daemon and resource agent in favor of
+ ocf:pacemaker:ping (WIP WIP WIP FIXME FIXME FIXME This is dangerous to
+ release as it stands now!)
+- cib: Fix the application of unversioned diffs
+- Several valgrind + coverity issues fixed.
+- Upstream version cs: 8b9ec9ccc506
@@ -7 +38 @@
-Sun Jul 12 14:33:00 CEST 2009 - coolo@novell.com
+Tue Jun 8 02:43:35 UTC 2010 - tserong@novell.com
@@ -9 +40,2 @@
-- fix build in disabling as-needed
+- Install crm shell and cts in $(pyexecdir) instead of $(pythondir)
+ to ensure installation in /usr/lib64 on x86_64
@@ -12 +44,701 @@
-Mon Mar 16 07:16:29 CET 2009 - abeekhof@suse.de
+Tue May 18 06:30:42 UTC 2010 - tserong@novell.com
+
+- Fix crm membership check (bnc#603685, reverts changesets
+ 6e6980376f01 and 2e096a41a5f9)
+- Upstream version cs: e8717a29601a (1.1.2.1)
+
+-------------------------------------------------------------------
+Fri May 14 13:08:29 UTC 2010 - lmb@novell.com
+
+- ais: fix list of active processes sent to clients (bnc#603685)
+- Upstream version cs: 2e096a41a5f9
+
+-------------------------------------------------------------------
+Wed May 12 13:57:23 UTC 2010 - lmb@novell.com
+
+- crmd: Prevent use-after-free of the stonith-ng connection (lf#2414)
+- Core: Prevent use-after-free reported by valgrind when
+ doing xpath based deletions (lf#2414)
+- PE: Fix memory leaks reported by valgrind
+- Core: Fix memory leak in replace_xml_child() reported by valgrind
+- PE: Remove developemnt logging which mistakenly logged at "ERROR"
+ level.
+- Upstream version cs: b59c27dc114a (1.1.2)
+
+-------------------------------------------------------------------
+Mon May 10 13:19:09 UTC 2010 - lmb@novell.com
+
+- crmd: Prevent use-after-free of the PE connection after it dies
+ (lf#2414)
+- Shell: support for clone instances in constraints (lf#2169)
+- Upstream version cs: 42a5aa3413f4
+
+-------------------------------------------------------------------
+Mon May 10 09:52:28 UTC 2010 - lmb@novell.com
+
+- Shell: new command default-timeouts to set default operation timeouts
+ (bnc#479052)
+- crmd: ais: Use the threadsafe version of getpwnam
+- PE: Enforce mandatory promotion (colocation) constraints (lf#2403)
+- PE: Don't complain about missing agents during probes of a-symetric
+ clusters (lf#2410)
+- Shell: don't error on missing resource agent with asymmetrical
+ clusters (lf#2410)
+- ais: Ensure the list of active processes sent to clients is always
+ up-to-date
+- PE: Allow constraints to apply to specific instances of clones
+ (lf#2169)
+- PE: Allow ordering constraints to apply to specific instances of
+ clones
+- PE: Clean up failcount after it expires (lf#2066)
+- PE: Before starting utilization-using resources on a node, take off
+ the load which will no longer run there (bnc#594782)
+- PE: Don't be so quick to pull the trigger on nodes that are coming up
+- crmd: Use global fencing notifications to prevent secondary fencing
+ operations of the DC
+- cib: Changes to group order are not detected or broadcast to peers
+ (lf#2352)
+- Core: Only use the named schema if the validation passes
+- Shell: don't verify empty configurations (bnc#602711)
+- crmd: Send erase_status_tag() calls to the local CIB when the DC is
+ fenced, since there is no DC to accept them
+- crmd: Include operation interval in logged action
+- crmd: Arrange for only one node to clean up after a fenced DC node
+- crmd: create the final directory too for resource agents (bnc#603190)
+- Tools: crm_mon: refresh screen on terminal resize (bnc#589811)
+- PE: Correctly locate clone instances by their prefix (lf#2412)
+- ais: Make a better attempt at determining an accurate born-on value
+ from corosync
+- tools: crm_mon - Enable 'connectivity' mode for 'ping' resources too
+- Upstream version cs: e8624c181a3f
+
+-------------------------------------------------------------------
+Tue Apr 27 08:54:11 UTC 2010 - lmb@novell.com
+
+- Fix small error so that regression test suite passes.
+
+-------------------------------------------------------------------
+Tue Apr 27 03:07:40 UTC 2010 - ygao@novell.com
+
+- PE: Before starting utilization-using resources on a node, take off
+ the load which will no longer run there (bnc#594782)
+
+-------------------------------------------------------------------
+Mon Apr 26 10:03:44 UTC 2010 - lmb@novell.com
+
+- PE: Don't create scaffolding for ordering sets with a single resources
+ (bnc#586613)
+- PE: Ignore colocation weights from clone instances
+- PE: Print allocation scores as +/-INFINITY when appropriate
+- Upstream version cs: fa1c810f1d1d
+
+-------------------------------------------------------------------
+Fri Apr 23 10:09:51 UTC 2010 - lmb@novell.com
+
+- Fix regression test for build environment.
+- Upstream version cs: c11e18619efd
+
+-------------------------------------------------------------------
+Wed Apr 21 13:25:26 UTC 2010 - lmb@novell.com
+
+- Fix several memory leaks exposed by valgrind.
+- Improve regression tests.
+- Low: Fencing: Delay system initialization until after we handle
+ possible metadata queries
+- Tools: Do not print help on executing "crm_node -i"
+- crm_simulate: Allow bringing new node online (bnc#591162)
+- crmd: Improved detection of partially active peers (lf#2401)
+- PE: Fix intra-set colocation and ordering (lf#2384)
+- PE: Combine failcounts for all instances of an anonymous clone on a
+ host (lf#2383)
+- crmd: Add missing fields to the metadata for use by the shell
+ (lf#2387)
+- PE: Check for use-of-NULL in dump_node_scores()
+- PE: Rewrite native_merge_weights() to avoid Fix use-after-free
+- Upstream version cs: 2a90abe96048
+
+-------------------------------------------------------------------
+Mon Apr 12 11:09:09 UTC 2010 - lmb@novell.com
+
+- Automated test case improvements.
+- Upstream version cs: 536bf0b9d3ba
+
+-------------------------------------------------------------------
+Fri Apr 9 08:38:55 UTC 2010 - lmb@novell.com
+
+- Shell: always reload status if working with the cluster (bnc#590035)
+- Shell: add new regression tests
+- Shell: don't allow empty attributes for properties/*_defaults
+ (lf#2395)
+- Shell: add another attribute not present in the crmd metadata
+- Tools: crm_mon - Enable specification of community for SNMP traps
+- PE: Ensure important options (notify, unique, etc) are always exposed
+ during resource operations (lf#2391)
+- Tools: Support short form of crm_simulate --quorum (bnc#591168)
+- ais: Convert endian for all of the integer fields in messages
+ (bnc#472014)
+- Upstream version cs: 80e0bb600e6c
+
+-------------------------------------------------------------------
+Wed Mar 31 19:18:35 UTC 2010 - lmb@novell.com
+
+- Shell: Default to using the status section from the live CIB
+ (bnc#592762)
+- Upstream version cs: 739282ba9e2e
+
+-------------------------------------------------------------------
+Wed Mar 31 13:03:43 UTC 2010 - lmb@novell.com
+
+- crmd: fix non-fatal assert in lrmd.c when resources are manually
+ failed (bnc#590924)
+- Upstream version cs: f77530201221
+
++++ 561 more lines (skipped)
++++ between pacemaker/pacemaker.changes
++++ and /mounts/work_src_done/STABLE/pacemaker/pacemaker.changes
calling whatdependson for head-i586
Old:
----
pacemaker.tar.gz
New:
----
pacemaker-cts-startcmd.patch
pacemaker-pyexecdir.patch
pacemaker.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pacemaker.spec ++++++
--- /var/tmp/diff_new_pack.NXRtdm/_old 2010-06-30 10:46:03.000000000 +0200
+++ /var/tmp/diff_new_pack.NXRtdm/_new 2010-06-30 10:46:03.000000000 +0200
@@ -1,7 +1,7 @@
#
-# spec file for package pacemaker (Version 1.0.1)
+# spec file for package pacemaker (Version 1.1.2.1)
#
-# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,14 +17,15 @@
# norootforbuild
+%global pcmk_docdir %{_docdir}/%{name}
%if 0%{?suse_version}
%define _libexecdir %{_libdir}
%endif
%define with_extra_warnings 0
%define with_debugging 0
-%define without_fatal_warnings 1
%define with_ais_support 1
%define with_heartbeat_support 0
+%define with_regression_tests 0
%define gname haclient
%define uname hacluster
%define doc_pkg heartbeat-doc-1.0
@@ -36,23 +37,29 @@
Name: pacemaker
Summary: The Pacemaker scalable High-Availability cluster resource manager
-Version: 1.0.1
-Release: 19
-License: GPL v2 or later ; LGPL v2.1 or later
+Version: 1.1.2.1
+Release: 1
+License: GPLv2+ ; LGPLv2.1+
Url: http://www.clusterlabs.org
Group: Productivity/Clustering/HA
-Source: pacemaker.tar.gz
+Source: pacemaker.tar.bz2
Source2: %{doc_pkg}.tar.gz
Source100: pacemaker.rpmlintrc
+Patch1: pacemaker-cts-startcmd.patch
+Patch2: pacemaker-pyexecdir.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
AutoReqProv: on
-Conflicts: heartbeat < 2.99
-PreReq: heartbeat-common
-Requires: libpacemaker3 = %{version}-%{release}
-BuildRequires: e2fsprogs-devel glib2-devel gnutls-devel libesmtp-devel libheartbeat-devel libxml2-devel libxslt-devel ncurses-devel net-snmp-devel pam-devel pkgconfig python-devel swig
+Conflicts: heartbeat < 3.0
+PreReq: cluster-glue
+Requires: resource-agents openais python python-xml
+Requires: libpacemaker3 = %{version}-%{release} python-curses
+BuildRequires: e2fsprogs-devel glib2-devel gnutls-devel libesmtp-devel libglue-devel libxml2-devel libxslt-devel ncurses-devel net-snmp-devel pam-devel pkgconfig python-devel resource-agents swig
+%if %with_regression_tests
+BuildRequires: openais procps python python-curses python-xml vim-base
+%endif
%if %with_ais_support
-BuildRequires: libopenais-devel
-Requires: openais
+BuildRequires: libcorosync-devel
+Requires: corosync
%endif
%if %with_heartbeat_support
BuildRequires: heartbeat-devel
@@ -61,7 +68,7 @@
%if 0%{?suse_version}
BuildRequires: libbz2-devel
Suggests: graphviz
-Recommends: libdlm heartbeat-resources
+Recommends: libdlm resource-agents
%if 0%{?suse_version} > 1100
BuildRequires: docbook-xsl-stylesheets
%endif
@@ -91,7 +98,7 @@
Andrew Beekhof
%package -n libpacemaker3
-License: GPL v2 or later ; LGPL v2.1 or later
+License: GPLv2+ ; LGPLv2.1+
Summary: The Pacemaker scalable High-Availability cluster resource manager
Group: Productivity/Clustering/HA
@@ -113,12 +120,18 @@
Andrew Beekhof
%package -n libpacemaker-devel
-License: GPL v2 only ; GPL v2 or later ; LGPL v2.1 or later
+License: GPLv2 ; GPLv2+ ; LGPLv2.1+
Summary: The Pacemaker scalable High-Availability cluster resource manager
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}-%{release}
Requires: libpacemaker3 = %{version}-%{release}
-Requires: libheartbeat-devel
+Requires: libglue-devel
+%if %with_regression_tests
+# For the regression tests, we can run them only if all pacemaker
+# packages are installed, so we pull that in here for the regression
+# builds; this is supposed to be disabled for shipping code.
+Requires: pacemaker
+%endif
%description -n libpacemaker-devel
Pacemaker is an advanced, scalable High-Availability cluster resource
@@ -140,48 +153,25 @@
%prep
###########################################################
%setup -a 2 -n pacemaker -q
+%patch1 -p1
+%patch2 -p1
###########################################################
%build
-# fix build in disabling as-needed
export SUSE_ASNEEDED=0
-# TODO: revisit -all
+
CFLAGS="${CFLAGS} ${RPM_OPT_FLAGS}"
-# Feature-dependent CFLAGS:
-%if %with_extra_warnings
-# CFLAGS="${CFLAGS} -Wshadow -Wfloat-equal -Waggregate-return -Wnested-externs -Wunreachable-code -Wendif-labels -Winline"
-CFLAGS="${CFLAGS} -Wfloat-equal -Wendif-labels -Winline"
-%endif
-%if %with_debugging
-CFLAGS="${CFLAGS} -O0"
-%endif
-# Distribution specific settings:
-%if 0%{?suse_version} > 1001
-CFLAGS="${CFLAGS} -fstack-protector-all"
-%endif
-%if 0%{?suse_version} < 1001
-export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/opt/gnome/%{_lib}/pkgconfig:/opt/gnome/share/pkgconfig"
-%endif
-%if 0%{?suse_version} > 1020
-CFLAGS="$CFLAGS -fgnu89-inline"
-%endif
-%if 0%{?fedora_version} > 6
-CFLAGS="$CFLAGS -fgnu89-inline"
-%endif
export CFLAGS
-./ConfigureMe configure --prefix=%{_prefix} --sysconfdir=%{_sysconfdir} \
- --localstatedir=%{_var} --infodir=%{_infodir} \
- --mandir=%{_mandir} --libdir=%{_libdir} \
- --libexecdir=%{_libexecdir} \
- --with-ais-prefix=%{_prefix} \
-%if %without_fatal_warnings
+./autogen.sh
+%configure --localstatedir=%{_var} \
+ --docdir=%{pcmk_docdir} \
--enable-fatal-warnings=no
-%endif
-export MAKE="make %{?jobs:-j%jobs}"
-make %{?jobs:-j%jobs}
+make %{_smp_mflags}
+
if [ -e /usr/share/xml/docbook/stylesheet/nwalsh/current ]; then
make -C %{doc_pkg} man
fi
+
###########################################################
%install
@@ -196,13 +186,10 @@
chmod a+x $RPM_BUILD_ROOT/%{_libdir}/heartbeat/crm_primitive.py
chmod a+x $RPM_BUILD_ROOT/%{_libdir}/heartbeat/hb2openais-helper.py
rm $RPM_BUILD_ROOT/%{_libdir}/service_crm.so
-(
- cd $RPM_BUILD_ROOT/%{_sbindir}
- rm crm_standby crm_master crm_failcount
- ln crm_attribute crm_standby
- ln crm_attribute crm_master
- ln crm_attribute crm_failcount
-)
+
+# Don't want to ship this just yet:
+rm $RPM_BUILD_ROOT/usr/sbin/crm_report
+
#%if %with_ais_support
# mkdir -p $RPM_BUILD_ROOT/%{_libexecdir}/lcrso
# cp $RPM_BUILD_ROOT/%{_libdir}/service_crm.so $RPM_BUILD_ROOT/%{_libexecdir}/lcrso/pacemaker.lcrso
@@ -214,7 +201,6 @@
find $RPM_BUILD_ROOT -name '*.la' -type f -print0 | xargs -0 rm -f
find $RPM_BUILD_ROOT -name '*.pyc' -type f -print0 | xargs -0 rm -f
find $RPM_BUILD_ROOT -name '*.pyo' -type f -print0 | xargs -0 rm -f
-rm -f $RPM_BUILD_ROOT%{_sbindir}/crm_uuid
###########################################################
%clean
@@ -231,12 +217,31 @@
%postun -n libpacemaker3 -p /sbin/ldconfig
+%if %with_regression_tests
+
+%post -n libpacemaker-devel
+if [ ! -e /tmp/.pcmk_regression_tests_ran ]; then
+ touch /tmp/.pcmk_regression_tests_ran
+ # Needed so that the shell doesn't get stuck on escape
+ # sequences
+ export TERM=dumb
+ /usr/share/pacemaker/tests/cli/regression.sh || true
+ /usr/share/pacemaker/tests/pengine/regression.sh -V || true
+ echo Now running shell regression tests ; date
+ if ! /usr/share/pacemaker/tests/shell/regression.sh ; then
+ echo "Shell tests failed."
+ cat crmtestout/regression.out
+ fi
+fi
+%endif
+
%files
###########################################################
%defattr(-,root,root)
%dir %{_libdir}/heartbeat
%dir %{_var}/lib/heartbeat
-%dir %{_datadir}/doc/packages/pacemaker
+%dir %{pcmk_docdir}
+%exclude %{_datadir}/pacemaker/tests
%{_datadir}/pacemaker
%{_libdir}/heartbeat/*
%{_sbindir}/cibadmin
@@ -256,22 +261,37 @@
%{_sbindir}/crm_shadow
%{_sbindir}/cibpipe
%{_sbindir}/crm_node
-%doc %{_datadir}/doc/packages/pacemaker/AUTHORS
-%doc %{_datadir}/doc/packages/pacemaker/README
-%doc %{_datadir}/doc/packages/pacemaker/README.hb2openais
-%doc %{_datadir}/doc/packages/pacemaker/COPYING
-%doc %{_datadir}/doc/packages/pacemaker/COPYING.LGPL
-%doc %{_datadir}/doc/packages/pacemaker/crm_cli.txt
-%doc %{_mandir}/man8/*.8*
+%{_sbindir}/crm_simulate
+%{_sbindir}/fence_legacy
+%{_sbindir}/stonith_admin
+%{py_sitedir}/crm
+
%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/heartbeat/crm
%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pengine
%dir %attr (750, %{uname}, %{gname}) %{_var}/run/crm
%dir /usr/lib/ocf
%dir /usr/lib/ocf/resource.d
/usr/lib/ocf/resource.d/pacemaker
+%{_datadir}/snmp/mibs/PCMK-MIB.txt
%if %with_ais_support
+%dir %{_libexecdir}/lcrso
+%{_libexecdir}/lcrso
%{_libexecdir}/lcrso/pacemaker.lcrso
%endif
+%if !0%{?_without_heartbeat}
+%{_sbindir}/crm_uuid
+%else
+%exclude %{_sbindir}/crm_uuid
+%endif
+%exclude /usr/lib/ocf/resource.d/pacemaker/o2cb
+# Packaged elsewhere
+%exclude %{pcmk_docdir}/AUTHORS
+%exclude %{pcmk_docdir}/COPYING
+%exclude %{pcmk_docdir}/COPYING.LIB
+%doc %{pcmk_docdir}
+# %doc %{pcmk_docdir}/*.html
+%doc %{_mandir}/man8/*.8*
+%doc %{_mandir}/man7/*.7*
%files -n libpacemaker3
%defattr(-,root,root)
@@ -287,8 +307,10 @@
%files -n libpacemaker-devel
%defattr(-,root,root)
#%doc %{_datadir}/doc/%{name}-%{version}
+%{py_sitedir}/cts
+%{_datadir}/pacemaker/tests
%{_includedir}/pacemaker
-%{_includedir}/heartbeat/fencing
+# %{_includedir}/heartbeat/fencing
%{_libdir}/*.so
%changelog
++++++ heartbeat-doc-1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/heartbeat-doc-1.0/.hg_archival.txt new/heartbeat-doc-1.0/.hg_archival.txt
--- old/heartbeat-doc-1.0/.hg_archival.txt 2009-03-03 16:37:01.000000000 +0100
+++ new/heartbeat-doc-1.0/.hg_archival.txt 2009-04-01 18:42:48.000000000 +0200
@@ -1,2 +1,2 @@
repo: 80da5f68a837e46dadedb837058f9cdd8442413b
-node: 74c07f865a8ca80d2a87d66f0a51414c28bfa3f2
+node: 2b0fa67bbd6626bfaa3c0bfcd4b2944baf43c6af
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/heartbeat-doc-1.0/Makefile new/heartbeat-doc-1.0/Makefile
--- old/heartbeat-doc-1.0/Makefile 2009-03-03 16:37:01.000000000 +0100
+++ new/heartbeat-doc-1.0/Makefile 2009-04-01 18:42:48.000000000 +0200
@@ -88,7 +88,7 @@
MAN_FILES = cibadmin.8 crmadmin.8 crm_attribute.8 crm_diff.8 \
crm_failcount.8 crm_master.8 crm_mon.8 \
crm_resource.8 crm_standby.8 crm_uuid.8 \
- crm_verify.8 pengine.7 crm.8
+ crm_verify.8 pengine.7 crm.8 crm_shadow.8
man: $(MAN_FILES)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/heartbeat-doc-1.0/xml/hb_crm_shadow.xml new/heartbeat-doc-1.0/xml/hb_crm_shadow.xml
--- old/heartbeat-doc-1.0/xml/hb_crm_shadow.xml 1970-01-01 01:00:00.000000000 +0100
+++ new/heartbeat-doc-1.0/xml/hb_crm_shadow.xml 2009-04-01 18:42:48.000000000 +0200
@@ -0,0 +1,1399 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//Novell//DTD NovDoc XML V1.0//EN" "novdocx.dtd"
+[
+ <!ENTITY % NOVDOC.DEACTIVATE.IDREF "INCLUDE">
+ <!ENTITY % entities SYSTEM "entity-decl.ent">
+ %entities;
+]>
+<refentry id="man.crmshadow">
+ <refmeta>
+ <refentrytitle>crm_shadow</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>crm_shadow</refname><refpurpose>Perform Configuration Changes in a Sandbox Before Updating The Live Cluster</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+<screen><command>crm_shadow</command> [-V] [-p|-e|-q]</screen>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Sets up an environment in which configuration tools
+ (<command>cibadmin</command>, <command>crm_resource</command>, etc) work
+ offline instead of against a live cluster, allowing changes to be
+ previewed and tested for side-effects.
+ </para>
+ </refsect1>
+ <refsect1 id="man.crmshadow.options">
+ <title>Options</title>
+<!--
+
+usage: crm_shadow -[V?bfwc:dr:C:D:ps:E]
+Options
+ ++verbose (-V) turn on debug info. additional instance increase verbosity
+ ++help (-?) this help message
+
+Commands
+ ++-which (-w) Indicate the active shadow copy
+ ++display (-p) Display the contents of the shadow copy
+ ++diff (-d) Display the changes in the shadow copy
+ ++create-empty (-e) name Create the named shadow copy with an empty cluster configuration
+ ++create (-c) name Create the named shadow copy of the active cluster configuration
+ ++reset (-r) name Recreate the named shadow copy from the active cluster configuration
+ ++commit (-C) name Upload the contents of the named shadow copy to the cluster
+ ++delete (-D) name Delete the contents of the named shadow copy
+ ++edit (-E) name Edit the contents of the named shadow copy with your favorite $EDITOR
+
+Advanced Options
+ ++batch (-b) Don't spawn a new shell
+ ++force (-f) Force the action to be performed
+ ++switch (-s) name Switch to the named shadow copy
+
+ -->
+ <variablelist>
+ <varlistentry>
+ <term><option>--verbose</option>, <option>-V</option>
+ </term>
+ <listitem>
+ <para>
+ turn on debug info. additional instance increase verbosity
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--which</option>, <option>-w</option>
+ </term>
+ <listitem>
+ <para>
+ indicate the active shadow copy
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--display</option>, <option>-p</option>
+ </term>
+ <listitem>
+ <para>
+ display the contents of the shadow copy
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--diff</option>, <option>-d</option>
+ </term>
+ <listitem>
+ <para>
+ display the changes in the shadow copy
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--create-empty</option>, <option>-e</option><replaceable>NAME</replaceable>
+ </term>
+ <listitem>
+ <para>
+ create the named shadow copy with an empty cluster configuration
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--create</option>, <option>-c</option><replaceable>NAME</replaceable>
+ </term>
+ <listitem>
+ <para>
+ create the named shadow copy of the active cluster configuration
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--reset</option>, <option>-r</option><replaceable>NAME</replaceable>
+ </term>
+ <listitem>
+ <para>
+ recreate the named shadow copy from the active cluster configuration
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--commit</option>, <option>-c</option><replaceable>NAME</replaceable>
+ </term>
+ <listitem>
+ <para>
+ upload the contents of the named shadow copy to the cluster
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--delete</option>, <option>-d</option><replaceable>NAME</replaceable>
+ </term>
+ <listitem>
+ <para>
+ delete the contents of the named shadow copy
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--edit</option>, <option>-e</option><replaceable>NAME</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Edit the contents of the named shadow copy with your favorite editor
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--batch</option>, <option>-b</option>
+ </term>
+ <listitem>
+ <para>
+ do not spawn a new shell
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--force</option>, <option>-f</option>
+ </term>
+ <listitem>
+ <para>
+ do not spawn a new shell
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--switch</option>, <option>-s</option>
+ </term>
+ <listitem>
+ <para>
+ switch to the named shadow copy
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="man.crmshadow.internals">
+ <title>Internal Commands</title>
+<!--
+A star (*) next to a name means that the command is disabled.
+
+ JOB_SPEC [&] (( expression ))
+ . filename [arguments] :
+ [ arg... ] [[ expression ]]
+ alias [-p] [name[=value] ... ] bg [job_spec ...]
+ bind [-lpvsPVS] [-m keymap] [-f fi break [n]
+ builtin [shell-builtin [arg ...]] caller [EXPR]
+ case WORD in [PATTERN [| PATTERN]. cd [-L|-P] [dir]
+ command [-pVv] command [arg ...] compgen [-abcdefgjksuv] [-o option
+ complete [-abcdefgjksuv] [-pr] [-o continue [n]
+ declare [-afFirtx] [-p] [name[=val dirs [-clpv] [+N] [-N]
+ disown [-h] [-ar] [jobspec ...] echo [-neE] [arg ...]
+ enable [-pnds] [-a] [-f filename] eval [arg ...]
+ exec [-cl] [-a name] file [redirec exit [n]
+ export [-nf] [name[=value] ...] or false
+ fc [-e ename] [-nlr] [first] [last fg [job_spec]
+ for NAME [in WORDS ... ;] do COMMA for (( exp1; exp2; exp3 )); do COM
+ function NAME { COMMANDS ; } or NA getopts optstring name [arg]
+ hash [-lr] [-p pathname] [-dt] [na help [-s] [pattern ...]
+ history [-c] [-d offset] [n] or hi if COMMANDS; then COMMANDS; [ elif
+ jobs [-lnprs] [jobspec ...] or job kill [-s sigspec | -n signum | -si
+ let arg [arg ...] local name[=value] ...
+ logout popd [+N | -N] [-n]
+ printf [-v var] format [arguments] pushd [dir | +N | -N] [-n]
+ pwd [-LP] read [-ers] [-u fd] [-t timeout] [
+ readonly [-af] [name[=value] ...] return [n]
+ select NAME [in WORDS ... ;] do CO set [++abefhkmnptuvxBCHP] [-o opti
+ shift [n] shopt [-pqsu] [-o long-option] opt
+ source filename [arguments] suspend [-f]
+ test [expr] time [-p] PIPELINE
+ times trap [-lp] [arg signal_spec ...]
+ true type [-afptP] name [name ...]
+ typeset [-afFirtx] [-p] name[=valu ulimit [-SHacdfilmnpqstuvx] [limit
+ umask [-p] [-S] [mode] unalias [-a] name [name ...]
+ unset [-f] [-v] [name ...] until COMMANDS; do COMMANDS; done
+ variables - Some variable names an wait [n]
+ while COMMANDS; do COMMANDS; done { COMMANDS ; }
+ -->
+ <para>
+ To work with a shadow configuration, you need to create one first:
+ </para>
+<screen>crm_shadow --create-empty <replaceable>YOUR_NAME</replaceable></screen>
+ <para>
+ It gives you an internal shell like the one from the
+ <command>crm</command> tool. Use <command>help</command> to get an
+ overview of all internal commands, or <command>help</command>
+ <replaceable>subcommand</replaceable> for a specific command.
+ </para>
+ <table id="tab.crmshadow.internal">
+ <title>Overview of Internal Commands</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>
+ <para>
+ Command
+ </para>
+ </entry>
+ <entry>
+ <para>
+ Syntax/Description
+ </para>
+ </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <para>
+ <command>alias</command>
+ </para>
+ </entry>
+ <entry>
+<screen>alias [-p] [name[=value] ... ]</screen>
+ <para>
+ <command>alias</command> with no arguments or with the -p option
+ prints the list of aliases in the form alias
+ <literal>NAME=VALUE</literal> on standard output. Otherwise, an
+ alias is defined for each NAME whose VALUE is given. A trailing
+ space in VALUE causes the next word to be checked for alias
+ substitution when the alias is expanded. Alias returns true unless a
+ NAME is given for which no alias has been defined.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>bg</command>
+ </para>
+ </entry>
+ <entry>
+<screen>bg [JOB_SPEC ...]</screen>
+ <para>
+ Place each JOB_SPEC in the background, as if it had been started
+ with &. If JOB_SPEC is not present, the shell's notion of the
+ current job is used.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>bind</command>
+ </para>
+ </entry>
+ <entry>
+<screen>bind [-lpvsPVS] [-m keymap] [-f filename]
+ [-q name] [-u name] [-r keyseq]
+ [-x keyseq:shell-command]
+ [keyseq:readline-function or readline-command]</screen>
+ <para>
+ Bind a key sequence to a Readline function or a macro, or set a
+ Readline variable. The non-option argument syntax is equivalent to
+ that found in <filename>~/.inputrc</filename>, but must be passed as
+ a single argument: bind <literal>"\C-x\C-r":
+ re-read-init-file</literal>.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>break</command>
+ </para>
+ </entry>
+ <entry>
+<screen>break [N]</screen>
+ <para>
+ Exit from within a <literal>for</literal>, <literal>while</literal>
+ or <literal>until</literal> loop. If N is specified, break N levels.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>builtin</command>
+ </para>
+ </entry>
+ <entry>
+<screen>builtin [shell-builtin [arg ...]]</screen>
+ <para>
+ Run a shell builtin. This is useful when you wish to rename a shell
+ builtin to be a function, but need the functionality of the builtin
+ within the function itself.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>caller</command>
+ </para>
+ </entry>
+ <entry>
+<screen>caller [EXPR]</screen>
+ <para>
+ Returns the context of the current subroutine call. Without
+ <replaceable>EXPR</replaceable>, returns
+ $line $filename</literal>. With
+ <replaceable>EXPR</replaceable>, returns <literal>$line $subroutine
+ $filename</literal>; this extra information can be used to provide a
+ stack trace.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>case</command>
+ </para>
+ </entry>
+ <entry>
+<screen>case WORD in [PATTERN [| PATTERN] [COMMANDS;;] ... esac</screen>
+ <para>
+ Selectively execute <replaceable>COMMANDS</replaceable> based upon
+ <replaceable>WORD</replaceable> matching
+ <replaceable>PATTERN</replaceable>. The `|' is used to separate
+ multiple patterns.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>cd</command>
+ </para>
+ </entry>
+ <entry>
+<screen>cd [-L|-P] [dir]</screen>
+ <para>
+ Change the current directory to DIR.
+<!--The variable
+ <envar>$HOME</envar> is the default DIR. The variable
+ <envar>CDPATH</envar> defines the search path for the
+ directory containing DIR. Alternative directory names in
+ CDPATH are separated by a colon (:). A null directory
+ name is the same as the current directory, i.e. `.'. If
+ DIR begins with a slash (/), then CDPATH is not used. If
+ the directory is not found, and the shell option
+ `cdable_vars' is set, then try the word as a variable
+ name. If that variable has a value, then cd to the value
+ of that variable. The -P option says to use the physical
+ directory structure instead of following symbolic links;
+ the -L option forces symbolic links to be
+ followed.-->
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>command</command>
+ </para>
+ </entry>
+ <entry>
+<screen>command [-pVv]
+command [arg ...]</screen>
+ <para>
+ Runs <replaceable>COMMAND</replaceable> with
+ <replaceable>ARGS</replaceable> ignoring shell functions. If you
+ have a shell function called `ls', and you wish to call the command
+ `ls', you can say "command ls". If the -p option is given, a default
+ value is used for PATH that is guaranteed to find all of the
+ standard utilities. If the -V or -v option is given, a string is
+ printed describing COMMAND. The -V option produces a more verbose
+ description.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>compgen</command>
+ </para>
+ </entry>
+ <entry>
+<screen>compgen [-abcdefgjksuv] [-o option] [-A action]
+ [-G globpat] [-W wordlist] [-P prefix]
+ [-S suffix] [-X filterpat] [-F function]
+ [-C command] [WORD]</screen>
+ <para>
+ Display the possible completions depending on the options. Intended
+ to be used from within a shell function generating possible
+ completions. If the optional <replaceable>WORD</replaceable>
+ argument is supplied, matches against
+ <replaceable>WORD</replaceable> are generated.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>complete</command>
+ </para>
+ </entry>
+ <entry>
+<screen>complete [-abcdefgjksuv] [-pr] [-o option]
+ [-A action] [-G globpat] [-W wordlist] [-P prefix]
+ [-S suffix] [-X filterpat] [-F function] [-C command]
+ [name ...]</screen>
+ <para>
+ For each <replaceable>NAME</replaceable>, specify how arguments are
+ to be completed. If the <option>-p</option> option is supplied, or
+ if no options are supplied, existing completion specifications are
+ printed in a way that allows them to be reused as input. The
+ <option>-r</option> option removes a completion specification for
+ each <replaceable>NAME</replaceable>, or, if no
+ <replaceable>NAME</replaceable>s are supplied, all completion
+ specifications.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>continue</command>
+ </para>
+ </entry>
+ <entry>
+<screen>continue [N]</screen>
+ <para>
+ Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop.
+ If <replaceable>N</replaceable> is specified, resume at the
+ <replaceable>N</replaceable>-th enclosing loop.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>declare</command>
+ </para>
+ </entry>
+ <entry>
+<screen>declare [-afFirtx] [-p] [name[=value] ...]</screen>
+ <para>
+ Declare variables and/or give them attributes. If no
+ <replaceable>NAME</replaceable>s are given, then display the values
+ of variables instead. The <option>-p</option> option will display
+ the attributes and values of each <replaceable>NAME</replaceable>.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>dirs</command>
+ </para>
+ </entry>
+ <entry>
+<screen>dirs [-clpv] [+N] [-N]</screen>
+ <para>
+ Display the list of currently remembered directories. Directories
+ find their way onto the list with the <command>pushd</command>
+ command; you can get back up through the list with the
+ <command>popd</command> command.
+ </para>
+ <para></para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>disown</command>
+ </para>
+ </entry>
+ <entry>
+<screen>disown [-h] [-ar] [JOBSPEC ...]</screen>
+ <para>
+ By default, removes each <replaceable>JOBSPEC</replaceable> argument
+ from the table of active jobs. If the <option>-h</option> option is
+ given, the job is not removed from the table, but is marked so that
+ SIGHUP is not sent to the job if the shell receives a SIGHUP. The
+ <option>-a</option> option, when <replaceable>JOBSPEC</replaceable>
+ is not supplied, means to remove all jobs from the job table; the
+ <option>-r</option> option means to remove only running jobs.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>echo</command>
+ </para>
+ </entry>
+ <entry>
+<screen>echo [-neE] [arg ...]</screen>
+ <para>
+ Output the ARGs. If -n is specified, the trailing newline is
+ suppressed. If the -e option is given, interpretation of the
+ following backslash-escaped characters is turned on:
+ </para>
+ <simplelist>
+ <member><literal>\a</literal> (alert, bell)</member>
+ <member><literal>\b</literal> (backspace)</member>
+ <member><literal>\c</literal> (suppress trailing newline)</member>
+ <member><literal>\E</literal> (escape character)</member>
+ <member><literal>\f</literal> (form feed)</member>
+ <member><literal>\n</literal> (new line)</member>
+ <member><literal>\r</literal> (carriage return)</member>
+ <member><literal>\t</literal> (horizontal tab)</member>
+ <member><literal>\v</literal> (vertical tab)</member>
+ <member><literal>\\</literal> (backslash)</member>
+ <member><literal>\0nnn</literal> (the character whose ASCII code is NNN (octal). NNN can be
+ 0 to 3 octal digits)</member>
+ </simplelist>
+ <para>
+ You can explicitly turn off the interpretation of the above
+ characters with the <option>-E</option> option.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>enable</command>
+ </para>
+ </entry>
+ <entry>
+<screen>enable [-pnds] [-a] [-f filename] [name...]</screen>
+ <para>
+ Enable and disable builtin shell commands. This allows you to use a
+ disk command which has the same name as a shell builtin without
+ specifying a full pathname. If <option>-n</option> is used, the
+ <replaceable>NAME</replaceable>s become disabled; otherwise
+ <replaceable>NAME</replaceable>s are enabled. For example, to use
+ the <command>test</command> found in <envar>$PATH</envar> instead of
+ the shell builtin version, type <command>enable</command> <option>-n
+ test</option>. On systems supporting dynamic loading, the
+ <option>-f</option> option may be used to load new builtins from the
+ shared object <replaceable>FILENAME</replaceable>. The
+ <option>-d</option> option will delete a builtin previously loaded
+ with <option>-f</option>. If no non-option names are given, or the
+ <option>-p</option> option is supplied, a list of builtins is
+ printed. The <option>-a</option> option means to print every builtin
+ with an indication of whether or not it is enabled. The
+ <option>-s</option> option restricts the output to the POSIX.2
+ `special' builtins. The <option>-n</option> option displays a list
+ of all disabled builtins.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>eval</command>
+ </para>
+ </entry>
+ <entry>
+<screen>eval [ARG ...]</screen>
+ <para>
+ Read <replaceable>ARG</replaceable>s as input to the shell and
+ execute the resulting command(s).
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>exec</command>
+ </para>
+ </entry>
+ <entry>
+<screen>exec [-cl] [-a name] file [redirection ...]</screen>
+ <para>
+ Exec <replaceable>FILE</replaceable>, replacing this shell with the
+ specified program. If <replaceable>FILE</replaceable> is not
+ specified, the redirections take effect in this shell. If the first
+ argument is <option>-l</option>, then place a dash in the zeroth arg
+ passed to <replaceable>FILE</replaceable>, as login does. If the
+ <option>-c</option> option is supplied, FILE is executed with a null
+ environment. The <option>-a</option> option means to make set
+ argv[0] of the executed process to <replaceable>NAME</replaceable>.
+ If the file cannot be executed and the shell is not interactive,
+ then the shell exits, unless the shell option
+ <option>execfail</option> is set.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>exit</command>
+ </para>
+ </entry>
+ <entry>
+<screen>exit [N]</screen>
+ <para>
+ Exit the shell with a status of <replaceable>N</replaceable>. If
+ <replaceable>N</replaceable> is omitted, the exit status is that of
+ the last command executed.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>export</command>
+ </para>
+ </entry>
+ <entry>
+<screen>export [-nf] [NAME[=value] ...]
+export -p</screen>
+ <para>
+ <replaceable>NAME</replaceable>s are marked for automatic export to
+ the environment of subsequently executed commands. If the
+ <option>-f</option> option is given, the
+ <replaceable>NAME</replaceable>s refer to functions. If no
+ <replaceable>NAME</replaceable>s are given, or if
+ <option>-p</option> is given, a list of all names that are exported
+ in this shell is printed. An argument of <option>-n</option> says to
+ remove the export property from subsequent
+ <replaceable>NAME</replaceable>s. An argument of <option>--</option>
+ disables further option processing.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>false</command>
+ </para>
+ </entry>
+ <entry>
+<screen>false</screen>
+ <para>
+ Return an unsuccessful result.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>fc</command>
+ </para>
+ </entry>
+ <entry>
+<screen>fc [-e ename] [-nlr] [FIRST] [LAST]
+fc -s [pat=rep] [cmd]</screen>
+ <para>
+ fc is used to list or edit and re-execute commands from the history
+ list. <replaceable>FIRST</replaceable> and
+ <replaceable>LAST</replaceable> can be numbers specifying the range,
+ or <replaceable>FIRST</replaceable> can be a string, which means the
+ most recent command beginning with that string.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>fg</command>
+ </para>
+ </entry>
+ <entry>
+<screen>fg [JOB_SPEC]</screen>
+ <para>
+ Place <replaceable>JOB_SPEC</replaceable> in the foreground, and
+ make it the current job. If <replaceable>JOB_SPEC</replaceable> is
+ not present, the shell's notion of the current job is used.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>for</command>
+ </para>
+ </entry>
+ <entry>
+<screen>for NAME [in WORDS ... ;] do COMMANDS; done</screen>
+ <para>
+ The <command>for</command> loop executes a sequence of commands for
+ each member in a list of items. If <literal>in WORDS ...;</literal>
+ is not present, then <literal>in "$@"</literal> is assumed. For each
+ element in <replaceable>WORDS</replaceable>,
+ <replaceable>NAME</replaceable> is set to that element, and the
+ <replaceable>COMMANDS</replaceable> are executed.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>function</command>
+ </para>
+ </entry>
+ <entry>
+<screen>function NAME { COMMANDS ; }
+function NAME () { COMMANDS ; }</screen>
+ <para>
+ Create a simple command invoked by <replaceable>NAME</replaceable>
+ which runs <replaceable>COMMANDS</replaceable>. Arguments on the
+ command line along with <replaceable>NAME</replaceable> are passed
+ to the function as <option>$0</option> .. <option>$n</option>.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>getopts</command>
+ </para>
+ </entry>
+ <entry>
+<screen>getopts OPTSTRING NAME [arg]</screen>
+ <para>
+ Getopts is used by shell procedures to parse positional parameters.
+ </para>
+ <para></para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>hash</command>
+ </para>
+ </entry>
+ <entry>
+<screen>hash [-lr] [-p PATHNAME] [-dt] [NAME...]</screen>
+ <para>
+ For each <replaceable>NAME</replaceable>, the full pathname of the
+ command is determined and remembered. If the <option>-p</option>
+ option is supplied, <replaceable>PATHNAME</replaceable> is used as
+ the full pathname of <replaceable>NAME</replaceable>, and no path
+ search is performed. The <option>-r</option> option causes the shell
+ to forget all remembered locations. The <option>-d</option> option
+ causes the shell to forget the remembered location of each
+ <replaceable>NAME</replaceable>. If the <option>-t</option> option
+ is supplied the full pathname to which each
+ <replaceable>NAME</replaceable> corresponds is printed. If multiple
+ <replaceable>NAME</replaceable> arguments are supplied with
+ <option>-t</option>, the <replaceable>NAME</replaceable> is printed
+ before the hashed full pathname. The <option>-l</option> option
+ causes output to be displayed in a format that may be reused as
+ input. If no arguments are given, information about remembered
+ commands is displayed.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>history</command>
+ </para>
+ </entry>
+ <entry>
+<screen>history [-c] [-d OFFSET] [n]
+history -ps arg [arg...]
+history -awrm [filename]</screen>
+ <para>
+ Display the history list with line numbers. Lines listed with with a
+ <literal>*</literal> have been modified. Argument of
+ <replaceable>N</replaceable> says to list only the last
+ <replaceable>N</replaceable> lines. The <option>-c</option> option
+ causes the history list to be cleared by deleting all of the
+ entries. The <option>-d</option> option deletes the history entry at
+ offset <replaceable>OFFSET</replaceable>. The <option>-w</option>
+ option writes out the current history to the history file;
+ <option>-r</option> means to read the file and append the contents
+ to the history list instead. <option>-a</option> means to append
+ history lines from this session to the history file. Argument
+ <option>-n</option> means to read all history lines not already read
+ from the history file and append them to the history list.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>jobs</command>
+ </para>
+ </entry>
+ <entry>
+<screen>jobs [-lnprs] [JOBSPEC ...]
+job -x COMMAND [ARGS]</screen>
+ <para>
+ Lists the active jobs. The <option>-l</option> option lists process
+ id's in addition to the normal information; the <option>-p</option>
+ option lists process id's only. If <option>-n</option> is given,
+ only processes that have changed status since the last notification
+ are printed. <replaceable>JOBSPEC</replaceable> restricts output to
+ that job. The <option>-r</option> and <option>-s</option> options
+ restrict output to running and stopped jobs only, respectively.
+ Without options, the status of all active jobs is printed. If
+ <option>-x</option> is given, <replaceable>COMMAND</replaceable> is
+ run after all job specifications that appear in
+ <replaceable>ARGS</replaceable> have been replaced with the process
+ ID of that job's process group leader.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>kill</command>
+ </para>
+ </entry>
+ <entry>
+<screen>kill [-s sigspec | -n signum | -sigspec] pid | JOBSPEC ...
+kill -l [sigspec]</screen>
+ <para>
+ Send the processes named by PID (or
+ <replaceable>JOBSPEC</replaceable>) the signal SIGSPEC. If SIGSPEC
+ is not present, then SIGTERM is assumed. An argument of
+ <option>-l</option> lists the signal names; if arguments follow
+ <option>-l</option> they are assumed to be signal numbers for which
+ names should be listed. Kill is a shell builtin for two reasons: it
+ allows job IDs to be used instead of process IDs, and, if you have
+ reached the limit on processes that you can create, you don't have
+ to start a process to kill another one.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>let</command>
+ </para>
+ </entry>
+ <entry>
+<screen>let ARG [ARG ...]</screen>
+ <para>
+ Each <replaceable>ARG</replaceable> is an arithmetic expression to
+ be evaluated. Evaluation is done in fixed-width integers with no
+ check for overflow, though division by 0 is trapped and flagged as
+ an error. The following list of operators is grouped into levels of
+ equal-precedence operators. The levels are listed in order of
+ decreasing precedence.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>local</command>
+ </para>
+ </entry>
+ <entry>
+<screen>local NAME[=VALUE] ...</screen>
+ <para>
+ Create a local variable called <replaceable>NAME</replaceable>, and
+ give it <replaceable>VALUE</replaceable>. <command>local</command>
+ can only be used within a function; it makes the variable
+ <replaceable>NAME</replaceable> have a visible scope restricted to
+ that function and its children.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>logout</command>
+ </para>
+ </entry>
+ <entry>
+<screen>logout</screen>
+ <para>
+ Logout of a login shell.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>popd</command>
+ </para>
+ </entry>
+ <entry>
+<screen>popd [+N | -N] [-n]</screen>
+ <para>
+ Removes entries from the directory stack. With no arguments, removes
+ the top directory from the stack, and cd's to the new top directory.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>printf</command>
+ </para>
+ </entry>
+ <entry>
+<screen>printf [-v var] format [ARGUMENTS]</screen>
+ <para>
+ printf formats and prints <replaceable>ARGUMENTS</replaceable> under
+ control of the <replaceable>FORMAT</replaceable>.
+ <replaceable>FORMAT</replaceable> is a character string which
+ contains three types of objects: plain characters, which are simply
+ copied to standard output, character escape sequences which are
+ converted and copied to the standard output, and format
+ specifications, each of which causes printing of the next successive
+ argument. In addition to the standard printf(1) formats,
+ <literal>%b</literal> means to expand backslash escape sequences in
+ the corresponding argument, and <literal>%q</literal> means to quote
+ the argument in a way that can be reused as shell input. If the
+ <option>-v</option> option is supplied, the output is placed into
+ the value of the shell variable VAR rather than being sent to the
+ standard output.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>pushd</command>
+ </para>
+ </entry>
+ <entry>
+<screen>pushd [dir | +N | -N] [-n]</screen>
+ <para>
+ Adds a directory to the top of the directory stack, or rotates the
+ stack, making the new top of the stack the current working
+ directory. With no arguments, exchanges the top two directories.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>pwd</command>
+ </para>
+ </entry>
+ <entry>
+<screen>pwd [-LP]</screen>
+ <para>
+ Print the current working directory. With the <option>-P</option>
+ option, <command>pwd</command> prints the physical directory,
+ without any symbolic links; the <option>-L</option> option makes
+ <command>pwd</command> follow symbolic links.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>read</command>
+ </para>
+ </entry>
+ <entry>
+<screen>read [-ers] [-u fd] [-t timeout] [-p prompt] [-a array] [-n nchars] [-d delim] [NAME ...]</screen>
+ <para>
+ The given <replaceable>NAME</replaceable>s are marked readonly and
+ the values of these <replaceable>NAME</replaceable>s may not be
+ changed by subsequent assignment. If the <option>-f</option> option
+ is given, then functions corresponding to the NAMEs are so marked.
+ If no arguments are given, or if <option>-p</option> is given, a
+ list of all readonly names is printed. The <option>-a</option>
+ option means to treat each NAME as an array variable. An argument of
+ <option>--</option> disables further option processing.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>readonly</command>
+ </para>
+ </entry>
+ <entry>
+<screen>readonly [-af] [NAME[=VALUE] ...]
+readonly -p</screen>
+ <para>
+ The given <replaceable>NAME</replaceable>s are marked readonly and
+ the values of these <replaceable>NAME</replaceable>s may not be
+ changed by subsequent assignment. If the <option>-f</option> option
+ is given, then functions corresponding to the
+ <replaceable>NAME</replaceable>s are so marked. If no arguments are
+ given, or if <option>-p</option> is given, a list of all readonly
+ names is printed. The <option>-a</option> option means to treat each
+ <replaceable>NAME</replaceable> as an array variable. An argument of
+ <option>--</option> disables further option processing.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>return</command>
+ </para>
+ </entry>
+ <entry>
+<screen>return [N]</screen>
+ <para>
+ Causes a function to exit with the return value specified by
+ <replaceable>N</replaceable>. If <replaceable>N</replaceable> is
+ omitted, the return status is that of the last command.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>select</command>
+ </para>
+ </entry>
+ <entry>
+<screen>select NAME [in WORDS ... ;] do COMMANDS; done</screen>
+ <para>
+ The <replaceable>WORDS</replaceable> are expanded, generating a list
+ of words. The set of expanded words is printed on the standard
+ error, each preceded by a number. If <literal>in WORDS</literal> is
+ not present, <literal>in "$@"</literal> is assumed. The
+ <envar>PS3</envar> prompt is then displayed and a line read from the
+ standard input. If the line consists of the number corresponding to
+ one of the displayed words, then <replaceable>NAME</replaceable> is
+ set to that word. If the line is empty,
+ <replaceable>WORDS</replaceable> and the prompt are redisplayed. If
+ EOF is read, the command completes. Any other value read causes
+ <replaceable>NAME</replaceable> to be set to null. The line read is
+ saved in the variable <replaceable>REPLY</replaceable>.
+ <replaceable>COMMANDS</replaceable> are executed after each
+ selection until a break command is executed.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>set</command>
+ </para>
+ </entry>
+ <entry>
+<screen>set [--abefhkmnptuvxBCHP] [-o OPTION] [ARG...]</screen>
+ <para>
+ Sets internal shell options.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>shift</command>
+ </para>
+ </entry>
+ <entry>
+<screen>shift [n]</screen>
+ <para>
+ The positional parameters from <literal>$N+1 ...</literal> are
+ renamed to <literal>$1 ...</literal> If <replaceable>N</replaceable>
+ is not given, it is assumed to be 1.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>shopt</command>
+ </para>
+ </entry>
+ <entry>
+<screen>shopt [-pqsu] [-o long-option] OPTNAME [OPTNAME...]</screen>
+ <para>
+ Toggle the values of variables controlling optional behavior. The
+ <option>-s</option> flag means to enable (set) each
+ <replaceable>OPTNAME</replaceable>; the <option>-u</option> flag
+ unsets each <replaceable>OPTNAME</replaceable>. The
+ <option>-q</option> flag suppresses output; the exit status
+ indicates whether each <replaceable>OPTNAME</replaceable> is set or
+ unset. The <option>-o</option> option restricts the
+ <replaceable>OPTNAME</replaceable>s to those defined for use with
+ <literal>set -o</literal>. With no options, or with the
+ <option>-p</option> option, a list of all settable options is
+ displayed, with an indication of whether or not each is set.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>source</command>
+ </para>
+ </entry>
+ <entry>
+<screen>source FILENAME [ARGS]</screen>
+ <para>
+ Read and execute commands from <replaceable>FILENAME</replaceable>
+ and return. The pathnames in <envar>$PATH</envar> are used to find
+ the directory containing <replaceable>FILENAME</replaceable>. If any
+ <replaceable>ARGS</replaceable> are supplied, they become the
+ positional parameters when <replaceable>FILENAME</replaceable> is
+ executed.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>suspend</command>
+ </para>
+ </entry>
+ <entry>
+<screen>suspend [-f]</screen>
+ <para>
+ Suspend the execution of this shell until it receives a SIGCONT
+ signal. The <option>-f</option> if specified says not to complain
+ about this being a login shell if it is; just suspend anyway.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>test</command>
+ </para>
+ </entry>
+ <entry>
+<screen>test [expr]</screen>
+ <para>
+ Exits with a status of 0 (true) or 1 (false) depending on the
+ evaluation of <replaceable>EXPR</replaceable>. Expressions may be
+ unary or binary. Unary expressions are often used to examine the
+ status of a file. There are string operators as well, and numeric
+ comparison operators.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>time</command>
+ </para>
+ </entry>
+ <entry>
+<screen>time [-p] PIPELINE</screen>
+ <para>
+ Execute <replaceable>PIPELINE</replaceable> and print a summary of
+ the real time, user CPU time, and system CPU time spent executing
+ <replaceable>PIPELINE</replaceable> when it terminates. The return
+ status is the return status of PIPELINE. The <option>-p</option>
+ option prints the timing summary in a slightly different format.
+ This uses the value of the TIMEFORMAT variable as the output format.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>times</command>
+ </para>
+ </entry>
+ <entry>
+<screen>times</screen>
+ <para>
+ Print the accumulated user and system times for processes run from
+ the shell.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>trap</command>
+ </para>
+ </entry>
+ <entry>
+<screen>trap [-lp] [ARG SIGNAL_SPEC ...]</screen>
+ <para>
+ The command <replaceable>ARG</replaceable> is to be read and
+ executed when the shell receives signal(s)
+ <replaceable>SIGNAL_SPEC</replaceable>. If
+ <replaceable>ARG</replaceable> is absent (and a single
+ <replaceable>SIGNAL_SPEC</replaceable> is supplied) or
+ <option>-</option>, each specified signal is reset to its original
+ value. If <replaceable>ARG</replaceable> is the null string each
+ <replaceable>SIGNAL_SPEC</replaceable> is ignored by the shell and
+ by the commands it invokes. If a
+ <replaceable>SIGNAL_SPEC</replaceable> is EXIT (0) the command ARG
+ is executed on exit from the shell. If a
+ <replaceable>SIGNAL_SPEC</replaceable> is DEBUG,
+ <replaceable>ARG</replaceable> is executed after every simple
+ command. If the <option>-p</option> option is supplied then the trap
+ commands associated with each <replaceable>SIGNAL_SPEC</replaceable>
+ are displayed. If no arguments are supplied or if only
+ <option>-p</option> is given, trap prints the list of commands
+ associated with each signal. Each
+ <replaceable>SIGNAL_SPEC</replaceable> is either a signal name in
+ <filename>signal.h</filename> or a signal number. Signal names are
+ case insensitive and the SIG prefix is optional. <literal>trap
+ -l</literal> prints a list of signal names and their corresponding
+ numbers. Note that a signal can be sent to the shell with
+ <literal>kill -signal $$</literal>.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>true</command>
+ </para>
+ </entry>
+ <entry>
+<screen>true</screen>
+ <para>
+ Return a successful result.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>type</command>
+ </para>
+ </entry>
+ <entry>
+<screen>type [-afptP] NAME [NAME ...]</screen>
+<!--<para>For each <replaceable>NAME</replaceable>, indicate
+ how it would be interpreted if used as a command
+ name.</para>
+ <para>If the <option>-t</option> option is used,
+ <command>type</command> outputs a single word which is
+ one of <literal>alias</literal>,
+ <literal>keyword</literal>,
+ <literal>function</literal>, <literal>file</literal>
+ or nothing, if <replaceable>NAME</replaceable> is an
+ alias, shell reserved word, shell function, shell
+ builtin, disk file, or unfound, respectively. </para>-->
+ <para>
+ Obsolete, see <command>declare</command>.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>typeset</command>
+ </para>
+ </entry>
+ <entry>
+<screen>typeset [-afFirtx] [-p] name[=value]</screen>
+ <para>
+ Obsolete, see <command>declare</command>.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>ulimit</command>
+ </para>
+ </entry>
+ <entry>
+<screen>ulimit [-SHacdfilmnpqstuvx] [limit</screen>
+ <para>
+ Ulimit provides control over the resources available to processes
+ started by the shell, on systems that allow such control.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>umask</command>
+ </para>
+ </entry>
+ <entry>
+<screen>umask [-p] [-S] [MODE]</screen>
+ <para>
+ The user file-creation mask is set to
+ <replaceable>MODE</replaceable>. If <replaceable>MODE</replaceable>
+ is omitted, or if <option>-S</option> is supplied, the current value
+ of the mask is printed. The <option>-S</option> option makes the
+ output symbolic; otherwise an octal number is output. If
+ <option>-p</option> is supplied, and <replaceable>MODE</replaceable>
+ is omitted, the output is in a form that may be used as input. If
+ <replaceable>MODE</replaceable> begins with a digit, it is
+ interpreted as an octal number, otherwise it is a symbolic mode
+ string like that accepted by chmod(1).
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>unalias</command>
+ </para>
+ </entry>
+ <entry>
+<screen>unalias [-a] NAME [NAME ...]</screen>
+ <para>
+ Remove <replaceable>NAME</replaceable>s from the list of defined
+ aliases. If the <option>-a</option> option is given, then remove all
+ alias definitions.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>unset</command>
+ </para>
+ </entry>
+ <entry>
+<screen>unset [-f] [-v] [NAME ...]</screen>
+ <para>
+ For each <replaceable>NAME</replaceable>, remove the corresponding
+ variable or function. Given the <option>-v</option>, unset will only
+ act on variables. Given the <option>-f</option> flag, unset will
+ only act on functions. With neither flag, unset first tries to unset
+ a variable, and if that fails, then tries to unset a function. Some
+ variables cannot be unset; also see readonly.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>until</command>
+ </para>
+ </entry>
+ <entry>
+<screen>until COMMANDS; do COMMANDS; done</screen>
+ <para>
+ Expand and execute <replaceable>COMMANDS</replaceable> as long as
+ the final command in the <command>until</command>
+ <replaceable>COMMANDS</replaceable> has an exit status which is not
+ zero.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>wait</command>
+ </para>
+ </entry>
+ <entry>
+<screen>wait [N]</screen>
+ <para>
+ Wait for the specified process and report its termination status. If
+ <replaceable>N</replaceable> is not given, all currently active
+ child processes are waited for, and the return code is zero.
+ <replaceable>N</replaceable> may be a process ID or a job
+ specification; if a job spec is given, all processes in the job's
+ pipeline are waited for.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <command>while</command>
+ </para>
+ </entry>
+ <entry>
+<screen>while COMMANDS; do COMMANDS; done</screen>
+ <para>
+ Expand and execute <replaceable>COMMANDS</replaceable> as long as
+ the final command in the <command>while</command>
+ <replaceable>COMMANDS</replaceable> has an exit status of zero.
+ </para>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </refsect1>
+</refentry>
++++++ pacemaker-cts-startcmd.patch ++++++
diff -r 93114fbc53ea cts/CM_ais.py
--- a/cts/CM_ais.py Tue Mar 09 20:00:05 2010 +0100
+++ b/cts/CM_ais.py Tue Mar 09 22:27:19 2010 +0100
@@ -242,8 +242,8 @@
self.update({
"Name" : "crm-flatiron",
- "StartCmd" : CTSvars.INITDIR+"/corosync start",
- "StopCmd" : CTSvars.INITDIR+"/corosync stop",
+ "StartCmd" : CTSvars.INITDIR+"/openais start",
+ "StopCmd" : CTSvars.INITDIR+"/openais stop",
# The next pattern is too early
# "Pat:We_stopped" : "%s.*Service engine unloaded: Pacemaker Cluster Manager",
++++++ pacemaker-pyexecdir.patch ++++++
Index: pacemaker/cts/Makefile.am
===================================================================
--- pacemaker.orig/cts/Makefile.am
+++ pacemaker/cts/Makefile.am
@@ -24,7 +24,7 @@ CLEANFILES = LSBDummy
EXTRA_DIST = $(cts_SCRIPTS) $(cts_DATA)
ctsdir = $(datadir)/$(PACKAGE)/tests/cts
-ctslibdir = $(pythondir)/cts
+ctslibdir = $(pyexecdir)/cts
ctslib_PYTHON = __init__.py \
CTSvars.py \
Index: pacemaker/shell/modules/Makefile.am
===================================================================
--- pacemaker.orig/shell/modules/Makefile.am
+++ pacemaker/shell/modules/Makefile.am
@@ -41,6 +41,6 @@ modules = __init__.py \
vars.py \
xmlutil.py
-shelllibdir = $(pythondir)/crm
+shelllibdir = $(pyexecdir)/crm
shelllib_PYTHON = $(modules)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org