From 29822ee140dff925e2ae965fa2d458b87f10afe2 Mon Sep 17 00:00:00 2001 From: Pavel Moravec Date: Thu, 2 May 2019 21:45:09 +0200 Subject: [PATCH 1/2] don't collect data from other sosreport plugins Tower plugin shouldn't collect data that other sosreport plugins collect. Further, few code optimizations in calling sos API are made. Signed-off-by: Pavel Moravec --- tools/sosreport/tower.py | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/tools/sosreport/tower.py b/tools/sosreport/tower.py index 70cf132207..66594ae10b 100644 --- a/tools/sosreport/tower.py +++ b/tools/sosreport/tower.py @@ -5,7 +5,6 @@ import sos from distutils.version import LooseVersion SOSREPORT_TOWER_COMMANDS = [ - "ansible --version", # ansible core version "awx-manage --version", # tower version "awx-manage list_instances", # tower cluster configuration "awx-manage run_dispatcher --status", # tower dispatch worker status @@ -23,15 +22,11 @@ SOSREPORT_TOWER_COMMANDS = [ SOSREPORT_TOWER_DIRS = [ "/etc/tower/", - "/etc/ansible/", "/etc/supervisord.d/", "/etc/nginx/", "/var/log/tower", "/var/log/nginx", "/var/log/supervisor", - "/var/log/syslog", - "/var/log/udev", - "/var/log/kern*", "/var/log/dist-upgrade", "/var/log/installer", "/var/log/unattended-upgrades", @@ -50,7 +45,7 @@ SOSREPORT_FORBIDDEN_PATHS = [ if LooseVersion(sos.__version__) >= LooseVersion('3.0'): from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin - class tower(Plugin, RedHatPlugin, UbuntuPlugin): + class Tower(Plugin, RedHatPlugin, UbuntuPlugin): '''Collect Ansible Tower related information''' plugin_name = "tower" @@ -59,16 +54,14 @@ if LooseVersion(sos.__version__) >= LooseVersion('3.0'): for path in SOSREPORT_TOWER_DIRS: self.add_copy_spec(path) - for path in SOSREPORT_FORBIDDEN_PATHS: - self.add_forbidden_path(path) + self.add_forbidden_path(SOSREPORT_FORBIDDEN_PATHS) - for command in SOSREPORT_TOWER_COMMANDS: - self.add_cmd_output(command) + self.add_cmd_output(SOSREPORT_TOWER_COMMANDS) else: import sos.plugintools - class tower(sos.plugintools.PluginBase): + class Tower(sos.plugintools.PluginBase): '''Collect Ansible Tower related information''' def setup(self): From 8909a8a8e47234af8f0523a95cdc60bf5803bb07 Mon Sep 17 00:00:00 2001 From: Pavel Moravec Date: Thu, 2 May 2019 21:51:13 +0200 Subject: [PATCH 2/2] sosreport plugin to stick on sos >= 3.0 API only As sosreport 3.0 was released 5 years ago, older sos versions can be ignored / not further supported. Signed-off-by: Pavel Moravec --- tools/sosreport/tower.py | 38 +++++++++----------------------------- 1 file changed, 9 insertions(+), 29 deletions(-) diff --git a/tools/sosreport/tower.py b/tools/sosreport/tower.py index 66594ae10b..4827d76d65 100644 --- a/tools/sosreport/tower.py +++ b/tools/sosreport/tower.py @@ -1,8 +1,7 @@ # Copyright (c) 2016 Ansible, Inc. # All Rights Reserved. -import sos -from distutils.version import LooseVersion +from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin SOSREPORT_TOWER_COMMANDS = [ "awx-manage --version", # tower version @@ -42,36 +41,17 @@ SOSREPORT_FORBIDDEN_PATHS = [ "/var/log/tower/profile" ] -if LooseVersion(sos.__version__) >= LooseVersion('3.0'): - from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin - class Tower(Plugin, RedHatPlugin, UbuntuPlugin): - '''Collect Ansible Tower related information''' - plugin_name = "tower" +class Tower(Plugin, RedHatPlugin, UbuntuPlugin): + '''Collect Ansible Tower related information''' + plugin_name = "tower" - def setup(self): + def setup(self): - for path in SOSREPORT_TOWER_DIRS: - self.add_copy_spec(path) + for path in SOSREPORT_TOWER_DIRS: + self.add_copy_spec(path) - self.add_forbidden_path(SOSREPORT_FORBIDDEN_PATHS) + self.add_forbidden_path(SOSREPORT_FORBIDDEN_PATHS) - self.add_cmd_output(SOSREPORT_TOWER_COMMANDS) - -else: - import sos.plugintools - - class Tower(sos.plugintools.PluginBase): - '''Collect Ansible Tower related information''' - - def setup(self): - - for path in SOSREPORT_TOWER_DIRS: - self.addCopySpec(path) - - for path in SOSREPORT_FORBIDDEN_PATHS: - self.addForbiddenPath(path) - - for command in SOSREPORT_TOWER_COMMANDS: - self.collectExtOutput(command) + self.add_cmd_output(SOSREPORT_TOWER_COMMANDS)