Hello community,

here is the log from the commit of package crmsh for openSUSE:Factory checked 
in at 2015-05-15 07:44:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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-04-27 
13:05:03.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.crmsh.new/crmsh.changes 2015-05-15 
07:44:34.000000000 +0200
@@ -1,0 +2,13 @@
+Wed May 13 13:11:43 UTC 2015 - kgronl...@suse.com
+
+- Update to version 2.2.0~rc2+git.1431438882.ae4b493:
+  + doc: Update the documentation for the upgrade command
+  + high: ui_cluster: Add copy command
+  + low: schema: Don't leak PacemakerError exceptions (#93)
+  + Fix CFLAGS for supporting triplet paths with pacemaker
+  + medium: ui_configure: Wait for DC when removing running resource
+  + Medium: hb_report: use faster zypper interface if available
+  + Low: doc: simplify to make it work with python 2.6
+  + Medium: doc: add history guide
+
+-------------------------------------------------------------------

Old:
----
  crmsh-2.2.0~rc2+git.1429973374.667891c.tar.bz2

New:
----
  crmsh-2.2.0~rc2+git.1431438882.ae4b493.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ crmsh.spec ++++++
--- /var/tmp/diff_new_pack.GmsPbH/_old  2015-05-15 07:44:35.000000000 +0200
+++ /var/tmp/diff_new_pack.GmsPbH/_new  2015-05-15 07:44:35.000000000 +0200
@@ -36,7 +36,7 @@
 Summary:        High Availability cluster command-line interface
 License:        GPL-2.0+
 Group:          %{pkg_group}
-Version:        2.2.0~rc2+git.1429973374.667891c
+Version:        2.2.0~rc2+git.1431438882.ae4b493
 Release:        0%{?crmsh_release}%{?dist}
 Url:            http://crmsh.github.io
 Source0:        %{name}-%{version}.tar.bz2

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.GmsPbH/_old  2015-05-15 07:44:35.000000000 +0200
+++ /var/tmp/diff_new_pack.GmsPbH/_new  2015-05-15 07:44:35.000000000 +0200
@@ -1,4 +1,4 @@
 <servicedata>
 <service name="tar_scm">
             <param name="url">git://github.com/ClusterLabs/crmsh.git</param>
-          <param 
name="changesrevision">667891c4a824eefc22aa1e15453a9433d77eab98</param></service></servicedata>
\ No newline at end of file
+          <param 
name="changesrevision">ae4b4937abeef5271d92957ee3aec8f74630e0a0</param></service></servicedata>
\ No newline at end of file

++++++ crmsh-2.2.0~rc2+git.1429973374.667891c.tar.bz2 -> 
crmsh-2.2.0~rc2+git.1431438882.ae4b493.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crmsh-2.2.0~rc2+git.1429973374.667891c/configure.ac 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/configure.ac
--- old/crmsh-2.2.0~rc2+git.1429973374.667891c/configure.ac     2015-04-26 
12:46:49.000000000 +0200
+++ new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/configure.ac     2015-05-13 
15:11:43.000000000 +0200
@@ -109,6 +109,7 @@
 eval sysconfdir="`eval echo ${sysconfdir}`"
 eval sharedstatedir="`eval echo ${sharedstatedir}`"
 eval localstatedir="`eval echo ${localstatedir}`"
+eval includedir="`eval echo ${includedir}`"
 eval libdir="`eval echo ${libdir}`"
 eval infodir="`eval echo ${infodir}`"
 eval mandir="`eval echo ${mandir}`"
@@ -123,7 +124,7 @@
 fi
 AC_SUBST(docdir)
 
-CFLAGS="$CFLAGS -I${prefix}/include/heartbeat -I${prefix}/include/pacemaker"
+CFLAGS="$CFLAGS -I${prefix}/include/heartbeat -I${includedir}/heartbeat 
-I${prefix}/include/pacemaker -I${includedir}/pacemaker"
 
 for j in prefix exec_prefix bindir sbindir libexecdir datadir sysconfdir \
     sharedstatedir localstatedir libdir infodir \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/crm.8.adoc 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/crm.8.adoc
--- old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/crm.8.adoc   2015-04-26 
12:46:49.000000000 +0200
+++ new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/crm.8.adoc   2015-05-13 
15:11:43.000000000 +0200
@@ -933,6 +933,24 @@
 run "cat /proc/uptime"
 ...............
 
+[[cmdhelp_cluster_copy,Copy file to other cluster nodes]]
+==== `copy`
+
+Copy file to other cluster nodes.
+
+Copies the given file to all other nodes unless given a
+list of nodes to copy to as argument.
+
+Usage:
+...............
+copy <filename> [nodes ...]
+...............
+
+Example:
+...............
+copy /etc/motd
+...............
+
 [[cmdhelp_cluster_start,Start cluster services]]
 ==== `start`
 
@@ -3549,25 +3567,28 @@
 template two-apaches.txt
 ...............
 
-[[cmdhelp_configure_upgrade,upgrade the CIB to version 1.0]]
+[[cmdhelp_configure_upgrade,upgrade the CIB]]
 ==== `upgrade`
 
-If you get the `CIB not supported` error, which typically means
-that the current CIB version is coming from the older release,
-you may try to upgrade it to the latest revision. The command
-to perform the upgrade is:
-...............
-# cibadmin --upgrade --force
-...............
-
-If we don't recognize the current CIB as the old one, but you're
-sure that it is, you may force the command.
+Attempts to upgrade the CIB to validate with the current
+version. Commonly, this is required if the error
+`CIB not supported` occurs. It typically means that the
+active CIB version is coming from an older release.
+
+As a safety precaution, the force argument is required if the
++validation-with+ attribute is set to anything other than
++0.6+. Thus in most cases, it is required.
 
 Usage:
 ...............
 upgrade [force]
 ...............
 
+Example:
+...............
+upgrade force
+...............
+
 [[cmdhelp_configure_user,define user access rights]]
 ==== `user`
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/Makefile 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/Makefile
--- old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/Makefile  
2015-04-26 12:46:49.000000000 +0200
+++ new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/Makefile  
2015-05-13 15:11:43.000000000 +0200
@@ -3,10 +3,48 @@
 SRC := faq.adoc documentation.adoc development.adoc installation.adoc \
        configuration.adoc about.adoc rsctest-guide.adoc \
        history-guide.adoc start-guide.adoc man-1.2.adoc scripts.adoc 
