Example #1
0
 def get_parser(self):
     parser = argparse.ArgumentParser(description=self.description)
     ksc_session.Session.register_cli_options(parser)
     ksc_auth.register_argparse_arguments(parser,
                                          sys.argv,
                                          default='v3password')
     parser.add_argument('-s', '--section', dest='section', default='scope')
     return parser
Example #2
0
 def get_parser(self):
     parser = argparse.ArgumentParser(description=self.description)
     ksc_session.Session.register_cli_options(parser)
     ksc_auth.register_argparse_arguments(parser,
                                          sys.argv,
                                          default='v3password')
     parser.add_argument('-s', '--section',
                         dest='section',
                         default='scope')
     return parser
Example #3
0
def main():
    argv = sys.argv[1:]

    # early setup for logging
    if '-d' in argv or '--debug' in argv:
        logging.basicConfig(level=logging.DEBUG)

    parser = argparse.ArgumentParser()
    parser.add_argument('--host',
                        '-H',
                        default=os.environ.get('CONTRAIL_API_HOST',
                                               'localhost'),
                        type=str,
                        help="host to connect to (default='%(default)s')")
    parser.add_argument('--port',
                        '-p',
                        default=os.environ.get('CONTRAIL_API_PORT', 8082),
                        type=int,
                        help="port to connect to (default='%(default)s')")
    parser.add_argument('--protocol',
                        type=str,
                        default=os.environ.get('CONTRAIL_API_PROTOCOL',
                                               'http'),
                        help="protocol used (default=%(default)s)")
    parser.add_argument('--debug', '-d', action="store_true", default=False)
    ksession.Session.register_cli_options(parser)
    # Default auth plugin will be http unless OS_AUTH_PLUGIN envvar is set
    auth.register_argparse_arguments(parser, argv, default="http")
    # Add commands to the parser given the namespaces list
    mgr = CommandManager.register_argparse_commands(parser, argv)

    options = parser.parse_args()

    if not os.path.exists(CONFIG_DIR):
        os.makedirs(CONFIG_DIR)

    command.make_api_session(options)
    try:
        subcmd, subcmd_kwargs = get_subcommand_kwargs(mgr, options.subcmd,
                                                      options)
        logger.debug('Calling %s with %s' % (subcmd, subcmd_kwargs))
        result = subcmd(**subcmd_kwargs)
    except (HttpError, ClientException, CommandError, ResourceNotFound,
            CollectionNotFound, NotFound) as e:
        printo(text_type(e), std_type='stderr')
        exit(1)
    except KeyboardInterrupt:
        pass
    except EOFError:
        pass
    else:
        if result:
            printo(result)
Example #4
0
def session_factory():
    parser = argparse.ArgumentParser(description="")
    ksc_session.Session.register_cli_options(parser)
    ksc_auth.register_argparse_arguments(parser,
                                         sys.argv,
                                         default='v3password')
    args = parser.parse_args()
    auth_plugin = ksc_auth.load_from_argparse_arguments(args)
    session = ksc_session.Session.load_from_cli_options(
        args,
        auth=auth_plugin)
    return session
Example #5
0
def parser_factory(resolver):
    parser = argparse.ArgumentParser(description='')
    ksc_session.Session.register_cli_options(parser)
    ksc_auth.register_argparse_arguments(parser,
                                         sys.argv,
                                         default='v3password')
    parser.add_argument('-s', '--section',
                        dest='section',
                        default='scope')
    parser.add_argument('worker', nargs='?', default='all',
                        help='Worker to execute, defaults to "all"')

    return parser
Example #6
0
def parser_factory(resolver):
    parser = argparse.ArgumentParser(description='')
    ksc_session.Session.register_cli_options(parser)
    ksc_auth.register_argparse_arguments(parser,
                                         sys.argv,
                                         default='v3password')
    parser.add_argument('-s', '--section', dest='section', default='scope')
    parser.add_argument('worker',
                        nargs='?',
                        default='all',
                        help='Worker to execute, defaults to "all"')

    return parser
