예제 #1
0
 def build_option_parser(self, description, version):
     parser = super(OpenStackShell, self).build_option_parser(
         description,
         version)
     parser = clientmanager.build_plugin_option_parser(parser)
     parser = auth.build_auth_plugins_option_parser(parser)
     return parser
예제 #2
0
 def build_option_parser(self, description, version):
     parser = super(OpenStackShell, self).build_option_parser(
         description,
         version)
     parser = clientmanager.build_plugin_option_parser(parser)
     parser = auth.build_auth_plugins_option_parser(parser)
     return parser
def get_client_manager():
    """Return a client_manager instance."""

    opts = clientmanager.build_plugin_option_parser(argparse.ArgumentParser())

    cloud = os_client_config.OpenStackConfig().get_one_cloud()
    api_version = {}

    for mod in clientmanager.PLUGIN_MODULES:
        default_version = getattr(mod, 'DEFAULT_API_VERSION', None)
        option = mod.API_VERSION_OPTION.replace('os_', '')
        version_opt = cloud.config.get(option, default_version)
        if version_opt:
            api = mod.API_NAME
            api_version[api] = version_opt

    api_version['identity'] = 3

    client_manager = clientmanager.ClientManager(cli_options=cloud,
                                                 api_version=api_version)

    # https://bugs.launchpad.net/python-openstackclient/+bug/1463535
    client_manager.auth_ref

    return client_manager
예제 #4
0
    def build_option_parser(self, description, version):
        parser = super(OpenStackShell,
                       self).build_option_parser(description, version)

        # service token auth argument
        parser.add_argument(
            '--os-cloud',
            metavar='<cloud-config-name>',
            dest='cloud',
            default=utils.env('OS_CLOUD'),
            help='Cloud name in clouds.yaml (Env: OS_CLOUD)',
        )
        # Global arguments
        parser.add_argument(
            '--os-region-name',
            metavar='<auth-region-name>',
            dest='region_name',
            default=utils.env('OS_REGION_NAME'),
            help='Authentication region name (Env: OS_REGION_NAME)')
        parser.add_argument('--os-cacert',
                            metavar='<ca-bundle-file>',
                            dest='cacert',
                            default=utils.env('OS_CACERT'),
                            help='CA certificate bundle file (Env: OS_CACERT)')
        verify_group = parser.add_mutually_exclusive_group()
        verify_group.add_argument(
            '--verify',
            action='store_true',
            default=None,
            help='Verify server certificate (default)',
        )
        verify_group.add_argument(
            '--insecure',
            action='store_true',
            default=None,
            help='Disable server certificate verification',
        )
        parser.add_argument('--os-default-domain',
                            metavar='<auth-domain>',
                            dest='default_domain',
                            default=utils.env('OS_DEFAULT_DOMAIN',
                                              default=DEFAULT_DOMAIN),
                            help='Default domain ID, default=' +
                            DEFAULT_DOMAIN + ' (Env: OS_DEFAULT_DOMAIN)')
        parser.add_argument('--os-endpoint-type',
                            metavar='<endpoint-type>',
                            dest='endpoint_type',
                            choices=['admin', 'public', 'internal'],
                            default=utils.env('OS_ENDPOINT_TYPE'),
                            help='Select an endpoint type.'
                            ' Valid endpoint types: [admin, public, internal].'
                            ' (Env: OS_ENDPOINT_TYPE)')
        parser.add_argument(
            '--timing',
            default=False,
            action='store_true',
            help="Print API call timing info",
        )

        return clientmanager.build_plugin_option_parser(parser)
예제 #5
0
    def build_option_parser(self, description, version):
        parser = super(OpenStackShell, self).build_option_parser(
            description,
            version)

        # service token auth argument
        parser.add_argument(
            '--os-cloud',
            metavar='<cloud-config-name>',
            dest='cloud',
            default=utils.env('OS_CLOUD'),
            help='Cloud name in clouds.yaml (Env: OS_CLOUD)',
        )
        # Global arguments
        parser.add_argument(
            '--os-region-name',
            metavar='<auth-region-name>',
            dest='region_name',
            default=utils.env('OS_REGION_NAME'),
            help='Authentication region name (Env: OS_REGION_NAME)')
        parser.add_argument(
            '--os-cacert',
            metavar='<ca-bundle-file>',
            dest='cacert',
            default=utils.env('OS_CACERT'),
            help='CA certificate bundle file (Env: OS_CACERT)')
        verify_group = parser.add_mutually_exclusive_group()
        verify_group.add_argument(
            '--verify',
            action='store_true',
            default=None,
            help='Verify server certificate (default)',
        )
        verify_group.add_argument(
            '--insecure',
            action='store_true',
            default=None,
            help='Disable server certificate verification',
        )
        parser.add_argument(
            '--os-default-domain',
            metavar='<auth-domain>',
            dest='default_domain',
            default=utils.env(
                'OS_DEFAULT_DOMAIN',
                default=DEFAULT_DOMAIN),
            help='Default domain ID, default=' +
                 DEFAULT_DOMAIN +
                 ' (Env: OS_DEFAULT_DOMAIN)')
        parser.add_argument(
            '--timing',
            default=False,
            action='store_true',
            help="Print API call timing info",
        )

        return clientmanager.build_plugin_option_parser(parser)
