
Current cluster status:
Node node1 (uuid1): UNCLEAN (online)
Online: [ node2 ]

 stonith-1	(stonith:dummy):	Stopped 
 Resource Group: group1
     rsc1	(heartbeat:apache):	Started node1
     rsc2	(heartbeat:apache):	Started node1
 rsc3	(heartbeat:apache):	Started node2

Transition Summary:
 * Fence (reboot) node1 'peer process is no longer available'
 * Start   stonith-1	(node2)
 * Move       rsc1          ( node1 -> node2 )  
 * Move       rsc2          ( node1 -> node2 )  
 * Restart    rsc3          (          node2 )  

Executing cluster transition:
 * Resource action: stonith-1       monitor on node2
 * Resource action: rsc1            monitor on node2
 * Resource action: rsc2            monitor on node2
 * Fencing node1 (reboot)
 * Resource action: stonith-1       start on node2
 * Pseudo action:   group1_stop_0
 * Pseudo action:   rsc2_stop_0
 * Pseudo action:   rsc1_stop_0
 * Pseudo action:   group1_stopped_0
 * Resource action: rsc3            stop on node2
 * Resource action: rsc3            start on node2
 * Pseudo action:   group1_start_0
 * Resource action: rsc1            start on node2
 * Resource action: rsc2            start on node2
 * Pseudo action:   group1_running_0

Revised cluster status:
Online: [ node2 ]
OFFLINE: [ node1 ]

 stonith-1	(stonith:dummy):	Started node2
 Resource Group: group1
     rsc1	(heartbeat:apache):	Started node2
     rsc2	(heartbeat:apache):	Started node2
 rsc3	(heartbeat:apache):	Started node2