Example #7
0
def main():
    argv = sys.argv[1:]

    # early setup for logging
    if '-d' in argv or '--debug' in argv:
        logging.basicConfig(level=logging.DEBUG)

    parser = argparse.ArgumentParser()
    parser.add_argument('--host', '-H',
                        default=os.environ.get('CONTRAIL_API_HOST', 'localhost'),
                        type=str,
                        help="host to connect to (default='%(default)s')")
    parser.add_argument('--port', '-p',
                        default=os.environ.get('CONTRAIL_API_PORT', 8082),
                        type=int,
                        help="port to connect to (default='%(default)s')")
    parser.add_argument('--protocol',
                        type=str,
                        default=os.environ.get('CONTRAIL_API_PROTOCOL', 'http'),
                        help="protocol used (default=%(default)s)")
    parser.add_argument('--debug', '-d',
                        action="store_true", default=False)
    ksession.Session.register_cli_options(parser)
    # Default auth plugin will be http unless OS_AUTH_PLUGIN envvar is set
    auth.register_argparse_arguments(parser, argv, default="http")
    # Add commands to the parser given the namespaces list
    mgr = CommandManager.register_argparse_commands(parser, argv)

    options = parser.parse_args()

    if not os.path.exists(CONFIG_DIR):
        os.makedirs(CONFIG_DIR)

    command.make_api_session(options)
    try:
        subcmd, subcmd_kwargs = get_subcommand_kwargs(mgr, options.subcmd, options)
        logger.debug('Calling %s with %s' % (subcmd, subcmd_kwargs))
        result = subcmd(**subcmd_kwargs)
    except (HttpError, ClientException, CommandError,
            ResourceNotFound, CollectionNotFound, NotFound) as e:
        printo(text_type(e), std_type='stderr')
        exit(1)
    except KeyboardInterrupt:
        pass
    except EOFError:
        pass
    else:
        if result:
            printo(result)
Example #8
0
def main():
    argv = sys.argv[1:]

    if '-d' in argv or '--debug' in argv:
        logging.basicConfig(level=logging.DEBUG)
    else:
        logging.basicConfig(level=logging.INFO)

    parser = argparse.ArgumentParser(
        description="Command to generate load on database")
    parser.add_argument('-f', '--force', action='store_true', default=False)
    parser.add_argument('--resources-file',
                        required=True,
                        help='YAML file describing resources to load',
                        type=argparse.FileType('r'))
    parser.add_argument('--cassandra-servers',
                        help="Cassandra server list' (default: %(default)s)",
                        nargs='+',
                        default=['localhost:9160'])
    parser.add_argument('--cassandra-username',
                        help="Cassandra user name (default: %(default)s)",
                        default=None)
    parser.add_argument('--cassandra-password',
                        help="Cassandra user password (default: %(default)s)",
                        default=None)
    parser.add_argument('--db-prefix',
                        help="Cassandra keyspace prefix "
                             "(default: %(default)s)",
                        default="")
    parser.add_argument('--cassandra-batch-size',
                        type=int,
                        help="Job queue size for cassandra batch "
                             "(default: %(default)s)",
                        default=LoadDataBase.BATCH_QUEUE_SIZE)
    parser.add_argument('--dont-populate-zookeeper', action='store_true',
                        help="Do not populate zookeeper database which is "
                             "very slow and may take time "
                             "(default: %(default)s)",
                        default=False)
    parser.add_argument('--zookeeper-servers',
                        help="Zookeeper server list (default: %(default)s)",
                        nargs='+',
                        default=['localhost:2181'])
    parser.add_argument('--rules-per-security-group',
                        type=int,
                        help="Rules ramdomly generated per created security "
                             "group (default: %(default)s)",
                        default=LoadDataBase.RULES_PER_SG)
    ksession.Session.register_cli_options(parser)
    kauth.register_argparse_arguments(parser, argv)

    params, _ = parser.parse_known_args(argv)

    try:
        keystone_auth = kauth.load_from_argparse_arguments(params)
        keystone_session = ksession.Session.load_from_cli_options(
            params, auth=keystone_auth)
        keystone_client = kclient.Client(session=keystone_session)
    except kexceptions.DiscoveryFailure:
        keystone_client = None

    param_dict = vars(params)
    param_dict['keystone_client'] = keystone_client
    for opt in ksession.Session.get_conf_options():
        try:
            param_dict.pop('os_%s' % opt.dest)
        except KeyError:
            param_dict.pop('%s' % opt.dest, None)
    for opt in\
            kauth.base.get_plugin_class(params.os_auth_plugin).get_options():
        param_dict.pop('os_%s' % opt.dest)
    param_dict = {k: v for k, v in param_dict.iteritems()
                  if not k.startswith('os_')}

    database_loader = LoadDataBase(**param_dict)
    database_loader.sanitize_resources()
    database_loader.summarize_resources_to_create()
    database_loader.create_resources()
Example #9
0
 def get_parser(self):
     parser = argparse.ArgumentParser(description=self.description)
     ksc_session.Session.register_cli_options(parser)
     ksc_auth.register_argparse_arguments(parser, sys.argv, default="v3password")
     parser.add_argument("-s", "--section", dest="section", default="scope")
     return parser