예제 #6
0
    def build_option_parser(self, description, version):
        parser = super(OpenStackShell,
                       self).build_option_parser(description, version)

        # service token auth argument
        parser.add_argument('--os-url',
                            metavar='<url>',
                            default=utils.env('OS_URL'),
                            help='Defaults to env[OS_URL]')
        # Global arguments
        parser.add_argument(
            '--os-region-name',
            metavar='<auth-region-name>',
            default=utils.env('OS_REGION_NAME'),
            help='Authentication region name (Env: OS_REGION_NAME)')
        parser.add_argument('--os-cacert',
                            metavar='<ca-bundle-file>',
                            default=utils.env('OS_CACERT'),
                            help='CA certificate bundle file (Env: OS_CACERT)')
        verify_group = parser.add_mutually_exclusive_group()
        verify_group.add_argument(
            '--verify',
            action='store_true',
            help='Verify server certificate (default)',
        )
        verify_group.add_argument(
            '--insecure',
            action='store_true',
            help='Disable server certificate verification',
        )
        parser.add_argument('--os-default-domain',
                            metavar='<auth-domain>',
                            default=utils.env('OS_DEFAULT_DOMAIN',
                                              default=DEFAULT_DOMAIN),
                            help='Default domain ID, default=' +
                            DEFAULT_DOMAIN + ' (Env: OS_DEFAULT_DOMAIN)')
        parser.add_argument(
            '--timing',
            default=False,
            action='store_true',
            help="Print API call timing info",
        )

        return clientmanager.build_plugin_option_parser(parser)
    # Do useful things with it

    # Look in the object store
    c_list = client_manager.object_store.container_list()
    print("Name\tCount\tBytes")
    for c in c_list:
        print("%s\t%d\t%d" % (c['name'], c['count'], c['bytes']))

    if len(c_list) > 0:
        # See what is in the first container
        o_list = client_manager.object_store.object_list(c_list[0]['name'])
        print("\nObject")
        for o in o_list:
            print("%s" % o)

    # Look at the compute flavors
    flavor_list = client_manager.compute.flavors.list()
    print("\nFlavors:")
    for f in flavor_list:
        print("%s" % f)


if __name__ == "__main__":
    parser = argparse.ArgumentParser(description='ClientManager Example')
    opts = common.base_parser(
        clientmanager.build_plugin_option_parser(parser),
    ).parse_args()

    common.configure_logging(opts)
    sys.exit(common.main(opts, run))
예제 #8
0
    def build_option_parser(self, description, version):
        parser = super(OpenStackShell, self).build_option_parser(
            description,
            version)

        # service token auth argument
        parser.add_argument(
            '--os-cloud',
            metavar='<cloud-config-name>',
            dest='cloud',
            default=utils.env('OS_CLOUD'),
            help='Cloud name in clouds.yaml (Env: OS_CLOUD)',
        )
        # Global arguments
        parser.add_argument(
            '--os-region-name',
            metavar='<auth-region-name>',
            dest='region_name',
            default=utils.env('OS_REGION_NAME'),
            help='Authentication region name (Env: OS_REGION_NAME)')
        parser.add_argument(
            '--os-cacert',
            metavar='<ca-bundle-file>',
            dest='cacert',
            default=utils.env('OS_CACERT'),
            help='CA certificate bundle file (Env: OS_CACERT)')
        verify_group = parser.add_mutually_exclusive_group()
        verify_group.add_argument(
            '--verify',
            action='store_true',
            default=None,
            help='Verify server certificate (default)',
        )
        verify_group.add_argument(
            '--insecure',
            action='store_true',
            default=None,
            help='Disable server certificate verification',
        )
        parser.add_argument(
            '--os-default-domain',
            metavar='<auth-domain>',
            dest='default_domain',
            default=utils.env(
                'OS_DEFAULT_DOMAIN',
                default=DEFAULT_DOMAIN),
            help='Default domain ID, default=' +
                 DEFAULT_DOMAIN +
                 ' (Env: OS_DEFAULT_DOMAIN)')
        parser.add_argument(
            '--os-interface',
            metavar='<interface>',
            dest='interface',
            choices=['admin', 'public', 'internal'],
            default=utils.env('OS_INTERFACE'),
            help='Select an interface type.'
                 ' Valid interface types: [admin, public, internal].'
                 ' (Env: OS_INTERFACE)')
        parser.add_argument(
            '--timing',
            default=False,
            action='store_true',
            help="Print API call timing info",
        )

        # osprofiler HMAC key argument
        if osprofiler_profiler:
            parser.add_argument('--profile',
                                metavar='hmac-key',
                                help='HMAC key to use for encrypting context '
                                'data for performance profiling of operation. '
                                'This key should be the value of one of the '
                                'HMAC keys configured in osprofiler '
                                'middleware in the projects user would like '
                                'to profile. It needs to be specified in '
                                'configuration files of the required '
                                'projects.')

        return clientmanager.build_plugin_option_parser(parser)
