One Hat Cyber Team
Your IP :
216.73.216.109
Server IP :
178.162.244.166
Server :
Linux flexi.hostpinnacleservers.com 5.14.0-611.30.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Feb 11 06:42:00 EST 2026 x86_64
Server Software :
Apache
PHP Version :
8.1.34
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
lib
/
python3.9
/
site-packages
/
sos
/
report
/
plugins
/
Edit File:
openstack_instack.py
# Copyright (C) 2015 Red Hat, Inc., Lee Yarwood <lyarwood@redhat.com> # Copyright (C) 2017 Red Hat, Inc., Martin Schuppert <mschuppert@redhat.com> # 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 configparser import os import re from sos.report.plugins import Plugin, RedHatPlugin NON_CONTAINERIZED_DEPLOY = [ '/home/stack/.instack/install-undercloud.log', '/home/stack/instackenv.json', '/home/stack/undercloud.conf' ] CONTAINERIZED_DEPLOY = [ '/etc/puppet/hieradata/', '/etc/rhosp-release', '/home/stack/*-deploy', '/home/stack/.tripleo/history', '/home/stack/ansible.log', '/home/stack/config-download/', '/home/stack/install-undercloud.log', '/home/stack/overcloud_install.log', '/home/stack/undercloud-install-*.tar.bzip2', '/home/stack/undercloud.conf', '/var/lib/tripleo-config/', '/var/log/heat-launcher/', '/var/log/tripleo-container-image-prepare.log', ] UNDERCLOUD_CONF_PATH = '/home/stack/undercloud.conf' class OpenStackInstack(Plugin): short_desc = 'OpenStack Instack' plugin_name = "openstack_instack" profiles = ('openstack', 'openstack_undercloud') def setup(self): self.add_copy_spec(NON_CONTAINERIZED_DEPLOY + CONTAINERIZED_DEPLOY) if self.get_option("all_logs"): self.add_copy_spec([ "/var/log/zaqar/", ]) else: self.add_copy_spec([ "/var/log/zaqar/*.log", ]) self.add_file_tags({ "/var/log/mistral/executor.log": "mistral_executor_log" }) 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']] self.capture_undercloud_yamls() if not (all(vars_all) and any(vars_any)): self.soslog.warning("Not all environment variables set. Source " "the environment file for the user intended " "to connect to the OpenStack environment.") else: # capture all the possible stack uuids get_stacks = "openstack stack list" stacks = self.collect_cmd_output(get_stacks)['output'] stack_ids = re.findall(r'(\|\s(((\w+-){4})\w+)\s\|)', stacks) # get status of overcloud stack and resources for _sid in stack_ids: sid = _sid[1] self.add_cmd_output([ f"openstack stack show {sid}", f"openstack stack resource list -n 10 {sid}" ]) # get details on failed deployments cmd = f"openstack stack resource list -f value -n 5 {sid}" deployments = self.exec_cmd(cmd) for deployment in deployments['output'].splitlines(): if 'FAILED' in deployment: check = [ "OS::Heat::StructuredDeployment", "OS::Heat::SoftwareDeployment" ] if not any(x in deployment for x in check): continue deploy = deployment.split()[1] cmd = ("openstack software deployment " f"show --long {deployment}") fname = f"failed-deployment-{deploy}.log" self.add_cmd_output(cmd, suggest_filename=fname) self.add_cmd_output("openstack object save " "tripleo-ui-logs tripleo-ui.logs --file -") def capture_undercloud_yamls(self): """ capture yaml files to define overrides """ uc_config = configparser.ConfigParser() try: uc_config.read(UNDERCLOUD_CONF_PATH) override_opts = ['hieradata_override', 'net_config_override'] for opt in override_opts: path = uc_config.get('DEFAULT', opt) if path: if not os.path.isabs(path): path = self.path_join('/home/stack', path) self.add_copy_spec(path) except Exception: # pylint: disable=broad-except pass def postproc(self): # do_file_sub is case insensitive, so protected_keys can be lowercase # only protected_keys = [ ".*_password", ".*_secret", ".*_key", ] regexp = fr"(({'|'.join(protected_keys)})=)(.*)" self.do_file_sub("/home/stack/.instack/install-undercloud.log", regexp, r"\1*********") self.do_file_sub(UNDERCLOUD_CONF_PATH, regexp, r"\1*********") protected_json_keys = ["pm_password", "ssh-key", "password"] json_regexp = fr'("({"|".join(protected_json_keys)})": )(".*?")' self.do_file_sub("/home/stack/instackenv.json", json_regexp, r"\1*********") self.do_file_sub('/home/stack/.tripleo/history', r'(password=)\w+', r'\1*********') self.do_file_sub('/home/stack/overcloud_install.log', r'(Found key: \\".*password.*\\" value: )(\\".+?\\")', r'\1\\"*********\\"') class RedHatRDOManager(OpenStackInstack, RedHatPlugin): packages = ('openstack-selinux',) # vim: set et ts=4 sw=4 :
Simpan