Example #10
0
def main():
    argv = sys.argv[1:]

    if '-d' in argv or '--debug' in argv:
        logging.basicConfig(level=logging.DEBUG)
    else:
        logging.basicConfig(level=logging.INFO)

    parser = argparse.ArgumentParser(
        description="Command to generate load on database")
    parser.add_argument('-f', '--force', action='store_true', default=False)
    parser.add_argument('--resources-file',
                        required=True,
                        help='YAML file describing resources to load',
                        type=argparse.FileType('r'))
    parser.add_argument('--cassandra-servers',
                        help="Cassandra server list' (default: %(default)s)",
                        nargs='+',
                        default=['localhost:9160'])
    parser.add_argument('--cassandra-username',
                        help="Cassandra user name (default: %(default)s)",
                        default=None)
    parser.add_argument('--cassandra-password',
                        help="Cassandra user password (default: %(default)s)",
                        default=None)
    parser.add_argument('--db-prefix',
                        help="Cassandra keyspace prefix "
                        "(default: %(default)s)",
                        default="")
    parser.add_argument('--cassandra-batch-size',
                        type=int,
                        help="Job queue size for cassandra batch "
                        "(default: %(default)s)",
                        default=LoadDataBase.BATCH_QUEUE_SIZE)
    parser.add_argument('--zookeeper-servers',
                        help="Zookeeper server list' (default: %(default)s)",
                        nargs='+',
                        default=['localhost:2181'])
    parser.add_argument('--rules-per-security-group',
                        type=int,
                        help="Rules ramdomly generated per created security "
                        "group (default: %(default)s)",
                        default=LoadDataBase.RULES_PER_SG)
    ksession.Session.register_cli_options(parser)
    kauth.register_argparse_arguments(parser, argv)

    params, _ = parser.parse_known_args(argv)

    try:
        keystone_auth = kauth.load_from_argparse_arguments(params)
        keystone_session = ksession.Session.load_from_cli_options(
            params, auth=keystone_auth)
        keystone_client = kclient.Client(session=keystone_session)
    except kexceptions.DiscoveryFailure:
        keystone_client = None

    param_dict = vars(params)
    param_dict['keystone_client'] = keystone_client
    for opt in ksession.Session.get_conf_options():
        try:
            param_dict.pop('os_%s' % opt.dest)
        except KeyError:
            param_dict.pop('%s' % opt.dest, None)
    for opt in\
            kauth.base.get_plugin_class(params.os_auth_plugin).get_options():
        param_dict.pop('os_%s' % opt.dest)
    param_dict = {
        k: v
        for k, v in param_dict.iteritems() if not k.startswith('os_')
    }

    database_loader = LoadDataBase(**param_dict)
    database_loader.sanitize_resources()
    database_loader.summarize_resources_to_create()
    database_loader.create_resources()
Example #11
0
def main():
    argv = sys.argv[1:]

    # early setup for logging
    if '-d' in argv or '--debug' in argv:
        logging.basicConfig(level=logging.DEBUG)
    if '--logging-conf' in argv:
        try:
            path = argv[argv.index('--logging-conf') + 1]
            logging.config.fileConfig(path)
        except IndexError:
            pass

    parser = argparse.ArgumentParser()
    parser.add_argument('--host', '-H',
                        default=os.environ.get('CONTRAIL_API_HOST', 'localhost'),
                        type=str,
                        help="host to connect to (default='%(default)s')")
    parser.add_argument('--port', '-p',
                        default=os.environ.get('CONTRAIL_API_PORT', 8082),
                        type=int,
                        help="port to connect to (default='%(default)s')")
    parser.add_argument('--protocol',
                        type=str,
                        default=os.environ.get('CONTRAIL_API_PROTOCOL', 'http'),
                        help="protocol used (default=%(default)s)")
    parser.add_argument('--debug', '-d',
                        action="store_true", default=False)
    parser.add_argument('--schema-version',
                        default=os.environ.get('CONTRAIL_API_VERSION', None),
                        choices=list_available_schema_version(),
                        help="schema version used by contrail-api server (default=%(default)s)")
    parser.add_argument('--logging-conf',
                        help="python logging configuration file")

    ksession.Session.register_cli_options(parser)
    # Default auth plugin will be http unless OS_AUTH_PLUGIN envvar is set
    auth.register_argparse_arguments(parser, argv, default="http")
    # Add commands to the parser given the namespaces list
    mgr = CommandManager.register_argparse_commands(parser, argv)

    options = parser.parse_args()

    if not os.path.exists(CONFIG_DIR):
        os.makedirs(CONFIG_DIR)

    ContrailAPISession.make(**vars(options))

    if options.schema_version:
        Context().schema = create_schema_from_version(options.schema_version)
    else:
        Context().schema = DummySchema()

    try:
        subcmd, subcmd_kwargs = get_subcommand_kwargs(mgr, options.subcmd, options)
        logger.debug('Calling %s with %s' % (subcmd, subcmd_kwargs))
        result = subcmd(**subcmd_kwargs)
    except (HttpError, ClientException, CommandError, Exists, NotFound) as e:
        printo(text_type(e), std_type='stderr')
        exit(1)
    except KeyboardInterrupt:
        pass
    except EOFError:
        pass
    else:
        if result:
            printo(result)