예제 #9
0
    def build_option_parser(self, description, version):
        parser = super(OpenStackShell, self).build_option_parser(
            description,
            version)

        # service token auth argument
        parser.add_argument(
            '--os-cloud',
            metavar='<cloud-config-name>',
            dest='cloud',
            default=utils.env('OS_CLOUD'),
            help=_('Cloud name in clouds.yaml (Env: OS_CLOUD)'),
        )
        # Global arguments
        parser.add_argument(
            '--os-region-name',
            metavar='<auth-region-name>',
            dest='region_name',
            default=utils.env('OS_REGION_NAME'),
            help=_('Authentication region name (Env: OS_REGION_NAME)'),
        )
        parser.add_argument(
            '--os-cacert',
            metavar='<ca-bundle-file>',
            dest='cacert',
            default=utils.env('OS_CACERT'),
            help=_('CA certificate bundle file (Env: OS_CACERT)'),
        )
        parser.add_argument(
            '--os-cert',
            metavar='<certificate-file>',
            dest='cert',
            default=utils.env('OS_CERT'),
            help=_('Client certificate bundle file (Env: OS_CERT)'),
        )
        parser.add_argument(
            '--os-key',
            metavar='<key-file>',
            dest='key',
            default=utils.env('OS_KEY'),
            help=_('Client certificate key file (Env: OS_KEY)'),
        )
        verify_group = parser.add_mutually_exclusive_group()
        verify_group.add_argument(
            '--verify',
            action='store_true',
            default=None,
            help=_('Verify server certificate (default)'),
        )
        verify_group.add_argument(
            '--insecure',
            action='store_true',
            default=None,
            help=_('Disable server certificate verification'),
        )
        parser.add_argument(
            '--os-default-domain',
            metavar='<auth-domain>',
            dest='default_domain',
            default=utils.env(
                'OS_DEFAULT_DOMAIN',
                default=DEFAULT_DOMAIN),
            help=_('Default domain ID, default=%s. '
                   '(Env: OS_DEFAULT_DOMAIN)') % DEFAULT_DOMAIN,
        )
        parser.add_argument(
            '--os-interface',
            metavar='<interface>',
            dest='interface',
            choices=['admin', 'public', 'internal'],
            default=utils.env('OS_INTERFACE'),
            help=_('Select an interface type.'
                   ' Valid interface types: [admin, public, internal].'
                   ' (Env: OS_INTERFACE)'),
        )
        parser.add_argument(
            '--timing',
            default=False,
            action='store_true',
            help=_("Print API call timing info"),
        )
        parser.add_argument(
            '--os-beta-command',
            action='store_true',
            help=_("Enable beta commands which are subject to change"),
        )

        # osprofiler HMAC key argument
        if osprofiler_profiler:
            parser.add_argument(
                '--os-profile',
                metavar='hmac-key',
                dest='profile',
                help=_('HMAC key for encrypting profiling context data'),
            )
            # NOTE(dtroyer): This global option should have been named
            #                --os-profile as --profile interferes with at
            #                least one existing command option.  Deprecate
            #                --profile and remove after Apr 2017.
            parser.add_argument(
                '--profile',
                metavar='hmac-key',
                dest='old_profile',
                help=argparse.SUPPRESS,
            )

        return clientmanager.build_plugin_option_parser(parser)
