Ejemplo n.º 1
0
def main():
    from common import contrail_test_init
    inputs = contrail_test_init.ContrailTestInit(sys.argv[1])
    host = sys.argv[2] if len(sys.argv) > 2 else None
    role = sys.argv[3] if len(sys.argv) > 3 else None
    service = sys.argv[4] if len(sys.argv) > 4 else None
    contrail_status(inputs, host, role, service)
Ejemplo n.º 2
0
def main():
    from common import contrail_test_init
    inputs = contrail_test_init.ContrailTestInit(sys.argv[1])
    host = sys.argv[2] if len(sys.argv) > 2 else None
    role = sys.argv[3] if len(sys.argv) > 3 else None
    service = sys.argv[4] if len(sys.argv) > 4 else None
    logger = contrail_logging.getLogger('contrail_status')
    contrail_status(inputs, host, role, service, logger=logger)
Ejemplo n.º 3
0
def contrail_status(inputs=None, host=None, role=None, service=None,
                    debug=False, detail=False, timeout=30,
                    keyfile=None, certfile=None, cacert=None,
                    logger=None, refresh=False):
    status_dict = dict()
    if not inputs:
        from common import contrail_test_init
        params = os.environ.get('TEST_CONFIG_FILE') or\
            '/contrail-test/contrail_test_input.yaml'
        inputs = contrail_test_init.ContrailTestInit(params)
    logger = logger or inputs.logger
    certfile = certfile or inputs.introspect_certfile
    keyfile = keyfile or inputs.introspect_keyfile
    cacert = cacert or inputs.introspect_cafile

    if host:
        host = [host] if not isinstance(host, list) else host
    if role:
        role = [role] if not isinstance(role, list) else role
    if service:
        service = [service] if not isinstance(service, list) else service

    for node in host or inputs.host_ips:
        if refresh:
            inputs.refresh_containers(node)
        containers = inputs.get_active_containers(node)
        logger.info(node)
        status_dict[node] = dict()
        if service:
            for svc in service:
                desc = None
                status = get_container_status(
                    inputs.get_container_name(node, svc), containers)
                if status == 'active':
                    status, desc = get_svc_uve_info(node, svc, debug, detail,
                                   timeout, keyfile, certfile, cacert)
                status_dict[node][svc] = {'status': status, 'description': desc}
                logger.info('    %s:%s%s'%(svc, status, ' (%s)'%
                    desc if desc else ''))
        else:
            for r in role or inputs.get_roles(node):
                logger.info('  '+r)
                if r not in CONTRAIL_PODS_SERVICES_MAP:
                    logger.error('role '+r+' is not yet supported')
                    continue
                for svc in CONTRAIL_PODS_SERVICES_MAP[r]:
                    desc = None
                    if inputs.deployer == 'helm' and svc == 'config-rabbitmq':
                        continue
                    status = get_container_status(
                        inputs.get_container_name(node, svc), containers)
                    if status == 'active':
                        status, desc = get_svc_uve_info(node, svc,
                            debug, detail, timeout, keyfile, certfile, cacert)
                    status_dict[node][svc] = {'status': status, 'description': desc}
                    logger.info('    %s:%s%s'%(svc, status, ' (%s)'%
                        desc if desc else ''))
    return status_dict