man-2.0.adoc
+HISTORY_LISTINGS = include/history-guide/nfs-probe-err.typescript \
+       include/history-guide/sample-cluster.conf.crm \
+       include/history-guide/status-probe-fail.typescript \
+       include/history-guide/resource-trace.typescript \
+       include/history-guide/stonith-corosync-stopped.typescript \
+       include/history-guide/basic-transition.typescript \
+       include/history-guide/diff.typescript \
+       include/history-guide/info.typescript \
+       include/history-guide/resource.typescript \
+       include/history-guide/transition-log.typescript
 TGT := $(patsubst %.adoc,gen/%/index.html,$(SRC))
 CSS := css/crm.css css/font-awesome.min.css
 CSS := $(patsubst %,gen/%,$(CSS))
-IMG := img/loader.gif img/laptop.png img/servers.gif
+ICONS := \
+       img/icons/caution.png \
+       img/icons/example.png \
+       img/icons/home.png \
+       img/icons/important.png \
+       img/icons/next.png \
+       img/icons/note.png \
+       img/icons/prev.png \
+       img/icons/tip.png \
+       img/icons/up.png \
+       img/icons/warning.png \
+       img/icons/callouts/10.png \
+       img/icons/callouts/11.png \
+       img/icons/callouts/12.png \
+       img/icons/callouts/13.png \
+       img/icons/callouts/14.png \
+       img/icons/callouts/15.png \
+       img/icons/callouts/1.png \
+       img/icons/callouts/2.png \
+       img/icons/callouts/3.png \
+       img/icons/callouts/4.png \
+       img/icons/callouts/5.png \
+       img/icons/callouts/6.png \
+       img/icons/callouts/7.png \
+       img/icons/callouts/8.png \
+       img/icons/callouts/9.png
+IMG := $(ICONS) img/loader.gif img/laptop.png img/servers.gif \
+       img/history-guide/sample-cluster.conf.png \
+       img/history-guide/smallapache-start.png
 IMG  := $(patsubst %,gen/%,$(IMG))
 FONTS := fonts/FontAwesome.otf fonts/fontawesome-webfont.eot \
        fonts/fontawesome-webfont.svg fonts/fontawesome-webfont.ttf \
@@ -23,14 +61,16 @@
 
 gen/index.html: index.adoc $(CRMCONF)
        @mkdir -p $(dir $@)
-       @$(ASCIIDOC) --unsafe -b html5 -f $(CRMCONF) -o $@ $<
+       @$(ASCIIDOC) --unsafe -b html5 -a icons -a iconsdir=/img/icons -f 
$(CRMCONF) -o $@ $<
        @python ./postprocess.py -o $@ $<
 
 gen/%/index.html: %.adoc $(CRMCONF)
        @mkdir -p $(dir $@)
-       @$(ASCIIDOC) --unsafe -b html5 -f $(CRMCONF) -o $@ $<
+       @$(ASCIIDOC) --unsafe -b html5 -a icons -a iconsdir=/img/icons -f 
$(CRMCONF) -o $@ $<
        @python ./postprocess.py -o $@ $<
 
+gen/history-guide/index.html: $(HISTORY_LISTINGS)
+
 gen/man/index.html: ../crm.8.adoc $(CRMCONF)
        @mkdir -p $(dir $@)
        @$(ASCIIDOC) --unsafe -b html5 -f $(CRMCONF) -o $@ $<
@@ -60,6 +100,21 @@
        @cp -r $< $@
        @echo "+ $@"
 
+gen/img/icons/callouts/%: img/icons/callouts/%
+       @mkdir -p gen/img/icons/callouts
+       @cp -r $< $@
+       @echo "+ $@"
+
+gen/img/icons/%: img/icons/%
+       @mkdir -p gen/img/icons
+       @cp -r $< $@
+       @echo "+ $@"
+
+gen/img/history-guide/%: img/history-guide/%
+       @mkdir -p gen/img/history-guide
+       @cp -r $< $@
+       @echo "+ $@"
+
 gen/img/%: img/%
        @mkdir -p gen/img
        @cp -r $< $@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/css/crm.css 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/css/crm.css
