diff options
author | Major Hayden <major@mhtx.net> | 2017-02-28 09:03:11 -0600 |
---|---|---|
committer | Bryn M. Reeves <bmr@redhat.com> | 2017-03-28 16:00:41 +0100 |
commit | 5db62a2d3936546a3ff5032a63862c01ebd2c4f0 (patch) | |
tree | bb2a74ea870f6d6b5198f4870ec9ea135f9e1361 | |
parent | 7427a29ca3fc1aedbc783f70a36ea8da32d528f3 (diff) | |
download | sos-5db62a2d3936546a3ff5032a63862c01ebd2c4f0.tar.gz |
[openstack_ansible] Add OpenStack-Ansible plugin
This patch adds a plugin to retrieve configuration content, Ansible
inventory, and cached facts from OpenStack-Ansible deployment nodes.
Resolves: #922.
Signed-off-by: Major Hayden <major@mhtx.net>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-rw-r--r-- | sos/plugins/openstack_ansible.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/sos/plugins/openstack_ansible.py b/sos/plugins/openstack_ansible.py new file mode 100644 index 00000000..0d524757 --- /dev/null +++ b/sos/plugins/openstack_ansible.py @@ -0,0 +1,47 @@ +# Copyright (C) 2017 Major Hayden <major@mhtx.net> + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin + + +class OpenStackAnsible(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): + """OpenStack-Ansible sos plugin.""" + + plugin_name = "openstack_ansible" + profiles = ('openstack',) + files = ('/etc/openstack_deploy/',) + + def setup(self): + """Gathering the contents of the report.""" + self.add_copy_spec([ + "/etc/openstack_deploy/", + "/etc/openstack-release", + "/etc/rpc_deploy/", + "/etc/rpc-release" + ]) + + def postproc(self): + """Remove sensitive keys and passwords from YAML files.""" + secrets_files = [ + "/etc/openstack_deploy/user_secrets.yml", + "/etc/rpc_deploy/user_secrets.yml" + ] + regexp = r"(?m)^\s*#*([\w_]*:\s*).*" + for secrets_file in secrets_files: + self.do_path_regex_sub( + secrets_file, + regexp, + r"\1*********") |