diff options
-rw-r--r-- | sos/plugins/cluster.py | 56 |
1 files changed, 36 insertions, 20 deletions
diff --git a/sos/plugins/cluster.py b/sos/plugins/cluster.py index 6a2354f0..c8240c3e 100644 --- a/sos/plugins/cluster.py +++ b/sos/plugins/cluster.py @@ -22,9 +22,11 @@ class Cluster(Plugin, RedHatPlugin): """ plugin_name = 'cluster' - option_list = [("gfslockdump", 'gather output of gfs lockdumps', 'slow', False), - ("crm_from", 'specify the --from parameter passed to crm_report', 'fast', False), - ('lockdump', 'gather dlm lockdumps', 'slow', False)] + option_list = [ + ("gfslockdump", 'gather output of gfs lockdumps', 'slow', False), + ("crm_from", 'specify the start time for crm_report', 'fast', False), + ('lockdump', 'gather dlm lockdumps', 'slow', False) + ] packages = [ "ricci", @@ -108,28 +110,42 @@ class Cluster(Plugin, RedHatPlugin): result = self.call_ext_prog(dlm_tool) if result['status'] != 0: return - for lockspace in re.compile(r'^name\s+([^\s]+)$', - re.MULTILINE).findall(result['output']): - self.add_cmd_output("dlm_tool lockdebug -svw '%s'" % lockspace, - suggest_filename = "dlm_locks_%s" % lockspace) + + lock_exp = r'^name\s+([^\s]+)$' + lock_re = re.compile(lock_exp, re.MULTILINE) + for lockspace in lock_re.findall(result['output']): + self.add_cmd_output( + "dlm_tool lockdebug -svw '%s'" % lockspace, + suggest_filename="dlm_locks_%s" % lockspace + ) def do_gfslockdump(self): - for mntpoint in self.do_regex_find_all(r'^\S+\s+([^\s]+)\s+gfs\s+.*$', - "/proc/mounts"): - self.add_cmd_output("gfs_tool lockdump %s" % mntpoint, - suggest_filename = "gfs_lockdump_" - + self.mangle_command(mntpoint)) + mnt_exp = r'^\S+\s+([^\s]+)\s+gfs\s+.*$' + for mnt in self.do_regex_find_all(mnt_exp, "/proc/mounts"): + self.add_cmd_output( + "gfs_tool lockdump %s" % mnt, + suggest_filename="gfs_lockdump_" + self.mangle_command(mnt) + ) def postproc(self): for cluster_conf in glob("/etc/cluster/cluster.conf*"): - self.do_file_sub(cluster_conf, - r"(\s*\<fencedevice\s*.*\s*passwd\s*=\s*)\S+(\")", - r"\1%s" %('"***"')) - for luci_cfg in glob("/var/lib/luci/etc/*.ini*"): - self.do_file_sub(luci_cfg, r"(.*secret\s*=\s*)\S+", r"\1******") - self.do_cmd_output_sub("corosync-objctl", - r"(.*fence.*\.passwd=)(.*)", - r"\1******") + self.do_file_sub( + cluster_conf, + r"(\s*\<fencedevice\s*.*\s*passwd\s*=\s*)\S+(\")", + r"\1%s" %('"***"') + ) + + self.do_path_regex_sub( + "/var/lib/luci/etc/.*\.ini", + r"(.*secret\s*=\s*)\S+", + r"\1******" + ) + + self.do_cmd_output_sub( + "corosync-objctl", + r"(.*fence.*\.passwd=)(.*)", + r"\1******" + ) return # vim: et ts=4 sw=4 |