Example #12
0
def main():
    argv = sys.argv[1:]

    # early setup for logging
    if '-d' in argv or '--debug' in argv:
        logging.basicConfig(level=logging.DEBUG)
    if '--logging-conf' in argv:
        try:
            path = argv[argv.index('--logging-conf') + 1]
            logging.config.fileConfig(path)
        except IndexError:
            pass

    parser = argparse.ArgumentParser()
    parser.add_argument('--host',
                        '-H',
                        default=os.environ.get('CONTRAIL_API_HOST',
                                               'localhost'),
                        type=str,
                        help="host to connect to (default='%(default)s')")
    parser.add_argument('--port',
                        '-p',
                        default=os.environ.get('CONTRAIL_API_PORT', 8082),
                        type=int,
                        help="port to connect to (default='%(default)s')")
    parser.add_argument('--protocol',
                        type=str,
                        default=os.environ.get('CONTRAIL_API_PROTOCOL',
                                               'http'),
                        help="protocol used (default=%(default)s)")
    parser.add_argument('--debug', '-d', action="store_true", default=False)
    parser.add_argument(
        '--schema-version',
        default=os.environ.get('CONTRAIL_API_VERSION', None),
        choices=list_available_schema_version(),
        help="schema version used by contrail-api server (default=%(default)s)"
    )
    parser.add_argument('--logging-conf',
                        help="python logging configuration file")

    ksession.Session.register_cli_options(parser)
    # Default auth plugin will be http unless OS_AUTH_PLUGIN envvar is set
    auth.register_argparse_arguments(parser, argv, default="http")
    # Add commands to the parser given the namespaces list
    mgr = CommandManager.register_argparse_commands(parser, argv)

    options = parser.parse_args()

    if not os.path.exists(CONFIG_DIR):
        os.makedirs(CONFIG_DIR)

    ContrailAPISession.make(**vars(options))

    if options.schema_version:
        Context().schema = create_schema_from_version(options.schema_version)
    else:
        Context().schema = DummySchema()

    try:
        subcmd, subcmd_kwargs = get_subcommand_kwargs(mgr, options.subcmd,
                                                      options)
        logger.debug('Calling %s with %s' % (subcmd, subcmd_kwargs))
        result = subcmd(**subcmd_kwargs)
    except (HttpError, ClientException, CommandError, Exists, NotFound) as e:
        printo(text_type(e), std_type='stderr')
        exit(1)
    except KeyboardInterrupt:
        pass
    except EOFError:
        pass
    else:
        if result:
            printo(result)
Example #13
0
def main():
    argv = sys.argv[1:]

    parser = argparse.ArgumentParser()
    parser.add_argument("--host", default="localhost:8082", help="host:port to connect to (default='%(default)s')")
    parser.add_argument("--ssl", action="store_true", default=False, help="connect with SSL (default=%(default)s)")
    session.Session.register_cli_options(parser)
    # Default auth plugin will be http unless OS_AUTH_PLUGIN envvar is set
    auth.register_argparse_arguments(parser, argv, default="http")
    options = parser.parse_args()

    if options.ssl:
        APIClient.PROTOCOL = "https"
    if options.host:
        APIClient.HOST = options.host

    auth_plugin = auth.load_from_argparse_arguments(options)
    APIClient.SESSION = session.Session.load_from_cli_options(options, auth=auth_plugin)

    try:
        for p in APIClient().list(ShellContext.current_path):
            ShellContext.completion_queue.put(p)
    except ClientException as e:
        print(e)
        sys.exit(1)

    while True:
        try:
            action = prompt(
                get_prompt_tokens=get_prompt_tokens, history=history, completer=completer, style=PromptStyle
            )
        except (EOFError, KeyboardInterrupt):
            break
        try:
            action_list = action.split()
            cmd = getattr(commands, action_list[0])
            args = action_list[1:]
        except IndexError:
            continue
        except AttributeError:
            print("Command not found. Type help for all commands.")
            continue

        try:
            result = cmd.parse_and_call(*args)
        except (HttpError, ClientException, commands.CommandError) as e:
            print(e)
            continue
        except KeyboardInterrupt:
            continue
        except EOFError:
            break
        else:
            if result is None:
                continue
            elif type(result) == list:
                output_paths = []
                for p in result:
                    output_paths.append(str(p.relative_to(ShellContext.current_path)))
                    ShellContext.completion_queue.put(p)
                print("\n".join(output_paths))
            elif type(result) == dict:
                print(pprint.pformat(result, indent=2))
            else:
                print(result)