示例#1
0
文件: services.py 项目: 4383/tobiko
    def __init__(self):
        self.services_to_check = [
            'corosync.service', 'iptables.service', 'network.service',
            'ntpd.service', 'pacemaker.service', 'rpcbind.service',
            'sshd.service'
        ]

        self.oc_services_df = overcloud.get_overcloud_nodes_dataframe(
            get_overcloud_node_services_table)
示例#2
0
文件: processes.py 项目: 4383/tobiko
    def __init__(self):
        self.processes_to_check = [
            'ovsdb-server', 'pcsd', 'corosync', 'beam.smp', 'mysqld',
            'redis-server', 'haproxy', 'nova-conductor', 'nova-scheduler',
            'neutron-server', 'nova-compute', 'glance-api'
        ]

        self.oc_procs_df = overcloud.get_overcloud_nodes_dataframe(
            get_overcloud_node_processes_table)
示例#3
0
def get_overcloud_nodes_running_service(service):
    """
    Check what nodes are running the specified service or unit
    process: exact str of a process name as seen in systemctl -a
    :return: list of overcloud nodes
    """
    oc_procs_df = overcloud.get_overcloud_nodes_dataframe(
                                            get_overcloud_node_services_table)
    oc_nodes_running_service = oc_procs_df.query('UNIT=="{}"'.format(service))[
                                                'overcloud_node'].unique()
    return oc_nodes_running_service
示例#4
0
def get_overcloud_nodes_running_process(process):
    """
    Check what nodes are running the specifies
    process: exact str of a process name as seen in ps -axw -o "%c"
    :return: list of overcloud nodes
    """
    oc_procs_df = overcloud.get_overcloud_nodes_dataframe(
        get_overcloud_node_processes_table)
    oc_nodes_running_process = oc_procs_df.query(
        'PROCESS=="{}"'.format(process))['overcloud_node'].unique()
    return oc_nodes_running_process
示例#5
0
def check_if_process_running_on_overcloud(process):
    """
    Check what nodes are running the specifies
    process: exact str of a process name as seen in ps -axw -o "%c"
    :return: list of overcloud nodes
    """
    oc_services_df = overcloud.get_overcloud_nodes_dataframe(
                                            get_overcloud_node_services_table)
    if not oc_services_df.query('UNIT=="{}"'.format(process)).empty:
        return True
    else:
        return False
示例#6
0
    def basic_overcloud_processes_running(self):
        """
        Checks that the oc_procs_df dataframe has all of the list procs
        :return: Bool
        """

        for attempt_number in range(600):

            try:

                for process_name in self.processes_to_check:
                    # osp16/python3 process is "neutron-server:"
                    if process_name == 'neutron-server' and \
                            self.oc_procs_df.query('PROCESS=="{}"'.format(
                            process_name)).empty:
                        process_name = 'neutron-server:'
                    if not self.oc_procs_df.query(
                            'PROCESS=="{}"'.format(process_name)).empty:
                        LOG.info("overcloud processes status checks: "
                                 "process {} is  "
                                 "in running state".format(process_name))
                        continue
                    else:
                        LOG.info(
                            "Failure : overcloud processes status checks:"
                            "process {} is not running ".format(process_name))
                        raise OvercloudProcessesException(
                            process_error="process {} is not running ".format(
                                process_name))
                # if all procs are running we can return true
                return True
            except OvercloudProcessesException:
                LOG.info('Retrying overcloud processes checks attempt '
                         '{} of 360'.format(attempt_number))
                time.sleep(1)
                self.oc_procs_df = overcloud.get_overcloud_nodes_dataframe(
                    get_overcloud_node_processes_table)
        # exhausted all retries
        tobiko.fail('Not all overcloud processes are running !\n')
示例#7
0
    def __init__(self):
        self.processes_to_check = [
            'ovsdb-server', 'pcsd', 'corosync', 'beam.smp', 'mysqld',
            'redis-server', 'haproxy', 'nova-conductor', 'nova-scheduler',
            'neutron-server', 'nova-compute', 'glance-api'
        ]

        self.ovn_processes_to_check_per_node = [{
            'name': 'ovn-controller',
            'node_group': 'controller',
            'number': 'all'
        }, {
            'name': 'ovn-controller',
            'node_group': 'compute',
            'number': 'all'
        }, {
            'name': 'ovn-northd',
            'node_group': 'controller',
            'number': 1
        }]

        self.oc_procs_df = overcloud.get_overcloud_nodes_dataframe(
            get_overcloud_node_processes_table)
示例#8
0
 def setup_fixture(self):
     self.oc_services_df = overcloud.get_overcloud_nodes_dataframe(
         get_overcloud_node_services_table)