Server IP : 192.64.112.168 / Your IP : 3.145.32.238 Web Server : Apache System : Linux nc-ph-2300-85.bluforrest.com 4.18.0-513.9.1.el8_9.x86_64 #1 SMP Sat Dec 2 05:23:44 EST 2023 x86_64 User : expressoneac ( 1128) PHP Version : 8.0.30 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /lib/python3.6/site-packages/sos/report/plugins/ |
Upload File : |
# This file is part of the sos project: https://github.com/sosreport/sos # # This copyrighted material is made available to anyone wishing to use, # modify, copy, or redistribute it subject to the terms and conditions of # version 2 of the GNU General Public License. # # See the LICENSE file in the source distribution for further information. import os from sos.report.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class OpenStackOctavia(Plugin): short_desc = 'Openstack Octavia' plugin_name = "openstack_octavia" profiles = ('openstack', 'openstack_controller') var_config_data = "/var/lib/config-data" var_puppet_gen = var_config_data + "/puppet-generated/octavia" resources = [ 'amphora', 'availabilityzone', 'availabilityzoneprofile', 'flavor', 'flavorprofile', 'healthmonitor', 'l7policy', 'listener', 'pool', 'provider', 'quota' ] def setup(self): # configs self.add_copy_spec([ "/etc/sysconfig/network-scripts/ifcfg-o-hm0", "/etc/logrotate.d/openstack-octavia", "/etc/octavia/*", "/var/lib/octavia", self.var_config_data + "/octavia/etc/octavia", self.var_puppet_gen + "/etc/octavia", self.var_puppet_gen + "/etc/rsyslog.d", self.var_puppet_gen + "/etc/my.cnf.d/tripleo.cnf", ]) self.add_file_tags({ ".*/etc/octavia/octavia.conf": "octavia_conf" }) # don't collect certificates self.add_forbidden_path("/etc/octavia/certs") self.add_forbidden_path(self.var_config_data + "/etc/octavia/certs") self.add_forbidden_path(self.var_puppet_gen + "/etc/octavia/certs") # logs if self.get_option("all_logs"): self.add_copy_spec([ "/var/log/octavia/*", ]) else: self.add_copy_spec([ "/var/log/octavia/*.log", ]) # commands vars_all = [p in os.environ for p in [ 'OS_USERNAME', 'OS_PASSWORD']] vars_any = [p in os.environ for p in [ 'OS_TENANT_NAME', 'OS_PROJECT_NAME']] if not (all(vars_all) and any(vars_any)) and not \ (self.is_installed("python2-octaviaclient") or self.is_installed("python3-octaviaclient")): self.soslog.warning("Not all environment variables set or " "octavia client package not installed." "Source the environment file for the " "user intended to connect to the " "OpenStack environment and install " "octavia client package.") else: self.add_cmd_output('openstack loadbalancer list', subdir='loadbalancer') for res in self.resources: # get a list for each resource type self.add_cmd_output(f'openstack loadbalancer {res} list', subdir=res) # get details from each resource cmd = f"openstack loadbalancer {res} list -f value -c id" ret = self.exec_cmd(cmd) if ret['status'] == 0: for ent in ret['output'].splitlines(): ent = ent.split()[0] self.add_cmd_output( f"openstack loadbalancer {res} show {ent}", subdir=res) # get capability details from each provider cmd = "openstack loadbalancer provider list -f value -c name" ret = self.exec_cmd(cmd) if ret['status'] == 0: for provider in ret['output'].splitlines(): provider = provider.split()[0] self.add_cmd_output( "openstack loadbalancer provider capability list" f" {provider}", subdir='provider_capability') def postproc(self): protect_keys = [ "ca_private_key_passphrase", "heartbeat_key", "password", "connection", "transport_url", "server_certs_key_passphrase", "memcache_secret_key" ] regexp = fr"(^\s*({'|'.join(protect_keys)})\s*=\s*)(.*)" self.do_path_regex_sub("/etc/octavia/*", regexp, r"\1*********") self.do_path_regex_sub( self.var_puppet_gen + "/etc/octavia/*", regexp, r"\1*********" ) class DebianOctavia(OpenStackOctavia, DebianPlugin, UbuntuPlugin): packages = ( 'octavia-common', 'octavia-api', 'python3-octavia', ) def setup(self): super().setup() if self.get_option("all_logs"): self.add_copy_spec([ "/var/log/apache2/octavia*", ]) else: self.add_copy_spec([ "/var/log/apache2/octavia*.log", ]) class RedHatOctavia(OpenStackOctavia, RedHatPlugin): packages = ('openstack-selinux',) # vim: set et ts=4 sw=4 :