--- old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/css/crm.css       
2015-04-26 12:46:49.000000000 +0200
+++ new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/css/crm.css       
2015-05-13 15:11:43.000000000 +0200
@@ -476,3 +476,11 @@
 .vg { color: #008080 } /* Name.Variable.Global */
 .vi { color: #008080 } /* Name.Variable.Instance */
 .il { color: #009999 } /* Literal.Number.Integer.Long */
+.highlight .-Color-Black { color: #000000 } /* Color.Black */
+.highlight .-Color-Blue { color: #0000c0 } /* Color.Blue */
+.highlight .-Color-Cyan { color: #008080 } /* Color.Cyan */
+.highlight .-Color-Green { color: #008000 } /* Color.Green */
+.highlight .-Color-Magenta { color: #c000c0 } /* Color.Magenta */
+.highlight .-Color-Red { color: #c00000 } /* Color.Red */
+.highlight .-Color-White { color: #c0c0c0 } /* Color.White */
+.highlight .-Color-Yellow { color: #808000 } /* Color.Yellow */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/documentation.adoc 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/documentation.adoc
--- 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/documentation.adoc    
    2015-04-26 12:46:49.000000000 +0200
+++ 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/documentation.adoc    
    2015-05-13 15:11:43.000000000 +0200
@@ -18,6 +18,7 @@
 * link:/man[Manual (Development)], link:/man-2.0[(Release 2.x)], 
link:/man-1.2[(Release 1.2)]
 * link:/installation[Installation]
 * link:/start-guide[Getting Started]
+* link:/history-guide[History Guide]
 * link:/rsctest-guide[Resource Testing Guide]
 * link:/configuration[Configuration]
 * link:/scripts[Cluster scripts]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/history-guide.adoc 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/history-guide.adoc
--- 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/history-guide.adoc    
    2015-04-26 12:46:49.000000000 +0200
+++ 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/history-guide.adoc    
    2015-05-13 15:11:43.000000000 +0200
@@ -1,3 +1,275 @@
 = Cluster history =
+:source-highlighter: pygments
 
-Work in Progress. Stay tuned.
+This guide should help administrators and consultants tackle
+issues in Pacemaker cluster installations. We concentrate
+on troubleshooting and analysis methods with the crmsh history.
+
+Cluster leaves numerous traces behind, more than any other
+system.  The logs and the rest are spread among all cluster nodes
+and multiple directories. The obvious difficulty is to show that
+information in a consolidated manner. This is where crmsh
+history helps.
+
+Hopefully, the guide will help you investigate your
+specific issue with more efficiency and less effort.
+
+== Sample cluster
+
+In <<Listing 1>> a modestly complex sample cluster is shown with
+which we can experiment and break in some hopefully instructive
+ways.
+
+NOTE: We won't be going into how to setup nodes or configure the
+         cluster. For that, please refer to the
+         link:/start-guide[Getting Started] document.
+
+[source,crmsh]
+[caption="Listing 1: "]
+.Sample cluster configuration[[Listing 1]]
+-----------------
+include::include/history-guide/sample-cluster.conf.crm[]
+-----------------
+
+If you're new to clusters, that configuration may look
+overwhelming. A graphical presentation in <<Image 1>> of the
+essential elements and relations between them is easier on the eye
+(and the mind).
+
+[caption="Image 1: "]
+.Sample cluster configuration as a graph[[Image 1]]
+image::/img/history-guide/sample-cluster.conf.png[link="/img/history-guide/sample-cluster.conf.png"]
+
+As homework, try to match the two cluster representations.
+
+== Quick (& dirty) start
+
+For the impatient, we give here a few examples of history use.
+
+Most of the time you will be dealing with various resource
+(a.k.a. application) induced phenomena. For instance, while
+preparing this document we noticed that a probe failed repeatedly
+on a node which wasn't even running the resource <<Listing 2>>.
+
+[source,ansiclr]
+[caption="Listing 2: "]
+.crm status output[[Listing 2]]
+-----------------
+include::include/history-guide/status-probe-fail.typescript[]
+-----------------
+
+The history +resource+ command shows log messages relevant to the
+supplied resource <<Listing 3>>.
+
+[source,ansiclr]
+[caption="Listing 3: "]
+.Logs on failed +nfs-server+ probe operation[[Listing 3]]
+-----------------
+include::include/history-guide/nfs-probe-err.typescript[]
+-----------------
+
+<1> NFS server error message.
+<2> Warning about a non-existing user id.
+
+NOTE: Messages logged by resource agents are always tagged with
+      'type(ID)' (in <<Listing 3>>: +nfsserver(nfs-server)+).
+      +
+         Everything dumped to +stderr/stdout+ (in <<Listing 3>>:
+         +id: rpcuser: no such user+) is captured and subsequently
+         logged by +lrmd+. The +stdout+ output is at the 'info'
+         severity which is by default _not_ logged by pacemaker
+         since version 1.1.12.
+
+At the very top we see error message reporting that the
+NFS server is running, but some other stuff, apparently
+unexpectedly, is not. However, we know that it cannot be
+running on the 'c' node as it is already running on the 'a' node.
+Not being able to figure out what is going on, we had to turn on
+tracing of the resource agent. <<Listing 4>> shows how to do
+that.
+
+[source,ansiclr]
+[caption="Listing 4: "]
+.Set `nfs-server` probe operation resource tracing[[Listing 4]]
+-----------------
+include::include/history-guide/resource-trace.typescript[]
+-----------------
+
+Trace of the +nfsserver+ RA revealed that the +nfs-server+ init
+script (used internally by the resource agent) _always_ exits
+with success for status. That was actually due to the recent port
+to systemd and erroneous interpretation of `systemctl status`
+semantics: it always exits with success (due to some paradigm
+shift, we guess). FYI, `systemctl is-active` should be used
+instead and it does report a service status as expected.
+
+As a bonus, a minor issue about a non-existing user id +rpcuser+
+is also revealed.
+
+NOTE: Messages in the crm history log output are colored
+      depending on the originating host.
+
+The rest of this document gives more details about crmsh history.
+If you're more of a just-try-it-out person, enter +crm history+
+and experiment. With +history+ commands you cannot really break
+anything (fingers crossed).
+
+== Introduction to crmsh `history`
+
+The history crmsh feature, as the name suggests, deals with the
+past. It was conceived as a facility to bring to the fore all
+trails pacemaker cluster leaves behind which are relevant to a
+particular resource, node, or event. It is used in the first
+place as a troubleshooting tool, but it can also be helpful in
+studying pacemaker clusters.
+
+To begin, we run the `info` command which gives an overview, as
+shown in <<Listing 5>>.
+
+[source,ansiclr]
+[caption="Listing 5: "]
+.Basic history information[[Listing 5]]
+-----------------
+include::include/history-guide/info.typescript[]
+-----------------
+
+The `timeframe` command limits the observed period and helps
+focus on the events of interest. Here we wanted to look at the
+10 minute period. Two transitions were executed during this time.
+
+== Transitions
+
+Transitions are basic units capturing cluster movements
+(resource operations and node events). A transition
+consists of a set of actions to reach a desired cluster
+status as specified in the cluster configuration by the
+user.
+
+Every configuration or status change results in a transition.
+
+Every transition is also a CIB, which is how cluster
+configuration and status are stored. Transitions are saved
+to files, the so called PE (Policy Engine) inputs.
+
+In  <<Listing 6>> we show how to display transitions.
+The listing is annotated to explain the output in more detail.
+
+
+[source,ansiclr]
+[caption="Listing 6: "]
+.Viewing transitions[[Listing 6]]
+-----------------
+include::include/history-guide/basic-transition.typescript[]
+-----------------
+
+<1> The transition command without arguments displays the latest
+transition.
+<2> Graph of transition actions is provided by `graphviz`. See
+<<Image 2>>.
+<3> Output of `crm_simulate` with irrelevant stuff edited out.
+`crm_simulate` was formerly known as `ptest`.
+<4> Transition summary followed by selection of log messages.
+History weeds out messages which are of lesser importance. See
+<<Listing 8>> if you want to see what history has been hiding
+from you here.
+
+Incidentally, if you wonder why all transitions in these examples
+are green, that is not because they were green in any sense of
+the color, but just due to that being color of node 'c': as
+chance would have it, 'c' was calling shots at the time (being
+Designated Coordinator or DC). That is also why all `crmd` and
+`pengine` messages are coming from 'c'.
+
+NOTE: Transitions are the basis of pacemaker operation, make sure
+that you understand them.
+
+What you cannot see in the listing is a graph generated and shown
+in a separate window in your X11 display. <<Image 2>> may not be
+very involved, but we reckon it's as good a start as starts go.
+
+[caption="Image 2: "]
+.Graph for transition 1907[[Image 2]]
+image::/img/history-guide/smallapache-start.png[link="/img/history-guide/smallapache-start.png"]
+
+It may sometimes be useful to see what changed between two
+transitions. History `diff` command is in action in <<Listing 7>>.
+
+[source,ansiclr]
+[caption="Listing 7: "]
+.Viewing transitions[[Listing 7]]
+-----------------
+include::include/history-guide/diff.typescript[]
+-----------------
+
+<1> Configuration diff between two last transitions. Transitions
+may be referenced with indexes starting at 0 and going backwards.
+<2> Status diff between two last transitions.
+
+Whereas configuration diff is (hopefully) obvious, status diff
+needs some explanation: the status section of the PE inputs
+(transitions) always lags behind the configuration.  This is
+because at the time the transition is saved to a file, the
+actions of that transition are yet to be executed. So, the status
+section of transition _N_ corresponds to the configuration _N-1_.
+
+[source,ansiclr]
+[caption="Listing 8: "]
+.Full transition log[[Listing 8]]
+-----------------
+include::include/history-guide/transition-log.typescript[]
+-----------------
+
+== Resource and node events
+
+Apart from transitions, events such as resource start or stop are
+what we usually want to examine. In our extremely exciting
+example of apache resource restart, the history `resource`
+command picks the most interesting resource related messages as
+shown in <<Listing 9>>. Again, history shows only the most
+important log parts.
+
+NOTE: If you want to see more detail (which may not always be
+         recommendable), then use the history `detail` command to
+         increase the level of detail displayed.
+
+[source,ansiclr]
+[caption="Listing 9: "]
+.Resource related messages[[Listing 9]]
+-----------------
+include::include/history-guide/resource.typescript[]
+-----------------
+
+Node related events are node start and stop (cluster-wise),
+node membership changes, and stonith events (aka node fence).
+We'll refrain from showing examples of the history `node`
+command--it is analogue to the `resource` command.
+
+== Viewing logs
+
+History `log` command, unsurprisingly, displays logs. The
+messages from various nodes are weaved and shown in different
+colors for the sake of easier viewing. Unlike other history
+commands, `log` shows all messages captured in the report. If you
+find some of them irrelevant they can be filtered out:
+the `exclude` command takes extended regular expressions and it
+is additive. We usually set the exclude expression to at least
+`ssh|systemd|kernel`. Use `exclude clear` to remove all
+expressions. And don't forget the `timeframe` command that
+imposes a time window on the report.
+
+== External reports, configurations, and graphs
+
+The information source history works with is `hb_report`
+generated report. Even when examining live cluster, `hb_report` is
+run behind the scene to collect the data before presenting it to
+the user. Well, at least to generate the first report: there is a
+special procedure for log refreshing and collecting new PE
+inputs, which runs much faster than creating a report from
+scratch. However, juggling with multiple sources, appending logs,
+moving time windows, may not always be foolproof, and if
+the source gets borked you can always ask for a brand new report
+with `refresh force`.
+
+Analyzing reports from external source is no different from what
+we've seen so far. In fact, there's a `source` command which
+tells history where to look for data.
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/history-guide/sample-cluster.conf.png
 and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/history-guide/sample-cluster.conf.png
 differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/history-guide/smallapache-start.png
 and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/history-guide/smallapache-start.png
 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/README 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/README
--- old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/README  
1970-01-01 01:00:00.000000000 +0100
+++ new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/README  
2015-05-13 15:11:43.000000000 +0200
@@ -0,0 +1,5 @@
+Replaced the plain DocBook XSL admonition icons with Jimmac's DocBook
+icons (http://jimmac.musichall.cz/ikony.php3). I dropped transparency
+from the Jimmac icons to get round MS IE and FOP PNG incompatibilies.
+
+Stuart Rackham
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/callouts/1.png
 and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/callouts/1.png
 differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/callouts/10.png
 and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/callouts/10.png
 differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/callouts/11.png
 and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/callouts/11.png
 differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/callouts/12.png
 and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/callouts/12.png
 differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/callouts/13.png
 and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/callouts/13.png
 differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/callouts/14.png
 and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/callouts/14.png
 differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/callouts/15.png
 and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/callouts/15.png
 differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/callouts/2.png
 and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/callouts/2.png
 differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/callouts/3.png
 and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/callouts/3.png
 differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/callouts/4.png
 and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/callouts/4.png
 differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/callouts/5.png
 and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/callouts/5.png
 differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/callouts/6.png
 and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/callouts/6.png
 differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/callouts/7.png
 and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/callouts/7.png
 differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/callouts/8.png
 and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/callouts/8.png
 differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/callouts/9.png
 and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/callouts/9.png
 differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/caution.png 
and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/caution.png 
differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/example.png 
and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/example.png 
differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/home.png 
and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/home.png 
differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/important.png
 and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/important.png
 differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/next.png 
and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/next.png 
differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/note.png 
and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/note.png 
differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/prev.png 
and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/prev.png 
differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/tip.png and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/tip.png 
differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/up.png and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/up.png 
differ
Files 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/img/icons/warning.png 
and 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/img/icons/warning.png 
differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/include/history-guide/basic-transition.typescript
 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/include/history-guide/basic-transition.typescript
--- 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/include/history-guide/basic-transition.typescript
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/include/history-guide/basic-transition.typescript
 2015-05-13 15:11:43.000000000 +0200
@@ -0,0 +1,22 @@
+crm(live)history# transition <1>
+INFO: running ptest with 
/var/cache/crm/history/live/sle12-c/pengine/pe-input-1907.bz2
+INFO: starting dotty to show transition graph <2>
+Current cluster status: <3>
+Online: [ sle12-a sle12-c ]
+ s-libvirt     (stonith:external/libvirt):     Started sle12-c 
+ ...
+ small-apache  (ocf::heartbeat:apache):        Stopped 
+Transition Summary:
+ * Start   small-apache        (sle12-a)
+Executing cluster transition:
+ * Resource action: small-apache    start on sle12-a
+Revised cluster status:
+Online: [ sle12-a sle12-c ]
+ s-libvirt     (stonith:external/libvirt):     Started sle12-c 
+ ...
+ small-apache  (ocf::heartbeat:apache):        Started sle12-a
+
+Transition sle12-c:pe-input-1907 (20:30:14 - 20:30:15): <4>
+       total 1 actions: 1 Complete
+Apr 15 20:30:14 sle12-c crmd[1136]:   notice: te_rsc_command: Initiating 
action 60: start small-apache_start_0 on sle12-a
+Apr 15 20:30:14 sle12-a apache(small-apache)[1586]: INFO: AH00558: 
httpd2: Could not reliably determine the server's fully qualified domain name, 
using 10.2.12.51. Set the 'ServerName' directive globally to suppress this 
message
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/include/history-guide/diff.typescript
 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/include/history-guide/diff.typescript
--- 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/include/history-guide/diff.typescript
     1970-01-01 01:00:00.000000000 +0100
+++ 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/include/history-guide/diff.typescript
     2015-05-13 15:11:43.000000000 +0200
@@ -0,0 +1,11 @@
+crm(live)history# diff -1 0 <1>
+--- -1
++++ 0
+@@ -11 +11 @@
+-primitive small-apache apache params 
configfile="/etc/apache2/small.conf" meta 
target-role=Stopped
++primitive small-apache apache params 
configfile="/etc/apache2/small.conf" meta 
target-role=Started
+crm(live)history# diff -1 0 status <2>
+--- -1
++++ 0
+@@ -15 +14,0 @@
+- small-apache (ocf::heartbeat:apache):        Started sle12-a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/include/history-guide/info.typescript
 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/include/history-guide/info.typescript
--- 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/include/history-guide/info.typescript
     1970-01-01 01:00:00.000000000 +0100
+++ 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/include/history-guide/info.typescript
     2015-05-13 15:11:43.000000000 +0200
@@ -0,0 +1,16 @@
+# crm history
+crm(live)history# timeframe "Apr 15 20:25" "Apr 15 20:35"
+crm(live)history# info
+Source: live
+Created on: Thu Apr 16 11:32:36 CEST 2015
+By: report -Z -Q -f Wed Apr 15 20:25:00 2015 -t 2015-04-15 20:35:00 
/var/cache/crm/history/live
+Period: 2015-04-15 20:25:00 - 2015-04-15 20:35:00
+Nodes: sle12-a sle12-c
+Groups: nfs-srv nfs-disk
+Resources: s-libvirt p_drbd_nfs nfs-vg fs1 virtual-ip nfs-server websrv 
websrv-ip small-apache
+Transitions: 1906 1907
+crm(live)history# peinputs v
+Date       Start    End       Filename      Client     User       Origin
+====       =====    ===       ========      ======     ====       ======
+2015-04-15 20:29:59 20:30:01  pe-input-1906 no-client  no-user    
no-origin
+2015-04-15 20:30:14 20:30:15  pe-input-1907 no-client  no-user    
no-origin
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/include/history-guide/nfs-probe-err.typescript
 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/include/history-guide/nfs-probe-err.typescript
--- 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/include/history-guide/nfs-probe-err.typescript
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/include/history-guide/nfs-probe-err.typescript
    2015-05-13 15:11:43.000000000 +0200
@@ -0,0 +1,20 @@
+# crm history resource nfs-server
+INFO: fetching new logs, please wait ...
+Dec 16 11:53:23 sle12-c nfsserver(nfs-server)[14911]: <1> ERROR: NFS 
server is up, but the locking daemons are down
+Dec 16 11:53:23 sle12-c crmd[2823]:   notice: te_rsc_command: Initiating 
action 54: stop nfs-server_stop_0 on sle12-a
+Dec 16 11:53:23 sle12-c crmd[2823]:   notice: te_rsc_command: Initiating 
action 3: stop nfs-server_stop_0 on sle12-c (local)
+Dec 16 11:53:23 sle12-c nfsserver(nfs-server)[14944]: INFO: Stopping NFS 
server ...
+Dec 16 11:53:23 sle12-c nfsserver(nfs-server)[14944]: INFO: Stopping 
sm-notify
+Dec 16 11:53:23 sle12-c nfsserver(nfs-server)[14944]: INFO: Stopping 
rpc.statd
+Dec 16 11:53:23 sle12-c nfsserver(nfs-server)[14944]: INFO: NFS server 
stopped
+Dec 16 11:53:23 sle12-c crmd[2823]:   notice: te_rsc_command: Initiating 
action 55: start nfs-server_start_0 on sle12-a
+Dec 16 11:53:23 sle12-a nfsserver(nfs-server)[23255]: INFO: Stopping 
NFS server ...
+Dec 16 11:53:23 sle12-a nfsserver(nfs-server)[23255]: INFO: Stopping 
sm-notify
+Dec 16 11:53:23 sle12-a nfsserver(nfs-server)[23255]: INFO: Stopping 
rpc.statd
+Dec 16 11:53:23 sle12-a nfsserver(nfs-server)[23255]: INFO: NFS server 
stopped
+Dec 16 11:53:23 sle12-a nfsserver(nfs-server)[23320]: INFO: Starting 
NFS server ...
+Dec 16 11:53:23 sle12-a nfsserver(nfs-server)[23320]: INFO: Starting 
rpc.statd.
+Dec 16 11:53:24 sle12-a nfsserver(nfs-server)[23320]: INFO: executing 
sm-notify
+Dec 16 11:53:24 sle12-a nfsserver(nfs-server)[23320]: INFO: NFS server 
started
+Dec 16 11:53:24 sle12-a lrmd[6904]: <2>  notice: operation_finished: 
nfs-server_start_0:23320:stderr [ id: rpcuser: no such user ]
+Dec 16 11:53:24 sle12-a lrmd[6904]: message repeated 3 times: [   
notice: operation_finished: nfs-server_start_0:23320:stderr [ id: rpcuser: no 
such user ]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/include/history-guide/resource-trace.typescript
 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/include/history-guide/resource-trace.typescript
--- 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/include/history-guide/resource-trace.typescript
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/include/history-guide/resource-trace.typescript
   2015-05-13 15:11:43.000000000 +0200
@@ -0,0 +1,7 @@
+# crm resource trace nfs-server monitor 0
+INFO: Trace for nfs-server:monitor is written to 
/var/lib/heartbeat/trace_ra/
+INFO: Trace set, restart nfs-server to trace non-monitor operations
+# crm resource cleanup nfs-server
+Cleaning up nfs-server on sle12-a
+Cleaning up nfs-server on sle12-c
+Waiting for 2 replies from the CRMd.. OK
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/include/history-guide/resource.typescript
 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/include/history-guide/resource.typescript
--- 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/include/history-guide/resource.typescript
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/include/history-guide/resource.typescript
 2015-05-13 15:11:43.000000000 +0200
@@ -0,0 +1,6 @@
+crm(live)history# resource small-apache
+Apr 15 20:29:59 sle12-c crmd[1136]:   notice: te_rsc_command: Initiating 
action 60: stop small-apache_stop_0 on sle12-a
+Apr 15 20:29:59 sle12-a apache(small-apache)[1366]: INFO: Attempting 
graceful stop of apache PID 9155
+Apr 15 20:30:01 sle12-a apache(small-apache)[1366]: INFO: apache 
stopped.
+Apr 15 20:30:14 sle12-a apache(small-apache)[1586]: INFO: AH00558: 
httpd2: Could not reliably determine the server's fully qualified domain name, 
using 10.2.12.51. Set the 'ServerName' directive globally to suppress this 
message
+Apr 15 20:30:14 sle12-c crmd[1136]:   notice: te_rsc_command: Initiating 
action 60: start small-apache_start_0 on sle12-a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/include/history-guide/sample-cluster.conf.crm
 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/include/history-guide/sample-cluster.conf.crm
--- 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/include/history-guide/sample-cluster.conf.crm
     1970-01-01 01:00:00.000000000 +0100
+++ 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/include/history-guide/sample-cluster.conf.crm
     2015-05-13 15:11:43.000000000 +0200
@@ -0,0 +1,54 @@
+node 167906357: sle12-c
+node 167906355: sle12-a
+primitive s-libvirt stonith:external/libvirt \
+       params hostlist="sle12-a sle12-c" 
hypervisor_uri="qemu+ssh://hex-10.suse.de/system?keyfile=/root/.ssh/xen" 
reset_method=reboot \
+       op monitor interval=5m timeout=60s
+primitive p_drbd_nfs ocf:linbit:drbd \
+       params drbd_resource=nfs \
+       op monitor interval=15 role=Master \
+       op monitor interval=30 role=Slave \
+       op start interval=0 timeout=300 \
+       op stop interval=0 timeout=120
+primitive nfs-vg LVM \
+       params volgrpname=nfs-vg
+primitive fs1 Filesystem \
+       params device="/dev/nfs-vg/fs1" directory="/srv/nfs" fstype=ext3 \
+       op monitor interval=30s
+primitive virtual-ip IPaddr2 \
+       params ip=10.2.12.100
+primitive nfs-server nfsserver \
+       params nfs_shared_infodir="/srv/nfs/state" nfs_ip=10.2.12.100 \
+       op monitor interval=30s
+primitive websrv apache \
+       params configfile="/etc/apache2/httpd.conf" \
+       op monitor interval=30
+primitive websrv-ip IPaddr2 \
+       params ip=10.2.12.101
+primitive small-apache apache \
+       params configfile="/etc/apache2/small.conf"
+group nfs-disk nfs-vg fs1
+group nfs-srv virtual-ip nfs-server
+ms ms_drbd_nfs p_drbd_nfs \
+       meta notify=true clone-max=2
+location nfs-pref virtual-ip 100: sle12-a
+location websrv-pref websrv 100: sle12-c
+colocation vg-with-drbd inf: nfs-vg ms_drbd_nfs:Master
+colocation c-nfs inf: nfs-srv nfs-disk
+colocation c-websrv inf: websrv websrv-ip
+colocation small-apache-with-virtual-ip inf: small-apache virtual-ip
+# need fs1 for the NFS server
+order o-nfs inf: nfs-disk nfs-srv
+# websrv serves requests at IP websrv-ip
+order o-websrv inf: websrv-ip websrv
+# small apache serves requests at IP virtual-ip
+order virtual-ip-before-small-apache inf: virtual-ip small-apache
+# drbd device is the nfs-vg PV
+order drbd-before-nfs-vg inf: ms_drbd_nfs:promote nfs-vg:start
+property cib-bootstrap-options: \
+       dc-version=1.1.12-ad083a8 \
+       cluster-infrastructure=corosync \
+       cluster-name=sle12-test3l-public \
+       no-quorum-policy=ignore \
+       last-lrm-refresh=1429192263
+op_defaults op-options: \
+       timeout=120s
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/include/history-guide/status-probe-fail.typescript
 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/include/history-guide/status-probe-fail.typescript
--- 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/include/history-guide/status-probe-fail.typescript
        1970-01-01 01:00:00.000000000 +0100
+++ 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/include/history-guide/status-probe-fail.typescript
        2015-05-13 15:11:43.000000000 +0200
@@ -0,0 +1,15 @@
+# crm status
+Last updated: Tue Dec 16 11:57:04 2014
+Last change: Tue Dec 16 11:53:22 2014
+Stack: corosync
+Current DC: sle12-c (167906357) - partition with quorum
+Version: 1.1.12-ad083a8
+2 Nodes configured
+10 Resources configured
+Online: [ sle12-a sle12-c ]
+[...]
+     nfs-server        (ocf::heartbeat:nfsserver):     Started sle12-a 
+[...]
+Failed actions:
+    nfs-server_monitor_0 on sle12-c 'unknown error' (1): call=298, 
status=complete,
+    last-rc-change='Tue Dec 16 11:53:23 2014', queued=0ms, exec=135ms
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/include/history-guide/stonith-corosync-stopped.typescript
 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/include/history-guide/stonith-corosync-stopped.typescript
--- 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/include/history-guide/stonith-corosync-stopped.typescript
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/include/history-guide/stonith-corosync-stopped.typescript
 2015-05-13 15:11:43.000000000 +0200
@@ -0,0 +1,8 @@
+# crm history node sle12-c
+INFO: fetching new logs, please wait ...
+Dec 19 14:36:18 sle12-c corosync[29551]:   [MAIN  ] Corosync Cluster 
Engine ('2.3.3'): started and ready to provide service.
+Dec 19 14:36:19 sle12-c corosync[29545]: Starting Corosync Cluster Engine 
(corosync): [  OK  ]
+Dec 19 14:36:20 sle12-a pengine[6906]:  warning: pe_fence_node: Node 
sle12-c will be fenced because our peer process is no longer available
+Dec 19 14:36:20 sle12-a pengine[6906]:  warning: stage6: Scheduling 
Node sle12-c for STONITH
+Dec 19 14:36:20 sle12-a crmd[6907]:   notice: te_fence_node: Executing 
reboot fencing operation (65) on sle12-c (timeout=60000)
+Dec 19 14:36:20 sle12-a crmd[6907]:   notice: peer_update_callback: 
Node return implies stonith of sle12-c (action 65) completed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/include/history-guide/transition-log.typescript
 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/include/history-guide/transition-log.typescript
--- 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/include/history-guide/transition-log.typescript
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/include/history-guide/transition-log.typescript
   2015-05-13 15:11:43.000000000 +0200
@@ -0,0 +1,13 @@
+crm(live)history# transition log
+INFO: retrieving information from cluster nodes, please wait ...
+Apr 15 20:30:14 sle12-c crmd[1136]:   notice: do_state_transition: State 
transition S_IDLE -> S_POLICY_ENGINE [ input=I_PE_CALC cause=C_FSA_INTERNAL 
origin=abort_transition_graph ]
+Apr 15 20:30:14 sle12-c stonithd[1132]:   notice: unpack_config: On loss 
of CCM Quorum: Ignore
+Apr 15 20:30:14 sle12-c pengine[1135]:   notice: unpack_config: On loss 
of CCM Quorum: Ignore
+Apr 15 20:30:14 sle12-c pengine[1135]:   notice: LogActions: Start   
small-apache#011(sle12-a)
+Apr 15 20:30:14 sle12-c crmd[1136]:   notice: do_te_invoke: Processing 
graph 123 (ref=pe_calc-dc-1429122614-234) derived from 
/var/lib/pacemaker/pengine/pe-input-1907.bz2
+Apr 15 20:30:14 sle12-c crmd[1136]:   notice: te_rsc_command: Initiating 
action 60: start small-apache_start_0 on sle12-a
+Apr 15 20:30:14 sle12-c pengine[1135]:   notice: process_pe_message: 
Calculated Transition 123: /var/lib/pacemaker/pengine/pe-input-1907.bz2
+Apr 15 20:30:14 sle12-a stonithd[1160]:   notice: unpack_config: On 
loss of CCM Quorum: Ignore
+Apr 15 20:30:14 sle12-a apache(small-apache)[1586]: INFO: AH00558: 
httpd2: Could not reliably determine the server's fully qualified domain name, 
using 10.2.12.51. Set the 'ServerName' directive globally to suppress this 
message
+Apr 15 20:30:14 sle12-a crmd[1164]:   notice: process_lrm_event: 
Operation small-apache_start_0: ok (node=sle12-a, call=69, rc=0, cib-update=48, 
confirmed=true)
+Apr 15 20:30:15 sle12-c crmd[1136]:   notice: run_graph: Transition 123 
(Complete=1, Pending=0, Fired=0, Skipped=0, Incomplete=0, 
Source=/var/lib/pacemaker/pengine/pe-input-1907.bz2): Complete
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/make-news.py 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/make-news.py
--- old/crmsh-2.2.0~rc2+git.1429973374.667891c/doc/website-v1/make-news.py      
2015-04-26 12:46:49.000000000 +0200
+++ new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/doc/website-v1/make-news.py      
2015-05-13 15:11:43.000000000 +0200
@@ -70,8 +70,7 @@
 
     def date_obj(self):
         from dateutil import parser
-        return (parser.parse(self.date) -
-                datetime.datetime(1970, 1, 1)).total_seconds()
+        return (parser.parse(self.date))
 
     def atom_content(self):
         return escape('<pre>\n' + self.content + '\n</pre>\n')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/hb_report/utillib.sh 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/hb_report/utillib.sh
--- old/crmsh-2.2.0~rc2+git.1429973374.667891c/hb_report/utillib.sh     
2015-04-26 12:46:49.000000000 +0200
+++ new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/hb_report/utillib.sh     
2015-05-13 15:11:43.000000000 +0200
@@ -387,6 +387,10 @@
        local pkg
        debug "get debuginfo packages using zypper: $@"
        zypper -qn ref > /dev/null
+       # use --ignore-unknown if available, much faster
+       # (2 is zypper exit code for syntax/usage)
+       zypper -qn --ignore-unknown install -C $@ >/dev/null
+       [ $? -ne 2 ] && return
        for pkg in $@; do
                zypper -qn install -C $pkg >/dev/null
        done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/modules/config.py 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/modules/config.py
--- old/crmsh-2.2.0~rc2+git.1429973374.667891c/modules/config.py        
2015-04-26 12:46:49.000000000 +0200
+++ new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/modules/config.py        
2015-05-13 15:11:43.000000000 +0200
@@ -158,9 +158,8 @@
 
 class opt_dir(object):
     def __init__(self, path):
-        self.default = ''
-        self.completions = []
         self.default = make_path(path)
+        self.completions = []
 
     def validate(self, val):
         if not os.path.isdir(val):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/modules/corosync.py 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/modules/corosync.py
--- old/crmsh-2.2.0~rc2+git.1429973374.667891c/modules/corosync.py      
2015-04-26 12:46:49.000000000 +0200
+++ new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/modules/corosync.py      
2015-05-13 15:11:43.000000000 +0200
@@ -293,26 +293,7 @@
     '''
     Push the local configuration to the list of remote nodes
     '''
-    try:
-        import parallax
-    except ImportError:
-        raise ValueError("parallax is required to push")
-
-    local_path = conf()
-
-    opts = parallax.Options()
-    opts.timeout = 60
-    opts.ssh_options += ['ControlPersist=no']
-    ok = True
-    for host, result in parallax.copy(nodes,
-                                      local_path,
-                                      local_path, opts).iteritems():
-        if isinstance(result, parallax.Error):
-            err_buf.error("Failed to push configuration to %s: %s" % (host, 
result))
-            ok = False
-        else:
-            err_buf.ok(host)
-    return ok
+    return utils.cluster_copy_file(conf(), nodes)
 
 
 def pull_configuration(from_node):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/modules/pacemaker.py 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/modules/pacemaker.py
--- old/crmsh-2.2.0~rc2+git.1429973374.667891c/modules/pacemaker.py     
2015-04-26 12:46:49.000000000 +0200
+++ new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/modules/pacemaker.py     
2015-05-13 15:11:43.000000000 +0200
@@ -44,13 +44,10 @@
 
 def read_schema_local(validate_name, file_path):
     try:
-        f = open(file_path)
-        schema = f.read()
+        with open(file_path) as f:
+            return f.read()
     except IOError, msg:
-        raise PacemakerError("Cannot read the schema file: " + str(msg))
-
-    f.close()
-    return schema
+        raise PacemakerError("Cannot read schema file '%s': %s" % (file_path, 
msg))
 
 
 def delete_dir(dir_path):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/modules/schema.py 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/modules/schema.py
--- old/crmsh-2.2.0~rc2+git.1429973374.667891c/modules/schema.py        
2015-04-26 12:46:49.000000000 +0200
+++ new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/modules/schema.py        
2015-05-13 15:11:43.000000000 +0200
@@ -106,7 +106,10 @@
 
 def init_schema(cib):
     global _crm_schema
-    _crm_schema = _load_schema(cib)
+    try:
+        _crm_schema = _load_schema(cib)
+    except PacemakerError, msg:
+        common_err(msg)
     reset()
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/modules/ui_cluster.py 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/modules/ui_cluster.py
--- old/crmsh-2.2.0~rc2+git.1429973374.667891c/modules/ui_cluster.py    
2015-04-26 12:46:49.000000000 +0200
+++ new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/modules/ui_cluster.py    
2015-05-13 15:11:43.000000000 +0200
@@ -213,6 +213,14 @@
                 else:
                     err_buf.ok("[%s]\n%s" % (host, result[1]))
 
+    def do_copy(self, context, local_file, *nodes):
+        '''
+        usage: copy <filename> [nodes ...]
+        Copy file to other cluster nodes.
+        If given no nodes as arguments, copy to all other cluster nodes.
+        '''
+        return utils.cluster_copy_file(local_file, nodes)
+
     def do_diff(self, context, filename, *nodes):
         "usage: diff <filename> [--checksum] [nodes...]. Diff file across 
cluster."
         this_node = utils.this_node()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/modules/ui_configure.py 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/modules/ui_configure.py
--- old/crmsh-2.2.0~rc2+git.1429973374.667891c/modules/ui_configure.py  
2015-04-26 12:46:49.000000000 +0200
+++ new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/modules/ui_configure.py  
2015-05-13 15:11:43.000000000 +0200
@@ -526,11 +526,11 @@
     def do_delete(self, context, *args):
         "usage: delete [-f|--force] <id> [<id>...]"
         argl = list(args)
-        arg_force = argl and argl[0] == '--force'
-        if arg_force:
-            del argl[0]
+        arg_force = any((x in ('-f', '--force')) for x in argl)
+        argl = [x for x in argl if (x not in ('-f', '--force'))]
         if arg_force or config.core.force:
             self._stop_if_running(argl)
+            utils.wait4dc(what="Stopping %s" % (", ".join(argl)))
         return cib_factory.delete(*argl)
 
     @command.name('default-timeouts')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crmsh-2.2.0~rc2+git.1429973374.667891c/modules/utils.py 
new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/modules/utils.py
--- old/crmsh-2.2.0~rc2+git.1429973374.667891c/modules/utils.py 2015-04-26 
12:46:49.000000000 +0200
+++ new/crmsh-2.2.0~rc2+git.1431438882.ae4b493/modules/utils.py 2015-05-13 
15:11:43.000000000 +0200
@@ -1447,4 +1447,30 @@
         print "%-16s: %s" % (host, hashlib.sha1(open(path).read()).hexdigest())
 
 
+def cluster_copy_file(local_path, nodes=None):
+    """
+    Copies given file to all other cluster nodes.
+    """
+    try:
+        import parallax
+    except ImportError:
+        raise ValueError("parallax is required to copy cluster files")
+    if not nodes:
+        nodes = list_cluster_nodes()
+        nodes.remove(this_node())
+        opts = parallax.Options()
+    opts.timeout = 60
+    opts.ssh_options += ['ControlPersist=no']
+    ok = True
+    for host, result in parallax.copy(nodes,
+                                      local_path,
+                                      local_path, opts).iteritems():
+        if isinstance(result, parallax.Error):
+            err_buf.error("Failed to push %s to %s: %s" % (local_path, host, 
result))
+            ok = False
+        else:
+            err_buf.ok(host)
+    return ok
+
+
 # vim:ts=4:sw=4:et:


Reply via email to