예제 #10
0
    def build_option_parser(self, description, version):
        parser = super(OpenStackShell,
                       self).build_option_parser(description, version)

        # service token auth argument
        parser.add_argument(
            '--os-cloud',
            metavar='<cloud-config-name>',
            dest='cloud',
            default=utils.env('OS_CLOUD'),
            help='Cloud name in clouds.yaml (Env: OS_CLOUD)',
        )
        # Global arguments
        parser.add_argument(
            '--os-region-name',
            metavar='<auth-region-name>',
            dest='region_name',
            default=utils.env('OS_REGION_NAME'),
            help='Authentication region name (Env: OS_REGION_NAME)')
        parser.add_argument('--os-cacert',
                            metavar='<ca-bundle-file>',
                            dest='cacert',
                            default=utils.env('OS_CACERT'),
                            help='CA certificate bundle file (Env: OS_CACERT)')
        verify_group = parser.add_mutually_exclusive_group()
        verify_group.add_argument(
            '--verify',
            action='store_true',
            default=None,
            help='Verify server certificate (default)',
        )
        verify_group.add_argument(
            '--insecure',
            action='store_true',
            default=None,
            help='Disable server certificate verification',
        )
        parser.add_argument('--os-default-domain',
                            metavar='<auth-domain>',
                            dest='default_domain',
                            default=utils.env('OS_DEFAULT_DOMAIN',
                                              default=DEFAULT_DOMAIN),
                            help='Default domain ID, default=' +
                            DEFAULT_DOMAIN + ' (Env: OS_DEFAULT_DOMAIN)')
        parser.add_argument(
            '--os-interface',
            metavar='<interface>',
            dest='interface',
            choices=['admin', 'public', 'internal'],
            default=utils.env('OS_INTERFACE'),
            help='Select an interface type.'
            ' Valid interface types: [admin, public, internal].'
            ' (Env: OS_INTERFACE)')
        parser.add_argument(
            '--timing',
            default=False,
            action='store_true',
            help="Print API call timing info",
        )

        # osprofiler HMAC key argument
        if osprofiler_profiler:
            parser.add_argument('--profile',
                                metavar='hmac-key',
                                help='HMAC key to use for encrypting context '
                                'data for performance profiling of operation. '
                                'This key should be the value of one of the '
                                'HMAC keys configured in osprofiler '
                                'middleware in the projects user would like '
                                'to profile. It needs to be specified in '
                                'configuration files of the required '
                                'projects.')

        return clientmanager.build_plugin_option_parser(parser)
    # Do useful things with it

    # Look in the object store
    c_list = client_manager.object_store.container_list()
    print("Name\tCount\tBytes")
    for c in c_list:
        print("%s\t%d\t%d" % (c['name'], c['count'], c['bytes']))

    if len(c_list) > 0:
        # See what is in the first container
        o_list = client_manager.object_store.object_list(c_list[0]['name'])
        print("\nObject")
        for o in o_list:
            print("%s" % o)

    # Look at the compute flavors
    flavor_list = client_manager.compute.flavors.list()
    print("\nFlavors:")
    for f in flavor_list:
        print("%s" % f)


if __name__ == "__main__":
    parser = argparse.ArgumentParser(description='ClientManager Example')
    opts = common.base_parser(
        clientmanager.build_plugin_option_parser(parser), ).parse_args()

    common.configure_logging(opts)
    sys.exit(common.main(opts, run))
