From 7b5219aab42555b01c06a8978812103f4e1a582b Mon Sep 17 00:00:00 2001
From: "Bryn M. Reeves" <bmr@redhat.com>
Date: Mon, 12 Aug 2013 14:56:19 +0100
Subject: [PATCH 1/2] Fix whitespace insanity in cluster.py

Mixed two and four character indents in one file are NOT COOL.

Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
---
 sos/plugins/cluster.py | 66 +++++++++++++++++++++++++-------------------------
 1 file changed, 33 insertions(+), 33 deletions(-)

diff --git a/sos/plugins/cluster.py b/sos/plugins/cluster.py
index fcb2a41..a78b7cc 100644
--- a/sos/plugins/cluster.py
+++ b/sos/plugins/cluster.py
@@ -55,10 +55,10 @@ class cluster(sos.plugintools.PluginBase):
         self.addCopySpec("/var/log/luci/luci.log")
 
         if self.getOption('gfslockdump'):
-          self.do_gfslockdump()
+            self.do_gfslockdump()
 
         if self.getOption('lockdump'):
-          self.do_lockdump()
+            self.do_lockdump()
 
         self.collectExtOutput("/usr/sbin/rg_test test /etc/cluster/cluster.conf")
         self.collectExtOutput("fence_tool ls -n")
@@ -75,55 +75,55 @@ class cluster(sos.plugintools.PluginBase):
         self.collectExtOutput("/sbin/ipvsadm -L")
 
         if rhelver is 4:
-          self.addCopySpec("/proc/cluster/*")
-          self.collectExtOutput("cman_tool nodes")
+            self.addCopySpec("/proc/cluster/*")
+            self.collectExtOutput("cman_tool nodes")
           
         if rhelver is not 4: # 5+
-          self.collectExtOutput("cman_tool -a nodes")
+            self.collectExtOutput("cman_tool -a nodes")
         
         if rhelver is 5:
-          self.collectExtOutput("group_tool -v")
-          self.collectExtOutput("group_tool dump fence")
-          self.collectExtOutput("group_tool dump gfs")
+            self.collectExtOutput("group_tool -v")
+            self.collectExtOutput("group_tool dump fence")
+            self.collectExtOutput("group_tool dump gfs")
 
         if rhelver not in (4,5): # 6+
-          self.collectExtOutput("corosync-quorumtool -l")
-          self.collectExtOutput("corosync-quorumtool -s")
-          self.collectExtOutput("corosync-cpgtool")
-          self.collectExtOutput("corosync-objctl")
-          self.collectExtOutput("group_tool ls -g1")
-          self.collectExtOutput("gfs_control ls -n")
-          self.collectExtOutput("gfs_control dump")
-          self.collectExtOutput("fence_tool dump")
-          self.collectExtOutput("dlm_tool dump")
-          self.collectExtOutput("dlm_tool ls -n")
+            self.collectExtOutput("corosync-quorumtool -l")
+            self.collectExtOutput("corosync-quorumtool -s")
+            self.collectExtOutput("corosync-cpgtool")
+            self.collectExtOutput("corosync-objctl")
+            self.collectExtOutput("group_tool ls -g1")
+            self.collectExtOutput("gfs_control ls -n")
+            self.collectExtOutput("gfs_control dump")
+            self.collectExtOutput("fence_tool dump")
+            self.collectExtOutput("dlm_tool dump")
+            self.collectExtOutput("dlm_tool ls -n")
 
     def do_lockdump(self):
         rhelver = self.policy().rhelVersion()
 
         if rhelver is 4:
