403Webshell
Server IP : 104.21.38.3  /  Your IP : 172.68.164.13
Web Server : Apache
System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64
User : www ( 1000)
PHP Version : 7.4.33
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/python3/dist-packages/sos/report/plugins/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/sos/report/plugins/openstack_database.py
# Copyright (C) 2021 Red Hat, Inc., Jake Hunsaker <[email protected]>

# 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 re


from sos.report.plugins import Plugin, RedHatPlugin, PluginOpt


class OpenStackDatabase(Plugin):

    short_desc = 'Openstack Database Information'
    plugin_name = 'openstack_database'
    profiles = ('openstack', 'openstack_controller')

    option_list = [
        PluginOpt('dump', default=False, desc='Dump select databases'),
        PluginOpt('dumpall', default=False, desc='Dump ALL databases')
    ]

    databases = [
        'cinder',
        'glance',
        'heat',
        'ironic',
        'keystone',
        'mistral',
        '(.*)?neutron',
        'nova.*'
    ]

    def setup(self):
        # determine if we're running databases on the host or in a container
        _db_containers = [
            'galera-bundle-.*',  # overcloud
            'mysql'  # undercloud
        ]

        cname = None
        for container in _db_containers:
            cname = self.get_container_by_name(container)
            if cname:
                break

        fname = "clustercheck_%s" % cname if cname else None
        self.add_cmd_output('clustercheck', container=cname, timeout=15,
                            suggest_filename=fname)

        if self.get_option('dump') or self.get_option('dumpall'):
            db_dump = self.get_mysql_db_string(container=cname)
            db_cmd = "mysqldump --opt %s" % db_dump

            self.add_cmd_output(db_cmd, suggest_filename='mysql_dump.sql',
                                sizelimit=0, container=cname)

    def get_mysql_db_string(self, container=None):

        if self.get_option('dumpall'):
            return '--all-databases'

        collect = []
        dbs = self.exec_cmd('mysql -e "show databases;"', container=container)

        for db in dbs['output'].splitlines():
            if any([re.match(db, reg) for reg in self.databases]):
                collect.append(db)

        return '-B ' + ' '.join(d for d in collect)


class RedHatOpenStackDatabase(OpenStackDatabase, RedHatPlugin):

    packages = ('openstack-selinux', )


# vim: set et ts=4 sw=4 :

Youez - 2016 - github.com/yon3zu
LinuXploit