예제 #12
0
    def build_option_parser(self, description, version):
        parser = super(OpenStackShell, self).build_option_parser(description, version)

        # service token auth argument
        parser.add_argument(
            "--os-cloud",
            metavar="<cloud-config-name>",
            dest="cloud",
            default=utils.env("OS_CLOUD"),
            help="Cloud name in clouds.yaml (Env: OS_CLOUD)",
        )
        # Global arguments
        parser.add_argument(
            "--os-region-name",
            metavar="<auth-region-name>",
            dest="region_name",
            default=utils.env("OS_REGION_NAME"),
            help="Authentication region name (Env: OS_REGION_NAME)",
        )
        parser.add_argument(
            "--os-cacert",
            metavar="<ca-bundle-file>",
            dest="cacert",
            default=utils.env("OS_CACERT"),
            help="CA certificate bundle file (Env: OS_CACERT)",
        )
        parser.add_argument(
            "--os-cert",
            metavar="<certificate-file>",
            dest="cert",
            default=utils.env("OS_CERT"),
            help="Client certificate bundle file (Env: OS_CERT)",
        )
        parser.add_argument(
            "--os-key",
            metavar="<key-file>",
            dest="key",
            default=utils.env("OS_KEY"),
            help="Client certificate key file (Env: OS_KEY)",
        )
        verify_group = parser.add_mutually_exclusive_group()
        verify_group.add_argument(
            "--verify", action="store_true", default=None, help="Verify server certificate (default)"
        )
        verify_group.add_argument(
            "--insecure", action="store_true", default=None, help="Disable server certificate verification"
        )
        parser.add_argument(
            "--os-default-domain",
            metavar="<auth-domain>",
            dest="default_domain",
            default=utils.env("OS_DEFAULT_DOMAIN", default=DEFAULT_DOMAIN),
            help="Default domain ID, default=" + DEFAULT_DOMAIN + " (Env: OS_DEFAULT_DOMAIN)",
        )
        parser.add_argument(
            "--os-interface",
            metavar="<interface>",
            dest="interface",
            choices=["admin", "public", "internal"],
            default=utils.env("OS_INTERFACE"),
            help="Select an interface type."
            " Valid interface types: [admin, public, internal]."
            " (Env: OS_INTERFACE)",
        )
        parser.add_argument("--timing", default=False, action="store_true", help="Print API call timing info")

        # osprofiler HMAC key argument
        if osprofiler_profiler:
            parser.add_argument(
                "--profile",
                metavar="hmac-key",
                help="HMAC key to use for encrypting context "
                "data for performance profiling of operation. "
                "This key should be the value of one of the "
                "HMAC keys configured in osprofiler "
                "middleware in the projects user would like "
                "to profile. It needs to be specified in "
                "configuration files of the required "
                "projects.",
            )

        return clientmanager.build_plugin_option_parser(parser)
예제 #13
0
    def build_option_parser(self, description, version):
        parser = super(OpenStackShell,
                       self).build_option_parser(description, version)

        # service token auth argument
        parser.add_argument(
            '--os-cloud',
            metavar='<cloud-config-name>',
            dest='cloud',
            default=utils.env('OS_CLOUD'),
            help='Cloud name in clouds.yaml (Env: OS_CLOUD)',
        )
        # Global arguments
        parser.add_argument(
            '--os-region-name',
            metavar='<auth-region-name>',
            dest='region_name',
            default=utils.env('OS_REGION_NAME'),
            help='Authentication region name (Env: OS_REGION_NAME)')
        parser.add_argument('--os-cacert',
                            metavar='<ca-bundle-file>',
                            dest='cacert',
                            default=utils.env('OS_CACERT'),
                            help='CA certificate bundle file (Env: OS_CACERT)')
        parser.add_argument(
            '--os-cert',
            metavar='<certificate-file>',
            dest='cert',
            default=utils.env('OS_CERT'),
            help='Client certificate bundle file (Env: OS_CERT)')
        parser.add_argument('--os-key',
                            metavar='<key-file>',
                            dest='key',
                            default=utils.env('OS_KEY'),
                            help='Client certificate key file (Env: OS_KEY)')
        verify_group = parser.add_mutually_exclusive_group()
        verify_group.add_argument(
            '--verify',
            action='store_true',
            default=None,
            help='Verify server certificate (default)',
        )
        verify_group.add_argument(
            '--insecure',
            action='store_true',
            default=None,
            help='Disable server certificate verification',
        )
        parser.add_argument('--os-default-domain',
                            metavar='<auth-domain>',
                            dest='default_domain',
                            default=utils.env('OS_DEFAULT_DOMAIN',
                                              default=DEFAULT_DOMAIN),
                            help='Default domain ID, default=' +
                            DEFAULT_DOMAIN + ' (Env: OS_DEFAULT_DOMAIN)')
        parser.add_argument(
            '--os-interface',
            metavar='<interface>',
            dest='interface',
            choices=['admin', 'public', 'internal'],
            default=utils.env('OS_INTERFACE'),
            help='Select an interface type.'
            ' Valid interface types: [admin, public, internal].'
            ' (Env: OS_INTERFACE)')
        parser.add_argument(
            '--timing',
            default=False,
            action='store_true',
            help="Print API call timing info",
        )

        # osprofiler HMAC key argument
        if osprofiler_profiler:
            parser.add_argument(
                '--os-profile',
                metavar='hmac-key',
                dest='profile',
                help='HMAC key for encrypting profiling context data',
            )
            # NOTE(dtroyer): This global option should have been named
            #                --os-profile as --profile interferes with at
            #                least one existing command option.  Deprecate
            #                --profile and remove after Apr 2017.
            parser.add_argument(
                '--profile',
                metavar='hmac-key',
                dest='old_profile',
                help=argparse.SUPPRESS,
            )

        return clientmanager.build_plugin_option_parser(parser)