From a55680e6c8ac87fdf4ee3100717001c1f6f6a08b Mon Sep 17 00:00:00 2001 From: Pavel Moravec Date: Thu, 9 Aug 2018 08:59:53 +0200 Subject: [PATCH 1/3] [process] make lsof execution optional Make calling of lsof command optional (but enabled by default). Also remove "collect lsof-threads when --all-logs" as all-logs has nothing in common. Resolves: #1394 Signed-off-by: Pavel Moravec --- sos/plugins/process.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sos/plugins/process.py b/sos/plugins/process.py index 755eec8d..d1c455a5 100644 --- a/sos/plugins/process.py +++ b/sos/plugins/process.py @@ -17,6 +17,7 @@ class Process(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): profiles = ('system',) option_list = [ + ("lsof", "gathers information on all open files", "slow", True), ("lsof-threads", "gathers threads' open file info if supported", "slow", False) ] @@ -35,9 +36,10 @@ class Process(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): self.add_cmd_output("ps auxwww", root_symlink="ps") self.add_cmd_output("pstree", root_symlink="pstree") - self.add_cmd_output("lsof -b +M -n -l -c ''", root_symlink="lsof") + if self.get_option("lsof"): + self.add_cmd_output("lsof -b +M -n -l -c ''", root_symlink="lsof") - if self.get_option("lsof-threads") or self.get_option("all_logs"): + if self.get_option("lsof-threads"): self.add_cmd_output("lsof -b +M -n -l") self.add_cmd_output([ -- 2.17.1 From 48a1a00685c680ba9fbd5c9b10377e8d0551a926 Mon Sep 17 00:00:00 2001 From: Pavel Moravec Date: Thu, 9 Aug 2018 18:11:38 +0200 Subject: [PATCH 2/3] [policies] RHOSP preset with -k process.lsof=off Make lsof calls on OSP systems disabled by default. Relevant to: #1395 Signed-off-by: Pavel Moravec --- sos/policies/redhat.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sos/policies/redhat.py b/sos/policies/redhat.py index cfbf7808..ee687d46 100644 --- a/sos/policies/redhat.py +++ b/sos/policies/redhat.py @@ -192,6 +192,8 @@ ENV_HOST_SYSROOT = 'HOST' _opts_verify = SoSOptions(verify=True) _opts_all_logs = SoSOptions(all_logs=True) _opts_all_logs_verify = SoSOptions(all_logs=True, verify=True) +_opts_all_logs_no_lsof = SoSOptions(all_logs=True, + plugopts=['process.lsof=off']) RHEL_RELEASE_STR = "Red Hat Enterprise Linux" @@ -219,7 +221,7 @@ rhel_presets = { opts=_opts_verify), RHEL: PresetDefaults(name=RHEL, desc=RHEL_DESC), RHOSP: PresetDefaults(name=RHOSP, desc=RHOSP_DESC, note=NOTE_SIZE, - opts=_opts_all_logs), + opts=_opts_all_logs_no_lsof), RHOCP: PresetDefaults(name=RHOCP, desc=RHOCP_DESC, note=NOTE_SIZE_TIME, opts=_opts_all_logs_verify), RH_SATELLITE: PresetDefaults(name=RH_SATELLITE, desc=RH_SATELLITE_DESC, -- 2.17.1 From 84c30742254a536f70bb4217756416bcf0e8a51b Mon Sep 17 00:00:00 2001 From: Pavel Moravec Date: Thu, 9 Aug 2018 18:14:56 +0200 Subject: [PATCH 3/3] [policies] enable RHOSP preset by presence of rhosp-release package Resolves: #1395 Signed-off-by: Pavel Moravec --- sos/policies/redhat.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sos/policies/redhat.py b/sos/policies/redhat.py index ee687d46..5bfbade2 100644 --- a/sos/policies/redhat.py +++ b/sos/policies/redhat.py @@ -315,6 +315,8 @@ No changes will be made to system configuration. # Package based checks if self.pkg_by_name("satellite-common") is not None: return self.find_preset(RH_SATELLITE) + if self.pkg_by_name("rhosp-release") is not None: + return self.find_preset(RHOSP) # Vanilla RHEL is default return self.find_preset(RHEL) -- 2.17.1