-          status, output, time = self.callExtProg("cman_tool services")
-          for lockspace in re.compile(r'^DLM Lock Space:\s*"([^"]*)".*$', re.MULTILINE).findall(output):
-              self.callExtProg("echo %s > /proc/cluster/dlm_locks" % lockspace)
-              self.collectOutputNow("cat /proc/cluster/dlm_locks",
-                  suggest_filename = "dlm_locks_%s" % lockspace)
+            status, output, time = self.callExtProg("cman_tool services")
+            for lockspace in re.compile(r'^DLM Lock Space:\s*"([^"]*)".*$', re.MULTILINE).findall(output):
+                self.callExtProg("echo %s > /proc/cluster/dlm_locks" % lockspace)
+                self.collectOutputNow("cat /proc/cluster/dlm_locks",
+                                suggest_filename = "dlm_locks_%s" % lockspace)
 
         if rhelver is 5:
-          status, output, time = self.callExtProg("group_tool")
-          for lockspace in re.compile(r'^dlm\s+[^\s]+\s+([^\s]+)$', re.MULTILINE).findall(output):
-            self.collectExtOutput("dlm_tool lockdebug '%s'" % lockspace,
-                suggest_filename = "dlm_locks_%s" % lockspace)
+            status, output, time = self.callExtProg("group_tool")
+            for lockspace in re.compile(r'^dlm\s+[^\s]+\s+([^\s]+)$', re.MULTILINE).findall(output):
+                self.collectExtOutput("dlm_tool lockdebug '%s'" % lockspace,
+                                suggest_filename = "dlm_locks_%s" % lockspace)
 
         else: # RHEL6 or recent Fedora
-          status, output, time = self.callExtProg("dlm_tool ls")
-          for lockspace in re.compile(r'^name\s+([^\s]+)$', re.MULTILINE).findall(output):
-            self.collectExtOutput("dlm_tool lockdebug -svw '%s'" % lockspace,
-                suggest_filename = "dlm_locks_%s" % lockspace)
+            status, output, time = self.callExtProg("dlm_tool ls")
+            for lockspace in re.compile(r'^name\s+([^\s]+)$', re.MULTILINE).findall(output):
+                self.collectExtOutput("dlm_tool lockdebug -svw '%s'" % lockspace,
+                                suggest_filename = "dlm_locks_%s" % lockspace)
 
     def do_gfslockdump(self):
         for mntpoint in self.doRegexFindAll(r'^\S+\s+([^\s]+)\s+gfs\s+.*$', "/proc/mounts"):
-           self.collectExtOutput("/sbin/gfs_tool lockdump %s" % mntpoint,
-               suggest_filename = "gfs_lockdump_" + self.mangleCommand(mntpoint))
+            self.collectExtOutput("/sbin/gfs_tool lockdump %s" % mntpoint,
+                                suggest_filename = "gfs_lockdump_" + self.mangleCommand(mntpoint))
 
     def postproc(self):
         for cluster_conf in glob("/etc/cluster/cluster.conf*"):
-- 
1.7.11.7


From df44e86c3d8bcfb5364d99cd1057b52e15516f8d Mon Sep 17 00:00:00 2001
From: "Bryn M. Reeves" <bmr@redhat.com>
Date: Mon, 12 Aug 2013 15:02:42 +0100
Subject: [PATCH 2/2] Collect crm_report data in cluster plug-in

Resolves: bz989292

Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
---
 sos/plugins/cluster.py | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sos/plugins/cluster.py b/sos/plugins/cluster.py
index a78b7cc..ee6f51c 100644
--- a/sos/plugins/cluster.py
+++ b/sos/plugins/cluster.py
@@ -97,6 +97,8 @@ class cluster(sos.plugintools.PluginBase):
             self.collectExtOutput("fence_tool dump")
             self.collectExtOutput("dlm_tool dump")
             self.collectExtOutput("dlm_tool ls -n")
+            crm_dest = os.path.join(self.cInfo['cmddir'], 'cluster', 'crm_report')
+            self.collectExtOutput("crm_report -S --dest %s" % crm_dest)
 
     def do_lockdump(self):
         rhelver = self.policy().rhelVersion()
-- 
1.7.11.7

