コード例 #1
0
    def completion_cache(self, cache_type, obj_class, mode):
        """
        The completion cache store items that can be used for bash
        autocompletion, like UUIDs or human-friendly IDs.

        A resource listing will clear and repopulate the cache.

        A resource create will append to the cache.

        Delete is not handled because listings are assumed to be performed
        often enough to keep the cache reasonably up-to-date.
        """
        base_dir = utils.env('CINDERCLIENT_UUID_CACHE_DIR',
                             default="~/.cache/cinderclient")

        # NOTE(sirp): Keep separate UUID caches for each username + endpoint
        # pair
        username = utils.env('OS_USERNAME', 'CINDER_USERNAME')
        url = utils.env('OS_URL', 'CINDER_URL')
        uniqifier = hashlib.sha1(
            username.encode('utf-8') +  # nosec
            url.encode('utf-8')).hexdigest()

        cache_dir = os.path.expanduser(os.path.join(base_dir, uniqifier))

        try:
            os.makedirs(cache_dir, 0o750)
        except OSError:
            # NOTE(kiall): This is typically either permission denied while
            #              attempting to create the directory, or the directory
            #              already exists. Either way, don't fail.
            pass

        resource = obj_class.__name__.lower()
        filename = "%s-%s-cache" % (resource, cache_type.replace('_', '-'))
        path = os.path.join(cache_dir, filename)

        cache_attr = "_%s_cache" % cache_type

        try:
            setattr(self, cache_attr, open(path, mode))
        except IOError:
            # NOTE(kiall): This is typically a permission denied while
            #              attempting to write the cache file.
            pass

        try:
            yield
        finally:
            cache = getattr(self, cache_attr, None)
            if cache:
                cache.close()
                try:
                    delattr(self, cache_attr)
                except AttributeError:
                    # NOTE(kiall): If this attr is deleted by another
                    #              operation, don't fail any way.
                    pass
コード例 #2
0
ファイル: base.py プロジェクト: openstack/python-cinderclient
    def completion_cache(self, cache_type, obj_class, mode):
        """
        The completion cache store items that can be used for bash
        autocompletion, like UUIDs or human-friendly IDs.

        A resource listing will clear and repopulate the cache.

        A resource create will append to the cache.

        Delete is not handled because listings are assumed to be performed
        often enough to keep the cache reasonably up-to-date.
        """
        base_dir = utils.env('CINDERCLIENT_UUID_CACHE_DIR',
                             default="~/.cache/cinderclient")

        # NOTE(sirp): Keep separate UUID caches for each username + endpoint
        # pair
        username = utils.env('OS_USERNAME', 'CINDER_USERNAME')
        url = utils.env('OS_URL', 'CINDER_URL')
        uniqifier = hashlib.sha1(username.encode('utf-8') +
                                 url.encode('utf-8')).hexdigest()

        cache_dir = os.path.expanduser(os.path.join(base_dir, uniqifier))

        try:
            os.makedirs(cache_dir, 0o750)
        except OSError:
            # NOTE(kiall): This is typically either permission denied while
            #              attempting to create the directory, or the directory
            #              already exists. Either way, don't fail.
            pass

        resource = obj_class.__name__.lower()
        filename = "%s-%s-cache" % (resource, cache_type.replace('_', '-'))
        path = os.path.join(cache_dir, filename)

        cache_attr = "_%s_cache" % cache_type

        try:
            setattr(self, cache_attr, open(path, mode))
        except IOError:
            # NOTE(kiall): This is typically a permission denied while
            #              attempting to write the cache file.
            pass

        try:
            yield
        finally:
            cache = getattr(self, cache_attr, None)
            if cache:
                cache.close()
                try:
                    delattr(self, cache_attr)
                except AttributeError:
                    # NOTE(kiall): If this attr is deleted by another
                    #              operation, don't fail any way.
                    pass
コード例 #3
0
    def get_base_parser(self):
        parser = CinderClientArgumentParser(
            prog='cinder',
            description=__doc__.strip(),
            epilog='Run "cinder help SUBCOMMAND" for help on a subcommand.',
            add_help=False,
            formatter_class=OpenStackHelpFormatter,
        )

        # Global arguments
        parser.add_argument('-h', '--help',
                            action='store_true',
                            help=argparse.SUPPRESS)

        parser.add_argument('--version',
                            action='version',
                            version=cinderclient.__version__)

        parser.add_argument('--debug',
                            action='store_true',
                            default=utils.env('CINDERCLIENT_DEBUG',
                                              default=False),
                            help="Shows debugging output.")

        parser.add_argument('--os-auth-system',
                            metavar='<auth-system>',
                            default=utils.env('OS_AUTH_SYSTEM'),
                            help='Defaults to env[OS_AUTH_SYSTEM].')
        parser.add_argument('--os_auth_system',
                            help=argparse.SUPPRESS)

        parser.add_argument('--service-type',
                            metavar='<service-type>',
                            help='Service type. '
                            'For most actions, default is volume.')
        parser.add_argument('--service_type',
                            help=argparse.SUPPRESS)

        parser.add_argument('--service-name',
                            metavar='<service-name>',
                            default=utils.env('CINDER_SERVICE_NAME'),
                            help='Service name. '
                            'Default=env[CINDER_SERVICE_NAME].')
        parser.add_argument('--service_name',
                            help=argparse.SUPPRESS)

        parser.add_argument('--volume-service-name',
                            metavar='<volume-service-name>',
                            default=utils.env('CINDER_VOLUME_SERVICE_NAME'),
                            help='Volume service name. '
                            'Default=env[CINDER_VOLUME_SERVICE_NAME].')
        parser.add_argument('--volume_service_name',
                            help=argparse.SUPPRESS)

        parser.add_argument('--endpoint-type',
                            metavar='<endpoint-type>',
                            default=utils.env('CINDER_ENDPOINT_TYPE',
                            default=DEFAULT_CINDER_ENDPOINT_TYPE),
                            help='Endpoint type, which is publicURL or '
                            'internalURL. '
                            'Default=nova env[CINDER_ENDPOINT_TYPE] or '
                            + DEFAULT_CINDER_ENDPOINT_TYPE + '.')

        parser.add_argument('--endpoint_type',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-volume-api-version',
                            metavar='<volume-api-ver>',
                            default=utils.env('OS_VOLUME_API_VERSION',
                                              default=None),
                            help='Block Storage API version. '
                            'Valid values are 1 or 2. '
                            'Default=env[OS_VOLUME_API_VERSION].')
        parser.add_argument('--os_volume_api_version',
                            help=argparse.SUPPRESS)

        parser.add_argument('--retries',
                            metavar='<retries>',
                            type=int,
                            default=0,
                            help='Number of retries.')

        self._append_global_identity_args(parser)

        # The auth-system-plugins might require some extra options
        cinderclient.auth_plugin.discover_auth_systems()
        cinderclient.auth_plugin.load_auth_system_opts(parser)

        return parser
コード例 #4
0
    def _append_global_identity_args(self, parser):
        loading.register_session_argparse_arguments(parser)

        # Use "password" auth plugin as default and keep the explicit
        # "--os-token" arguments below for backward compatibility.
        default_auth_plugin = 'password'

        # Passing [] to loading.register_auth_argparse_arguments to avoid
        # the auth_type being overridden by the command line.
        loading.register_auth_argparse_arguments(parser, [],
                                                 default=default_auth_plugin)

        parser.add_argument(
            '--os-auth-strategy',
            metavar='<auth-strategy>',
            default=utils.env('OS_AUTH_STRATEGY', default='keystone'),
            help=_('Authentication strategy (Env: OS_AUTH_STRATEGY'
                   ', default keystone). For now, any other value will'
                   ' disable the authentication.'))
        parser.add_argument('--os_auth_strategy', help=argparse.SUPPRESS)

        # Change os_auth_type default value defined by
        # register_auth_argparse_arguments to be backward compatible
        # with OS_AUTH_SYSTEM.
        env_plugin = utils.env('OS_AUTH_TYPE', 'OS_AUTH_PLUGIN',
                               'OS_AUTH_SYSTEM')
        parser.set_defaults(os_auth_type=env_plugin)
        parser.add_argument('--os_auth_type', help=argparse.SUPPRESS)

        parser.set_defaults(
            os_username=utils.env('OS_USERNAME', 'CINDER_USERNAME'))
        parser.add_argument('--os_username', help=argparse.SUPPRESS)

        parser.set_defaults(
            os_password=utils.env('OS_PASSWORD', 'CINDER_PASSWORD'))
        parser.add_argument('--os_password', help=argparse.SUPPRESS)

        parser.set_defaults(
            os_project_name=utils.env('OS_PROJECT_NAME', 'CINDER_PROJECT_ID'))
        parser.add_argument('--os_project_name', help=argparse.SUPPRESS)

        parser.set_defaults(
            os_project_id=utils.env('OS_PROJECT_ID', 'CINDER_PROJECT_ID'))
        parser.add_argument('--os_project_id', help=argparse.SUPPRESS)

        parser.set_defaults(os_auth_url=utils.env('OS_AUTH_URL', 'CINDER_URL'))
        parser.add_argument('--os_auth_url', help=argparse.SUPPRESS)

        parser.set_defaults(os_user_id=utils.env('OS_USER_ID'))
        parser.add_argument('--os_user_id', help=argparse.SUPPRESS)

        parser.set_defaults(os_user_domain_id=utils.env('OS_USER_DOMAIN_ID'))
        parser.add_argument('--os_user_domain_id', help=argparse.SUPPRESS)

        parser.set_defaults(
            os_user_domain_name=utils.env('OS_USER_DOMAIN_NAME'))
        parser.add_argument('--os_user_domain_name', help=argparse.SUPPRESS)

        parser.set_defaults(
            os_project_domain_id=utils.env('OS_PROJECT_DOMAIN_ID'))

        parser.set_defaults(
            os_project_domain_name=utils.env('OS_PROJECT_DOMAIN_NAME'))

        parser.set_defaults(
            os_region_name=utils.env('OS_REGION_NAME', 'CINDER_REGION_NAME'))
        parser.add_argument('--os_region_name', help=argparse.SUPPRESS)

        parser.add_argument('--os-token',
                            metavar='<token>',
                            default=utils.env('OS_TOKEN'),
                            help=_('Defaults to env[OS_TOKEN].'))
        parser.add_argument('--os_token', help=argparse.SUPPRESS)

        parser.add_argument('--os-url',
                            metavar='<url>',
                            default=utils.env('OS_URL'),
                            help=_('Defaults to env[OS_URL].'))
        parser.add_argument('--os_url', help=argparse.SUPPRESS)

        parser.set_defaults(
            insecure=utils.env('CINDERCLIENT_INSECURE', default=False))
コード例 #5
0
    def get_base_parser(self):
        parser = CinderClientArgumentParser(
            prog='cinder',
            description=__doc__.strip(),
            epilog=_('Run "cinder help SUBCOMMAND" for help on a subcommand.'),
            add_help=False,
            formatter_class=OpenStackHelpFormatter,
        )

        # Global arguments
        parser.add_argument('-h',
                            '--help',
                            action='store_true',
                            help=argparse.SUPPRESS)

        parser.add_argument('--version',
                            action='version',
                            version=cinderclient.__version__)

        parser.add_argument('-d',
                            '--debug',
                            action='store_true',
                            default=utils.env('CINDERCLIENT_DEBUG',
                                              default=False),
                            help=_('Shows debugging output.'))

        parser.add_argument('--service-type',
                            metavar='<service-type>',
                            help=_('Service type. '
                                   'For most actions, default is volume.'))
        parser.add_argument('--service_type', help=argparse.SUPPRESS)

        parser.add_argument('--service-name',
                            metavar='<service-name>',
                            default=utils.env('CINDER_SERVICE_NAME'),
                            help=_('Service name. '
                                   'Default=env[CINDER_SERVICE_NAME].'))
        parser.add_argument('--service_name', help=argparse.SUPPRESS)

        parser.add_argument('--volume-service-name',
                            metavar='<volume-service-name>',
                            default=utils.env('CINDER_VOLUME_SERVICE_NAME'),
                            help=_('Volume service name. '
                                   'Default=env[CINDER_VOLUME_SERVICE_NAME].'))
        parser.add_argument('--volume_service_name', help=argparse.SUPPRESS)

        parser.add_argument('--os-endpoint-type',
                            metavar='<os-endpoint-type>',
                            default=utils.env(
                                'CINDER_ENDPOINT_TYPE',
                                default=utils.env(
                                    'OS_ENDPOINT_TYPE',
                                    default=DEFAULT_CINDER_ENDPOINT_TYPE)),
                            help=_('Endpoint type, which is publicURL or '
                                   'internalURL. '
                                   'Default=env[OS_ENDPOINT_TYPE] or '
                                   'nova env[CINDER_ENDPOINT_TYPE] or %s.') %
                            DEFAULT_CINDER_ENDPOINT_TYPE)
        parser.add_argument('--os_endpoint_type', help=argparse.SUPPRESS)

        parser.add_argument(
            '--os-volume-api-version',
            metavar='<volume-api-ver>',
            default=utils.env('OS_VOLUME_API_VERSION', default=None),
            help=_('Block Storage API version. '
                   'Accepts X, X.Y (where X is major and Y is minor '
                   'part).'
                   'Default=env[OS_VOLUME_API_VERSION].'))
        parser.add_argument('--os_volume_api_version', help=argparse.SUPPRESS)

        parser.add_argument('--os-endpoint',
                            metavar='<os-endpoint>',
                            dest='os_endpoint',
                            default=utils.env('CINDER_ENDPOINT'),
                            help=_("Use this API endpoint instead of the "
                                   "Service Catalog. Defaults to "
                                   "env[CINDER_ENDPOINT]."))
        parser.add_argument('--os_endpoint', help=argparse.SUPPRESS)

        parser.add_argument('--retries',
                            metavar='<retries>',
                            type=int,
                            default=0,
                            help=_('Number of retries.'))

        parser.set_defaults(func=self.do_help)
        parser.set_defaults(command='')

        if osprofiler_profiler:
            parser.add_argument(
                '--profile',
                metavar='HMAC_KEY',
                default=utils.env('OS_PROFILE'),
                help=_('HMAC key to use for encrypting '
                       'context data for performance profiling '
                       'of operation. This key needs to match the '
                       'one configured on the cinder api server. '
                       'Without key the profiling will not be '
                       'triggered even if osprofiler is enabled '
                       'on server side. Defaults to '
                       'env[OS_PROFILE].'))

        self._append_global_identity_args(parser)

        return parser
コード例 #6
0
    def _append_global_identity_args(self, parser):
        loading.register_session_argparse_arguments(parser)

        # Use "password" auth plugin as default and keep the explicit
        # "--os-token" arguments below for backward compatibility.
        default_auth_plugin = 'password'

        # Passing [] to loading.register_auth_argparse_arguments to avoid
        # the auth_type being overridden by the command line.
        loading.register_auth_argparse_arguments(
            parser, [], default=default_auth_plugin)

        parser.add_argument(
            '--os-auth-strategy', metavar='<auth-strategy>',
            default=utils.env('OS_AUTH_STRATEGY', default='keystone'),
            help=_('Authentication strategy (Env: OS_AUTH_STRATEGY'
                   ', default keystone). For now, any other value will'
                   ' disable the authentication.'))
        parser.add_argument(
            '--os_auth_strategy',
            help=argparse.SUPPRESS)

        # Change os_auth_type default value defined by
        # register_auth_argparse_arguments to be backward compatible
        # with OS_AUTH_SYSTEM.
        env_plugin = utils.env('OS_AUTH_TYPE',
                               'OS_AUTH_PLUGIN',
                               'OS_AUTH_SYSTEM')
        parser.set_defaults(os_auth_type=env_plugin)
        parser.add_argument('--os_auth_type',
                            help=argparse.SUPPRESS)

        parser.set_defaults(os_username=utils.env('OS_USERNAME',
                                                  'CINDER_USERNAME'))
        parser.add_argument('--os_username',
                            help=argparse.SUPPRESS)

        parser.set_defaults(os_password=utils.env('OS_PASSWORD',
                                                  'CINDER_PASSWORD'))
        parser.add_argument('--os_password',
                            help=argparse.SUPPRESS)

        # tenant_name is deprecated by project_name in keystoneauth
        parser.set_defaults(os_project_name=utils.env('OS_PROJECT_NAME',
                                                      'OS_TENANT_NAME',
                                                      'CINDER_PROJECT_ID'))
        parser.add_argument('--os_tenant_name',
                            dest='os_project_name',
                            help=argparse.SUPPRESS)
        parser.add_argument(
            '--os_project_name',
            help=argparse.SUPPRESS)

        # tenant_id is deprecated by project_id in keystoneauth
        parser.set_defaults(os_project_id=utils.env('OS_PROJECT_ID',
                                                    'OS_TENANT_ID',
                                                    'CINDER_TENANT_ID'))
        parser.add_argument('--os_tenant_id',
                            dest='os_project_id',
                            help=argparse.SUPPRESS)
        parser.add_argument(
            '--os_project_id',
            help=argparse.SUPPRESS)

        parser.set_defaults(os_auth_url=utils.env('OS_AUTH_URL',
                                                  'CINDER_URL'))
        parser.add_argument('--os_auth_url',
                            help=argparse.SUPPRESS)

        parser.set_defaults(os_user_id=utils.env('OS_USER_ID'))
        parser.add_argument(
            '--os_user_id',
            help=argparse.SUPPRESS)

        parser.set_defaults(
            os_user_domain_id=utils.env('OS_USER_DOMAIN_ID'))
        parser.add_argument(
            '--os_user_domain_id',
            help=argparse.SUPPRESS)

        parser.set_defaults(
            os_user_domain_name=utils.env('OS_USER_DOMAIN_NAME'))
        parser.add_argument(
            '--os_user_domain_name',
            help=argparse.SUPPRESS)

        parser.set_defaults(
            os_project_domain_id=utils.env('OS_PROJECT_DOMAIN_ID'))

        parser.set_defaults(
            os_project_domain_name=utils.env('OS_PROJECT_DOMAIN_NAME'))

        parser.set_defaults(
            os_region_name=utils.env('OS_REGION_NAME',
                                     'CINDER_REGION_NAME'))
        parser.add_argument('--os_region_name',
                            help=argparse.SUPPRESS)

        parser.add_argument(
            '--os-token', metavar='<token>',
            default=utils.env('OS_TOKEN'),
            help=_('Defaults to env[OS_TOKEN].'))
        parser.add_argument(
            '--os_token',
            help=argparse.SUPPRESS)

        parser.add_argument(
            '--os-url', metavar='<url>',
            default=utils.env('OS_URL'),
            help=_('Defaults to env[OS_URL].'))
        parser.add_argument(
            '--os_url',
            help=argparse.SUPPRESS)

        parser.set_defaults(insecure=utils.env('CINDERCLIENT_INSECURE',
                                               default=False))
コード例 #7
0
ファイル: shell.py プロジェクト: shk0305/python-cinderclient
    def get_base_parser(self):
        parser = CinderClientArgumentParser(
            prog='cinder',
            description=__doc__.strip(),
            epilog='Run "cinder help SUBCOMMAND" for help on a subcommand.',
            add_help=False,
            formatter_class=OpenStackHelpFormatter,
        )

        # Global arguments
        parser.add_argument('-h', '--help',
                            action='store_true',
                            help=argparse.SUPPRESS)

        parser.add_argument('--version',
                            action='version',
                            version=cinderclient.__version__)

        parser.add_argument('-d', '--debug',
                            action='store_true',
                            default=utils.env('CINDERCLIENT_DEBUG',
                                              default=False),
                            help="Shows debugging output.")

        parser.add_argument('--os-auth-system',
                            metavar='<auth-system>',
                            default=utils.env('OS_AUTH_SYSTEM'),
                            help='Defaults to env[OS_AUTH_SYSTEM].')
        parser.add_argument('--os_auth_system',
                            help=argparse.SUPPRESS)

        parser.add_argument('--service-type',
                            metavar='<service-type>',
                            help='Service type. '
                            'For most actions, default is volume.')
        parser.add_argument('--service_type',
                            help=argparse.SUPPRESS)

        parser.add_argument('--service-name',
                            metavar='<service-name>',
                            default=utils.env('CINDER_SERVICE_NAME'),
                            help='Service name. '
                            'Default=env[CINDER_SERVICE_NAME].')
        parser.add_argument('--service_name',
                            help=argparse.SUPPRESS)

        parser.add_argument('--volume-service-name',
                            metavar='<volume-service-name>',
                            default=utils.env('CINDER_VOLUME_SERVICE_NAME'),
                            help='Volume service name. '
                            'Default=env[CINDER_VOLUME_SERVICE_NAME].')
        parser.add_argument('--volume_service_name',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-endpoint-type',
                            metavar='<os-endpoint-type>',
                            default=utils.env('CINDER_ENDPOINT_TYPE',
                            default=utils.env('OS_ENDPOINT_TYPE',
                            default=DEFAULT_CINDER_ENDPOINT_TYPE)),
                            help='Endpoint type, which is publicURL or '
                            'internalURL. '
                            'Default=env[OS_ENDPOINT_TYPE] or '
                            'nova env[CINDER_ENDPOINT_TYPE] or '
                            + DEFAULT_CINDER_ENDPOINT_TYPE + '.')
        parser.add_argument('--os_endpoint_type',
                            help=argparse.SUPPRESS)
        parser.add_argument('--endpoint-type',
                            metavar='<endpoint-type>',
                            dest='endpoint_type',
                            help='DEPRECATED! Use --os-endpoint-type.')
        parser.add_argument('--endpoint_type',
                            dest='endpoint_type',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-volume-api-version',
                            metavar='<volume-api-ver>',
                            default=utils.env('OS_VOLUME_API_VERSION',
                                              default=None),
                            help='Block Storage API version. '
                            'Accepts X, X.Y (where X is major and Y is minor '
                            'part).'
                            'Default=env[OS_VOLUME_API_VERSION].')
        parser.add_argument('--os_volume_api_version',
                            help=argparse.SUPPRESS)

        parser.add_argument('--bypass-url',
                            metavar='<bypass-url>',
                            dest='bypass_url',
                            default=utils.env('CINDERCLIENT_BYPASS_URL'),
                            help="Use this API endpoint instead of the "
                            "Service Catalog. Defaults to "
                            "env[CINDERCLIENT_BYPASS_URL].")
        parser.add_argument('--bypass_url',
                            help=argparse.SUPPRESS)

        parser.add_argument('--retries',
                            metavar='<retries>',
                            type=int,
                            default=0,
                            help='Number of retries.')

        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 needs to match the one configured '
                                'on the cinder api server. '
                                'Without key the profiling will not be '
                                'triggered even if osprofiler is enabled '
                                'on server side.')

        self._append_global_identity_args(parser)

        # The auth-system-plugins might require some extra options
        cinderclient.auth_plugin.discover_auth_systems()
        cinderclient.auth_plugin.load_auth_system_opts(parser)

        return parser
コード例 #8
0
    def get_base_parser(self):
        parser = CinderClientArgumentParser(
            prog='cinder',
            description=__doc__.strip(),
            epilog='See "cinder help COMMAND" '
                   'for help on a specific command.',
            add_help=False,
            formatter_class=OpenStackHelpFormatter,
        )

        # Global arguments
        parser.add_argument('-h', '--help',
                            action='store_true',
                            help=argparse.SUPPRESS)

        parser.add_argument('--version',
                            action='version',
                            version=cinderclient.__version__)

        parser.add_argument('--debug',
                            action='store_true',
                            default=utils.env('CINDERCLIENT_DEBUG',
                                              default=False),
                            help="Print debugging output")

        parser.add_argument('--os-username',
                            metavar='<auth-user-name>',
                            default=utils.env('OS_USERNAME',
                                              'CINDER_USERNAME'),
                            help='Defaults to env[OS_USERNAME].')
        parser.add_argument('--os_username',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-password',
                            metavar='<auth-password>',
                            default=utils.env('OS_PASSWORD',
                                              'CINDER_PASSWORD'),
                            help='Defaults to env[OS_PASSWORD].')
        parser.add_argument('--os_password',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-tenant-name',
                            metavar='<auth-tenant-name>',
                            default=utils.env('OS_TENANT_NAME',
                                              'CINDER_PROJECT_ID'),
                            help='Defaults to env[OS_TENANT_NAME].')
        parser.add_argument('--os_tenant_name',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-tenant-id',
                            metavar='<auth-tenant-id>',
                            default=utils.env('OS_TENANT_ID',
                                              'CINDER_TENANT_ID'),
                            help='Defaults to env[OS_TENANT_ID].')
        parser.add_argument('--os_tenant_id',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-auth-url',
                            metavar='<auth-url>',
                            default=utils.env('OS_AUTH_URL',
                                              'CINDER_URL'),
                            help='Defaults to env[OS_AUTH_URL].')
        parser.add_argument('--os_auth_url',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-region-name',
                            metavar='<region-name>',
                            default=utils.env('OS_REGION_NAME',
                                              'CINDER_REGION_NAME'),
                            help='Defaults to env[OS_REGION_NAME].')
        parser.add_argument('--os_region_name',
                            help=argparse.SUPPRESS)

        parser.add_argument('--service-type',
                            metavar='<service-type>',
                            help='Defaults to volume for most actions')
        parser.add_argument('--service_type',
                            help=argparse.SUPPRESS)

        parser.add_argument('--service-name',
                            metavar='<service-name>',
                            default=utils.env('CINDER_SERVICE_NAME'),
                            help='Defaults to env[CINDER_SERVICE_NAME]')
        parser.add_argument('--service_name',
                            help=argparse.SUPPRESS)

        parser.add_argument('--volume-service-name',
                            metavar='<volume-service-name>',
                            default=utils.env('CINDER_VOLUME_SERVICE_NAME'),
                            help='Defaults to env[CINDER_VOLUME_SERVICE_NAME]')
        parser.add_argument('--volume_service_name',
                            help=argparse.SUPPRESS)

        parser.add_argument('--endpoint-type',
                            metavar='<endpoint-type>',
                            default=utils.env('CINDER_ENDPOINT_TYPE',
                            default=DEFAULT_CINDER_ENDPOINT_TYPE),
                            help='Defaults to env[CINDER_ENDPOINT_TYPE] or '
                            + DEFAULT_CINDER_ENDPOINT_TYPE + '.')
        parser.add_argument('--endpoint_type',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-volume-api-version',
                            metavar='<volume-api-ver>',
                            default=utils.env('OS_VOLUME_API_VERSION',
                            default=DEFAULT_OS_VOLUME_API_VERSION),
                            help='Accepts 1 or 2,defaults '
                                 'to env[OS_VOLUME_API_VERSION].')
        parser.add_argument('--os_volume_api_version',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-cacert',
                            metavar='<ca-certificate>',
                            default=utils.env('OS_CACERT', default=None),
                            help='Specify a CA bundle file to use in '
                            'verifying a TLS (https) server certificate. '
                            'Defaults to env[OS_CACERT]')

        parser.add_argument('--insecure',
                            default=utils.env('CINDERCLIENT_INSECURE',
                                              default=False),
                            action='store_true',
                            help=argparse.SUPPRESS)

        parser.add_argument('--retries',
                            metavar='<retries>',
                            type=int,
                            default=0,
                            help='Number of retries.')

        # FIXME(dtroyer): The args below are here for diablo compatibility,
        #                 remove them in folsum cycle

        # alias for --os-username, left in for backwards compatibility
        parser.add_argument('--username',
                            help=argparse.SUPPRESS)

        # alias for --os-region_name, left in for backwards compatibility
        parser.add_argument('--region_name',
                            help=argparse.SUPPRESS)

        # alias for --os-password, left in for backwards compatibility
        parser.add_argument('--apikey', '--password', dest='apikey',
                            default=utils.env('CINDER_API_KEY'),
                            help=argparse.SUPPRESS)

        # alias for --os-tenant-name, left in for backward compatibility
        parser.add_argument('--projectid', '--tenant_name', dest='projectid',
                            default=utils.env('CINDER_PROJECT_ID'),
                            help=argparse.SUPPRESS)

        # alias for --os-auth-url, left in for backward compatibility
        parser.add_argument('--url', '--auth_url', dest='url',
                            default=utils.env('CINDER_URL'),
                            help=argparse.SUPPRESS)

        return parser
コード例 #9
0
    def get_base_parser(self):
        parser = CinderClientArgumentParser(
            prog="cinder",
            description=__doc__.strip(),
            epilog='See "cinder help COMMAND" ' "for help on a specific command.",
            add_help=False,
            formatter_class=OpenStackHelpFormatter,
        )

        # Global arguments
        parser.add_argument("-h", "--help", action="store_true", help=argparse.SUPPRESS)

        parser.add_argument("--version", action="version", version=cinderclient.__version__)

        parser.add_argument(
            "--debug",
            action="store_true",
            default=utils.env("CINDERCLIENT_DEBUG", default=False),
            help="Print debugging output",
        )

        parser.add_argument(
            "--os-username",
            metavar="<auth-user-name>",
            default=utils.env("OS_USERNAME", "CINDER_USERNAME"),
            help="Defaults to env[OS_USERNAME].",
        )
        parser.add_argument("--os_username", help=argparse.SUPPRESS)

        parser.add_argument(
            "--os-password",
            metavar="<auth-password>",
            default=utils.env("OS_PASSWORD", "CINDER_PASSWORD"),
            help="Defaults to env[OS_PASSWORD].",
        )
        parser.add_argument("--os_password", help=argparse.SUPPRESS)

        parser.add_argument(
            "--os-tenant-name",
            metavar="<auth-tenant-name>",
            default=utils.env("OS_TENANT_NAME", "CINDER_PROJECT_ID"),
            help="Defaults to env[OS_TENANT_NAME].",
        )
        parser.add_argument("--os_tenant_name", help=argparse.SUPPRESS)

        parser.add_argument(
            "--os-tenant-id",
            metavar="<auth-tenant-id>",
            default=utils.env("OS_TENANT_ID", "CINDER_TENANT_ID"),
            help="Defaults to env[OS_TENANT_ID].",
        )
        parser.add_argument("--os_tenant_id", help=argparse.SUPPRESS)

        parser.add_argument(
            "--os-auth-url",
            metavar="<auth-url>",
            default=utils.env("OS_AUTH_URL", "CINDER_URL"),
            help="Defaults to env[OS_AUTH_URL].",
        )
        parser.add_argument("--os_auth_url", help=argparse.SUPPRESS)

        parser.add_argument(
            "--os-region-name",
            metavar="<region-name>",
            default=utils.env("OS_REGION_NAME", "CINDER_REGION_NAME"),
            help="Defaults to env[OS_REGION_NAME].",
        )
        parser.add_argument("--os_region_name", help=argparse.SUPPRESS)

        parser.add_argument("--service-type", metavar="<service-type>", help="Defaults to volume for most actions")
        parser.add_argument("--service_type", help=argparse.SUPPRESS)

        parser.add_argument(
            "--service-name",
            metavar="<service-name>",
            default=utils.env("CINDER_SERVICE_NAME"),
            help="Defaults to env[CINDER_SERVICE_NAME]",
        )
        parser.add_argument("--service_name", help=argparse.SUPPRESS)

        parser.add_argument(
            "--volume-service-name",
            metavar="<volume-service-name>",
            default=utils.env("CINDER_VOLUME_SERVICE_NAME"),
            help="Defaults to env[CINDER_VOLUME_SERVICE_NAME]",
        )
        parser.add_argument("--volume_service_name", help=argparse.SUPPRESS)

        parser.add_argument(
            "--endpoint-type",
            metavar="<endpoint-type>",
            default=utils.env("CINDER_ENDPOINT_TYPE", default=DEFAULT_CINDER_ENDPOINT_TYPE),
            help="Defaults to env[CINDER_ENDPOINT_TYPE] or " + DEFAULT_CINDER_ENDPOINT_TYPE + ".",
        )
        parser.add_argument("--endpoint_type", help=argparse.SUPPRESS)

        parser.add_argument(
            "--os-volume-api-version",
            metavar="<volume-api-ver>",
            default=utils.env("OS_VOLUME_API_VERSION", default=DEFAULT_OS_VOLUME_API_VERSION),
            help="Accepts 1 or 2,defaults " "to env[OS_VOLUME_API_VERSION].",
        )
        parser.add_argument("--os_volume_api_version", help=argparse.SUPPRESS)

        parser.add_argument(
            "--os-cacert",
            metavar="<ca-certificate>",
            default=utils.env("OS_CACERT", default=None),
            help="Specify a CA bundle file to use in "
            "verifying a TLS (https) server certificate. "
            "Defaults to env[OS_CACERT]",
        )

        parser.add_argument(
            "--insecure",
            default=utils.env("CINDERCLIENT_INSECURE", default=False),
            action="store_true",
            help=argparse.SUPPRESS,
        )

        parser.add_argument("--retries", metavar="<retries>", type=int, default=0, help="Number of retries.")

        # FIXME(dtroyer): The args below are here for diablo compatibility,
        #                 remove them in folsum cycle

        # alias for --os-username, left in for backwards compatibility
        parser.add_argument("--username", help=argparse.SUPPRESS)

        # alias for --os-region_name, left in for backwards compatibility
        parser.add_argument("--region_name", help=argparse.SUPPRESS)

        # alias for --os-password, left in for backwards compatibility
        parser.add_argument(
            "--apikey", "--password", dest="apikey", default=utils.env("CINDER_API_KEY"), help=argparse.SUPPRESS
        )

        # alias for --os-tenant-name, left in for backward compatibility
        parser.add_argument(
            "--projectid",
            "--tenant_name",
            dest="projectid",
            default=utils.env("CINDER_PROJECT_ID"),
            help=argparse.SUPPRESS,
        )

        # alias for --os-auth-url, left in for backward compatibility
        parser.add_argument("--url", "--auth_url", dest="url", default=utils.env("CINDER_URL"), help=argparse.SUPPRESS)

        return parser
コード例 #10
0
    def _append_global_identity_args(self, parser):
        # FIXME(bklei): these are global identity (Keystone) arguments which
        # should be consistent and shared by all service clients. Therefore,
        # they should be provided by python-keystoneclient. We will need to
        # refactor this code once this functionality is available in
        # python-keystoneclient.

        parser.add_argument(
            "--os-auth-strategy",
            metavar="<auth-strategy>",
            default=utils.env("OS_AUTH_STRATEGY", default="keystone"),
            help=_(
                "Authentication strategy (Env: OS_AUTH_STRATEGY"
                ", default keystone). For now, any other value will"
                " disable the authentication."
            ),
        )
        parser.add_argument("--os_auth_strategy", help=argparse.SUPPRESS)

        parser.add_argument(
            "--os-username",
            metavar="<auth-user-name>",
            default=utils.env("OS_USERNAME", "CINDER_USERNAME"),
            help="OpenStack user name. " "Default=env[OS_USERNAME].",
        )
        parser.add_argument("--os_username", help=argparse.SUPPRESS)

        parser.add_argument(
            "--os-password",
            metavar="<auth-password>",
            default=utils.env("OS_PASSWORD", "CINDER_PASSWORD"),
            help="Password for OpenStack user. " "Default=env[OS_PASSWORD].",
        )
        parser.add_argument("--os_password", help=argparse.SUPPRESS)

        parser.add_argument(
            "--os-tenant-name",
            metavar="<auth-tenant-name>",
            default=utils.env("OS_TENANT_NAME", "CINDER_PROJECT_ID"),
            help="Tenant name. " "Default=env[OS_TENANT_NAME].",
        )
        parser.add_argument("--os_tenant_name", help=argparse.SUPPRESS)

        parser.add_argument(
            "--os-tenant-id",
            metavar="<auth-tenant-id>",
            default=utils.env("OS_TENANT_ID", "CINDER_TENANT_ID"),
            help="ID for the tenant. " "Default=env[OS_TENANT_ID].",
        )
        parser.add_argument("--os_tenant_id", help=argparse.SUPPRESS)

        parser.add_argument(
            "--os-auth-url",
            metavar="<auth-url>",
            default=utils.env("OS_AUTH_URL", "CINDER_URL"),
            help="URL for the authentication service. " "Default=env[OS_AUTH_URL].",
        )
        parser.add_argument("--os_auth_url", help=argparse.SUPPRESS)

        parser.add_argument(
            "--os-user-id",
            metavar="<auth-user-id>",
            default=utils.env("OS_USER_ID"),
            help=_("Authentication user ID (Env: OS_USER_ID)."),
        )

        parser.add_argument("--os_user_id", help=argparse.SUPPRESS)

        parser.add_argument(
            "--os-user-domain-id",
            metavar="<auth-user-domain-id>",
            default=utils.env("OS_USER_DOMAIN_ID"),
            help="OpenStack user domain ID. " "Defaults to env[OS_USER_DOMAIN_ID].",
        )

        parser.add_argument("--os_user_domain_id", help=argparse.SUPPRESS)

        parser.add_argument(
            "--os-user-domain-name",
            metavar="<auth-user-domain-name>",
            default=utils.env("OS_USER_DOMAIN_NAME"),
            help="OpenStack user domain name. " "Defaults to env[OS_USER_DOMAIN_NAME].",
        )

        parser.add_argument("--os_user_domain_name", help=argparse.SUPPRESS)

        parser.add_argument(
            "--os-project-id",
            metavar="<auth-project-id>",
            default=utils.env("OS_PROJECT_ID"),
            help="Another way to specify tenant ID. "
            "This option is mutually exclusive with "
            " --os-tenant-id. "
            "Defaults to env[OS_PROJECT_ID].",
        )

        parser.add_argument("--os_project_id", help=argparse.SUPPRESS)

        parser.add_argument(
            "--os-project-name",
            metavar="<auth-project-name>",
            default=utils.env("OS_PROJECT_NAME"),
            help="Another way to specify tenant name. "
            "This option is mutually exclusive with "
            " --os-tenant-name. "
            "Defaults to env[OS_PROJECT_NAME].",
        )

        parser.add_argument("--os_project_name", help=argparse.SUPPRESS)

        parser.add_argument(
            "--os-project-domain-id",
            metavar="<auth-project-domain-id>",
            default=utils.env("OS_PROJECT_DOMAIN_ID"),
            help="Defaults to env[OS_PROJECT_DOMAIN_ID].",
        )

        parser.add_argument(
            "--os-project-domain-name",
            metavar="<auth-project-domain-name>",
            default=utils.env("OS_PROJECT_DOMAIN_NAME"),
            help="Defaults to env[OS_PROJECT_DOMAIN_NAME].",
        )

        parser.add_argument(
            "--os-region-name",
            metavar="<region-name>",
            default=utils.env("OS_REGION_NAME", "CINDER_REGION_NAME"),
            help="Region name. " "Default=env[OS_REGION_NAME].",
        )
        parser.add_argument("--os_region_name", help=argparse.SUPPRESS)

        parser.add_argument(
            "--os-token", metavar="<token>", default=utils.env("OS_TOKEN"), help=_("Defaults to env[OS_TOKEN].")
        )
        parser.add_argument("--os_token", help=argparse.SUPPRESS)

        parser.add_argument(
            "--os-url", metavar="<url>", default=utils.env("OS_URL"), help=_("Defaults to env[OS_URL].")
        )
        parser.add_argument("--os_url", help=argparse.SUPPRESS)

        # Register the CLI arguments that have moved to the session object.
        session.Session.register_cli_options(parser)
        parser.set_defaults(insecure=utils.env("CINDERCLIENT_INSECURE", default=False))
コード例 #11
0
    def get_base_parser(self):
        parser = CinderClientArgumentParser(
            prog="cinder",
            description=__doc__.strip(),
            epilog='Run "cinder help SUBCOMMAND" for help on a subcommand.',
            add_help=False,
            formatter_class=OpenStackHelpFormatter,
        )

        # Global arguments
        parser.add_argument("-h", "--help", action="store_true", help=argparse.SUPPRESS)

        parser.add_argument("--version", action="version", version=cinderclient.__version__)

        parser.add_argument(
            "-d",
            "--debug",
            action="store_true",
            default=utils.env("CINDERCLIENT_DEBUG", default=False),
            help="Shows debugging output.",
        )

        parser.add_argument(
            "--os-auth-system",
            metavar="<auth-system>",
            default=utils.env("OS_AUTH_SYSTEM"),
            help="Defaults to env[OS_AUTH_SYSTEM].",
        )
        parser.add_argument("--os_auth_system", help=argparse.SUPPRESS)

        parser.add_argument(
            "--service-type", metavar="<service-type>", help="Service type. " "For most actions, default is volume."
        )
        parser.add_argument("--service_type", help=argparse.SUPPRESS)

        parser.add_argument(
            "--service-name",
            metavar="<service-name>",
            default=utils.env("CINDER_SERVICE_NAME"),
            help="Service name. " "Default=env[CINDER_SERVICE_NAME].",
        )
        parser.add_argument("--service_name", help=argparse.SUPPRESS)

        parser.add_argument(
            "--volume-service-name",
            metavar="<volume-service-name>",
            default=utils.env("CINDER_VOLUME_SERVICE_NAME"),
            help="Volume service name. " "Default=env[CINDER_VOLUME_SERVICE_NAME].",
        )
        parser.add_argument("--volume_service_name", help=argparse.SUPPRESS)

        parser.add_argument(
            "--os-endpoint-type",
            metavar="<os-endpoint-type>",
            default=utils.env(
                "CINDER_ENDPOINT_TYPE", default=utils.env("OS_ENDPOINT_TYPE", default=DEFAULT_CINDER_ENDPOINT_TYPE)
            ),
            help="Endpoint type, which is publicURL or "
            "internalURL. "
            "Default=env[OS_ENDPOINT_TYPE] or "
            "nova env[CINDER_ENDPOINT_TYPE] or " + DEFAULT_CINDER_ENDPOINT_TYPE + ".",
        )
        parser.add_argument("--os_endpoint_type", help=argparse.SUPPRESS)
        parser.add_argument(
            "--endpoint-type",
            metavar="<endpoint-type>",
            dest="endpoint_type",
            help="DEPRECATED! Use --os-endpoint-type.",
        )
        parser.add_argument("--endpoint_type", dest="endpoint_type", help=argparse.SUPPRESS)

        parser.add_argument(
            "--os-volume-api-version",
            metavar="<volume-api-ver>",
            default=utils.env("OS_VOLUME_API_VERSION", default=None),
            help="Block Storage API version. " "Valid values are 1 or 2. " "Default=env[OS_VOLUME_API_VERSION].",
        )
        parser.add_argument("--os_volume_api_version", help=argparse.SUPPRESS)

        parser.add_argument(
            "--bypass-url",
            metavar="<bypass-url>",
            dest="bypass_url",
            default=utils.env("CINDERCLIENT_BYPASS_URL"),
            help="Use this API endpoint instead of the "
            "Service Catalog. Defaults to "
            "env[CINDERCLIENT_BYPASS_URL].",
        )
        parser.add_argument("--bypass_url", help=argparse.SUPPRESS)

        parser.add_argument("--retries", metavar="<retries>", type=int, default=0, help="Number of retries.")

        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 needs to match the one configured "
                "on the cinder api server. "
                "Without key the profiling will not be "
                "triggered even if osprofiler is enabled "
                "on server side.",
            )

        self._append_global_identity_args(parser)

        # The auth-system-plugins might require some extra options
        cinderclient.auth_plugin.discover_auth_systems()
        cinderclient.auth_plugin.load_auth_system_opts(parser)

        return parser
コード例 #12
0
    def _append_global_identity_args(self, parser):
        # FIXME(bklei): these are global identity (Keystone) arguments which
        # should be consistent and shared by all service clients. Therefore,
        # they should be provided by python-keystoneclient. We will need to
        # refactor this code once this functionality is available in
        # python-keystoneclient.

        parser.add_argument(
            '--os-auth-strategy', metavar='<auth-strategy>',
            default=utils.env('OS_AUTH_STRATEGY', default='keystone'),
            help=_('Authentication strategy (Env: OS_AUTH_STRATEGY'
                   ', default keystone). For now, any other value will'
                   ' disable the authentication'))
        parser.add_argument(
            '--os_auth_strategy',
            help=argparse.SUPPRESS)

        parser.add_argument('--os-username',
                            metavar='<auth-user-name>',
                            default=utils.env('OS_USERNAME',
                                              'CINDER_USERNAME'),
                            help='OpenStack user name. '
                            'Default=env[OS_USERNAME].')
        parser.add_argument('--os_username',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-password',
                            metavar='<auth-password>',
                            default=utils.env('OS_PASSWORD',
                                              'CINDER_PASSWORD'),
                            help='Password for OpenStack user. '
                            'Default=env[OS_PASSWORD].')
        parser.add_argument('--os_password',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-tenant-name',
                            metavar='<auth-tenant-name>',
                            default=utils.env('OS_TENANT_NAME',
                                              'CINDER_PROJECT_ID'),
                            help='Tenant name. '
                            'Default=env[OS_TENANT_NAME].')
        parser.add_argument('--os_tenant_name',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-tenant-id',
                            metavar='<auth-tenant-id>',
                            default=utils.env('OS_TENANT_ID',
                                              'CINDER_TENANT_ID'),
                            help='ID for the tenant. '
                            'Default=env[OS_TENANT_ID].')
        parser.add_argument('--os_tenant_id',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-auth-url',
                            metavar='<auth-url>',
                            default=utils.env('OS_AUTH_URL',
                                              'CINDER_URL'),
                            help='URL for the authentication service. '
                            'Default=env[OS_AUTH_URL].')
        parser.add_argument('--os_auth_url',
                            help=argparse.SUPPRESS)

        parser.add_argument(
            '--os-user-id', metavar='<auth-user-id>',
            default=utils.env('OS_USER_ID'),
            help=_('Authentication user ID (Env: OS_USER_ID)'))

        parser.add_argument(
            '--os_user_id',
            help=argparse.SUPPRESS)

        parser.add_argument(
            '--os-user-domain-id',
            metavar='<auth-user-domain-id>',
            default=utils.env('OS_USER_DOMAIN_ID'),
            help='OpenStack user domain ID. '
            'Defaults to env[OS_USER_DOMAIN_ID].')

        parser.add_argument(
            '--os_user_domain_id',
            help=argparse.SUPPRESS)

        parser.add_argument(
            '--os-user-domain-name',
            metavar='<auth-user-domain-name>',
            default=utils.env('OS_USER_DOMAIN_NAME'),
            help='OpenStack user domain name. '
                 'Defaults to env[OS_USER_DOMAIN_NAME].')

        parser.add_argument(
            '--os_user_domain_name',
            help=argparse.SUPPRESS)

        parser.add_argument(
            '--os-project-id',
            metavar='<auth-project-id>',
            default=utils.env('OS_PROJECT_ID'),
            help='Another way to specify tenant ID. '
            'This option is mutually exclusive with '
            ' --os-tenant-id. '
            'Defaults to env[OS_PROJECT_ID].')

        parser.add_argument(
            '--os_project_id',
            help=argparse.SUPPRESS)

        parser.add_argument(
            '--os-project-name',
            metavar='<auth-project-name>',
            default=utils.env('OS_PROJECT_NAME'),
            help='Another way to specify tenant name. '
                 'This option is mutually exclusive with '
                 ' --os-tenant-name. '
                 'Defaults to env[OS_PROJECT_NAME].')

        parser.add_argument(
            '--os_project_name',
            help=argparse.SUPPRESS)

        parser.add_argument(
            '--os-project-domain-id',
            metavar='<auth-project-domain-id>',
            default=utils.env('OS_PROJECT_DOMAIN_ID'),
            help='Defaults to env[OS_PROJECT_DOMAIN_ID].')

        parser.add_argument(
            '--os-project-domain-name',
            metavar='<auth-project-domain-name>',
            default=utils.env('OS_PROJECT_DOMAIN_NAME'),
            help='Defaults to env[OS_PROJECT_DOMAIN_NAME].')

        parser.add_argument(
            '--os-cert',
            metavar='<certificate>',
            default=utils.env('OS_CERT'),
            help='Defaults to env[OS_CERT].')

        parser.add_argument(
            '--os-key',
            metavar='<key>',
            default=utils.env('OS_KEY'),
            help='Defaults to env[OS_KEY].')

        parser.add_argument('--os-region-name',
                            metavar='<region-name>',
                            default=utils.env('OS_REGION_NAME',
                                              'CINDER_REGION_NAME'),
                            help='Region name. '
                            'Default=env[OS_REGION_NAME].')
        parser.add_argument('--os_region_name',
                            help=argparse.SUPPRESS)

        parser.add_argument(
            '--os-token', metavar='<token>',
            default=utils.env('OS_TOKEN'),
            help=_('Defaults to env[OS_TOKEN]'))
        parser.add_argument(
            '--os_token',
            help=argparse.SUPPRESS)

        parser.add_argument(
            '--os-url', metavar='<url>',
            default=utils.env('OS_URL'),
            help=_('Defaults to env[OS_URL]'))
        parser.add_argument(
            '--os_url',
            help=argparse.SUPPRESS)

        parser.add_argument(
            '--os-cacert',
            metavar='<ca-certificate>',
            default=utils.env('OS_CACERT', default=None),
            help=_("Specify a CA bundle file to use in "
                   "verifying a TLS (https) server certificate. "
                   "Defaults to env[OS_CACERT]"))

        parser.add_argument('--insecure',
                            default=utils.env('CINDERCLIENT_INSECURE',
                                              default=True),
                            action='store_true',
                            help=argparse.SUPPRESS)
コード例 #13
0
    def get_base_parser(self):
        parser = CinderClientArgumentParser(
            prog='cinder',
            description=__doc__.strip(),
            epilog='Run "cinder help SUBCOMMAND" for help on a subcommand.',
            add_help=False,
            formatter_class=OpenStackHelpFormatter,
        )

        # Global arguments
        parser.add_argument('-h',
                            '--help',
                            action='store_true',
                            help=argparse.SUPPRESS)

        parser.add_argument('--version',
                            action='version',
                            version=cinderclient.__version__)

        parser.add_argument('--debug',
                            action='store_true',
                            default=utils.env('CINDERCLIENT_DEBUG',
                                              default=False),
                            help="Shows debugging output.")

        parser.add_argument('--os-auth-system',
                            metavar='<auth-system>',
                            default=utils.env('OS_AUTH_SYSTEM'),
                            help='Defaults to env[OS_AUTH_SYSTEM].')
        parser.add_argument('--os_auth_system', help=argparse.SUPPRESS)

        parser.add_argument('--service-type',
                            metavar='<service-type>',
                            help='Service type. '
                            'For most actions, default is volume.')
        parser.add_argument('--service_type', help=argparse.SUPPRESS)

        parser.add_argument('--service-name',
                            metavar='<service-name>',
                            default=utils.env('CINDER_SERVICE_NAME'),
                            help='Service name. '
                            'Default=env[CINDER_SERVICE_NAME].')
        parser.add_argument('--service_name', help=argparse.SUPPRESS)

        parser.add_argument('--volume-service-name',
                            metavar='<volume-service-name>',
                            default=utils.env('CINDER_VOLUME_SERVICE_NAME'),
                            help='Volume service name. '
                            'Default=env[CINDER_VOLUME_SERVICE_NAME].')
        parser.add_argument('--volume_service_name', help=argparse.SUPPRESS)

        parser.add_argument('--endpoint-type',
                            metavar='<endpoint-type>',
                            default=utils.env(
                                'CINDER_ENDPOINT_TYPE',
                                default=DEFAULT_CINDER_ENDPOINT_TYPE),
                            help='Endpoint type, which is publicURL or '
                            'internalURL. '
                            'Default=nova env[CINDER_ENDPOINT_TYPE] or ' +
                            DEFAULT_CINDER_ENDPOINT_TYPE + '.')

        parser.add_argument('--endpoint_type', help=argparse.SUPPRESS)

        parser.add_argument('--os-volume-api-version',
                            metavar='<volume-api-ver>',
                            default=utils.env('OS_VOLUME_API_VERSION',
                                              default=None),
                            help='Block Storage API version. '
                            'Valid values are 1 or 2. '
                            'Default=env[OS_VOLUME_API_VERSION].')
        parser.add_argument('--os_volume_api_version', help=argparse.SUPPRESS)

        parser.add_argument('--retries',
                            metavar='<retries>',
                            type=int,
                            default=0,
                            help='Number of retries.')

        self._append_global_identity_args(parser)

        # The auth-system-plugins might require some extra options
        cinderclient.auth_plugin.discover_auth_systems()
        cinderclient.auth_plugin.load_auth_system_opts(parser)

        return parser
コード例 #14
0
    def get_base_parser(self):
        parser = CinderClientArgumentParser(
            prog='cinder',
            description=__doc__.strip(),
            epilog='Run "cinder help SUBCOMMAND" for help on a subcommand.',
            add_help=False,
            formatter_class=OpenStackHelpFormatter,
        )

        # Global arguments
        parser.add_argument('-h',
                            '--help',
                            action='store_true',
                            help=argparse.SUPPRESS)

        parser.add_argument('--version',
                            action='version',
                            version=cinderclient.__version__)

        parser.add_argument('-d',
                            '--debug',
                            action='store_true',
                            default=utils.env('CINDERCLIENT_DEBUG',
                                              default=False),
                            help="Shows debugging output.")

        parser.add_argument('--os-auth-system',
                            metavar='<auth-system>',
                            default=utils.env('OS_AUTH_SYSTEM'),
                            help='Defaults to env[OS_AUTH_SYSTEM].')
        parser.add_argument('--os_auth_system', help=argparse.SUPPRESS)

        parser.add_argument('--service-type',
                            metavar='<service-type>',
                            help='Service type. '
                            'For most actions, default is volume.')
        parser.add_argument('--service_type', help=argparse.SUPPRESS)

        parser.add_argument('--service-name',
                            metavar='<service-name>',
                            default=utils.env('CINDER_SERVICE_NAME'),
                            help='Service name. '
                            'Default=env[CINDER_SERVICE_NAME].')
        parser.add_argument('--service_name', help=argparse.SUPPRESS)

        parser.add_argument('--volume-service-name',
                            metavar='<volume-service-name>',
                            default=utils.env('CINDER_VOLUME_SERVICE_NAME'),
                            help='Volume service name. '
                            'Default=env[CINDER_VOLUME_SERVICE_NAME].')
        parser.add_argument('--volume_service_name', help=argparse.SUPPRESS)

        parser.add_argument('--endpoint-type',
                            metavar='<endpoint-type>',
                            dest='os_endpoint_type',
                            default=utils.env(
                                'CINDER_ENDPOINT_TYPE',
                                default=DEFAULT_CINDER_ENDPOINT_TYPE),
                            help='DEPRECATED! Use --os-endpoint-type.')
        parser.add_argument('--endpoint_type',
                            dest='os_endpoint_type',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-endpoint-type',
                            metavar='<os-endpoint-type>',
                            default=utils.env(
                                'OS_ENDPOINT_TYPE',
                                default=utils.env(
                                    'CINDER_ENDPOINT_TYPE',
                                    default=DEFAULT_CINDER_ENDPOINT_TYPE)),
                            help='Endpoint type, which is publicURL or '
                            'internalURL. '
                            'Default=env[OS_ENDPOINT_TYPE] or '
                            'nova env[CINDER_ENDPOINT_TYPE] or ' +
                            DEFAULT_CINDER_ENDPOINT_TYPE + '.')
        parser.add_argument('--os_endpoint_type', help=argparse.SUPPRESS)

        parser.add_argument('--os-volume-api-version',
                            metavar='<volume-api-ver>',
                            default=utils.env('OS_VOLUME_API_VERSION',
                                              default=None),
                            help='Block Storage API version. '
                            'Valid values are 1 or 2. '
                            'Default=env[OS_VOLUME_API_VERSION].')
        parser.add_argument('--os_volume_api_version', help=argparse.SUPPRESS)

        parser.add_argument('--bypass-url',
                            metavar='<bypass-url>',
                            dest='bypass_url',
                            default=utils.env('CINDERCLIENT_BYPASS_URL'),
                            help="Use this API endpoint instead of the "
                            "Service Catalog. Defaults to "
                            "env[CINDERCLIENT_BYPASS_URL]")
        parser.add_argument('--bypass_url', help=argparse.SUPPRESS)

        parser.add_argument('--retries',
                            metavar='<retries>',
                            type=int,
                            default=0,
                            help='Number of retries.')

        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 needs to match the one configured '
                                'on the cinder api server. '
                                'Without key the profiling will not be '
                                'triggered even if osprofiler is enabled '
                                'on server side.')

        self._append_global_identity_args(parser)

        # The auth-system-plugins might require some extra options
        cinderclient.auth_plugin.discover_auth_systems()
        cinderclient.auth_plugin.load_auth_system_opts(parser)

        return parser
コード例 #15
0
    def get_base_parser(self):
        parser = CinderClientArgumentParser(
            prog='cinder',
            description=__doc__.strip(),
            epilog='See "cinder help COMMAND" '
            'for help on a specific command.',
            add_help=False,
            formatter_class=OpenStackHelpFormatter,
        )

        # Global arguments
        parser.add_argument('-h',
                            '--help',
                            action='store_true',
                            help=argparse.SUPPRESS)

        parser.add_argument('--version',
                            action='version',
                            version=cinderclient.__version__)

        parser.add_argument('--debug',
                            action='store_true',
                            default=utils.env('CINDERCLIENT_DEBUG',
                                              default=False),
                            help="Print debugging output")

        parser.add_argument('--os-username',
                            metavar='<auth-user-name>',
                            default=utils.env('OS_USERNAME',
                                              'CINDER_USERNAME'),
                            help='Defaults to env[OS_USERNAME].')
        parser.add_argument('--os_username', help=argparse.SUPPRESS)

        parser.add_argument('--os-password',
                            metavar='<auth-password>',
                            default=utils.env('OS_PASSWORD',
                                              'CINDER_PASSWORD'),
                            help='Defaults to env[OS_PASSWORD].')
        parser.add_argument('--os_password', help=argparse.SUPPRESS)

        parser.add_argument('--os-tenant-name',
                            metavar='<auth-tenant-name>',
                            default=utils.env('OS_TENANT_NAME',
                                              'CINDER_PROJECT_ID'),
                            help='Defaults to env[OS_TENANT_NAME].')
        parser.add_argument('--os_tenant_name', help=argparse.SUPPRESS)

        parser.add_argument('--os-tenant-id',
                            metavar='<auth-tenant-id>',
                            default=utils.env('OS_TENANT_ID',
                                              'CINDER_TENANT_ID'),
                            help='Defaults to env[OS_TENANT_ID].')
        parser.add_argument('--os_tenant_id', help=argparse.SUPPRESS)

        parser.add_argument('--os-auth-url',
                            metavar='<auth-url>',
                            default=utils.env('OS_AUTH_URL', 'CINDER_URL'),
                            help='Defaults to env[OS_AUTH_URL].')
        parser.add_argument('--os_auth_url', help=argparse.SUPPRESS)

        parser.add_argument('--os-region-name',
                            metavar='<region-name>',
                            default=utils.env('OS_REGION_NAME',
                                              'CINDER_REGION_NAME'),
                            help='Defaults to env[OS_REGION_NAME].')
        parser.add_argument('--os_region_name', help=argparse.SUPPRESS)

        parser.add_argument('--service-type',
                            metavar='<service-type>',
                            help='Defaults to compute for most actions')
        parser.add_argument('--service_type', help=argparse.SUPPRESS)

        parser.add_argument('--service-name',
                            metavar='<service-name>',
                            default=utils.env('CINDER_SERVICE_NAME'),
                            help='Defaults to env[CINDER_SERVICE_NAME]')
        parser.add_argument('--service_name', help=argparse.SUPPRESS)

        parser.add_argument('--volume-service-name',
                            metavar='<volume-service-name>',
                            default=utils.env('CINDER_VOLUME_SERVICE_NAME'),
                            help='Defaults to env[CINDER_VOLUME_SERVICE_NAME]')
        parser.add_argument('--volume_service_name', help=argparse.SUPPRESS)

        parser.add_argument('--endpoint-type',
                            metavar='<endpoint-type>',
                            default=utils.env(
                                'CINDER_ENDPOINT_TYPE',
                                default=DEFAULT_CINDER_ENDPOINT_TYPE),
                            help='Defaults to env[CINDER_ENDPOINT_TYPE] or ' +
                            DEFAULT_CINDER_ENDPOINT_TYPE + '.')
        parser.add_argument('--endpoint_type', help=argparse.SUPPRESS)

        parser.add_argument('--os-volume-api-version',
                            metavar='<compute-api-ver>',
                            default=utils.env(
                                'OS_VOLUME_API_VERSION',
                                default=DEFAULT_OS_VOLUME_API_VERSION),
                            help='Accepts 1 or 2,defaults '
                            'to env[OS_VOLUME_API_VERSION].')
        parser.add_argument('--os_volume_api_version', help=argparse.SUPPRESS)

        parser.add_argument('--os-cacert',
                            metavar='<ca-certificate>',
                            default=utils.env('OS_CACERT', default=None),
                            help='Specify a CA bundle file to use in '
                            'verifying a TLS (https) server certificate. '
                            'Defaults to env[OS_CACERT]')

        parser.add_argument('--insecure',
                            default=utils.env('CINDERCLIENT_INSECURE',
                                              default=False),
                            action='store_true',
                            help=argparse.SUPPRESS)

        parser.add_argument('--retries',
                            metavar='<retries>',
                            type=int,
                            default=0,
                            help='Number of retries.')

        # FIXME(dtroyer): The args below are here for diablo compatibility,
        #                 remove them in folsum cycle

        # alias for --os-username, left in for backwards compatibility
        parser.add_argument('--username', help=argparse.SUPPRESS)

        # alias for --os-region_name, left in for backwards compatibility
        parser.add_argument('--region_name', help=argparse.SUPPRESS)

        # alias for --os-password, left in for backwards compatibility
        parser.add_argument('--apikey',
                            '--password',
                            dest='apikey',
                            default=utils.env('CINDER_API_KEY'),
                            help=argparse.SUPPRESS)

        # alias for --os-tenant-name, left in for backward compatibility
        parser.add_argument('--projectid',
                            '--tenant_name',
                            dest='projectid',
                            default=utils.env('CINDER_PROJECT_ID'),
                            help=argparse.SUPPRESS)

        # alias for --os-auth-url, left in for backward compatibility
        parser.add_argument('--url',
                            '--auth_url',
                            dest='url',
                            default=utils.env('CINDER_URL'),
                            help=argparse.SUPPRESS)

        return parser
コード例 #16
0
    def _append_global_identity_args(self, parser):
        # FIXME(bklei): these are global identity (Keystone) arguments which
        # should be consistent and shared by all service clients. Therefore,
        # they should be provided by python-keystoneclient. We will need to
        # refactor this code once this functionality is available in
        # python-keystoneclient.

        parser.add_argument(
            '--os-auth-strategy',
            metavar='<auth-strategy>',
            default=utils.env('OS_AUTH_STRATEGY', default='keystone'),
            help=_('Authentication strategy (Env: OS_AUTH_STRATEGY'
                   ', default keystone). For now, any other value will'
                   ' disable the authentication'))
        parser.add_argument('--os_auth_strategy', help=argparse.SUPPRESS)

        parser.add_argument('--os-username',
                            metavar='<auth-user-name>',
                            default=utils.env('OS_USERNAME',
                                              'CINDER_USERNAME'),
                            help='OpenStack user name. '
                            'Default=env[OS_USERNAME].')
        parser.add_argument('--os_username', help=argparse.SUPPRESS)

        parser.add_argument('--os-password',
                            metavar='<auth-password>',
                            default=utils.env('OS_PASSWORD',
                                              'CINDER_PASSWORD'),
                            help='Password for OpenStack user. '
                            'Default=env[OS_PASSWORD].')
        parser.add_argument('--os_password', help=argparse.SUPPRESS)

        parser.add_argument('--os-tenant-name',
                            metavar='<auth-tenant-name>',
                            default=utils.env('OS_TENANT_NAME',
                                              'CINDER_PROJECT_ID'),
                            help='Tenant name. '
                            'Default=env[OS_TENANT_NAME].')
        parser.add_argument('--os_tenant_name', help=argparse.SUPPRESS)

        parser.add_argument('--os-tenant-id',
                            metavar='<auth-tenant-id>',
                            default=utils.env('OS_TENANT_ID',
                                              'CINDER_TENANT_ID'),
                            help='ID for the tenant. '
                            'Default=env[OS_TENANT_ID].')
        parser.add_argument('--os_tenant_id', help=argparse.SUPPRESS)

        parser.add_argument('--os-auth-url',
                            metavar='<auth-url>',
                            default=utils.env('OS_AUTH_URL', 'CINDER_URL'),
                            help='URL for the authentication service. '
                            'Default=env[OS_AUTH_URL].')
        parser.add_argument('--os_auth_url', help=argparse.SUPPRESS)

        parser.add_argument('--os-user-id',
                            metavar='<auth-user-id>',
                            default=utils.env('OS_USER_ID'),
                            help=_('Authentication user ID (Env: OS_USER_ID)'))

        parser.add_argument('--os_user_id', help=argparse.SUPPRESS)

        parser.add_argument('--os-user-domain-id',
                            metavar='<auth-user-domain-id>',
                            default=utils.env('OS_USER_DOMAIN_ID'),
                            help='OpenStack user domain ID. '
                            'Defaults to env[OS_USER_DOMAIN_ID].')

        parser.add_argument('--os_user_domain_id', help=argparse.SUPPRESS)

        parser.add_argument('--os-user-domain-name',
                            metavar='<auth-user-domain-name>',
                            default=utils.env('OS_USER_DOMAIN_NAME'),
                            help='OpenStack user domain name. '
                            'Defaults to env[OS_USER_DOMAIN_NAME].')

        parser.add_argument('--os_user_domain_name', help=argparse.SUPPRESS)

        parser.add_argument('--os-project-id',
                            metavar='<auth-project-id>',
                            default=utils.env('OS_PROJECT_ID'),
                            help='Another way to specify tenant ID. '
                            'This option is mutually exclusive with '
                            ' --os-tenant-id. '
                            'Defaults to env[OS_PROJECT_ID].')

        parser.add_argument('--os_project_id', help=argparse.SUPPRESS)

        parser.add_argument('--os-project-name',
                            metavar='<auth-project-name>',
                            default=utils.env('OS_PROJECT_NAME'),
                            help='Another way to specify tenant name. '
                            'This option is mutually exclusive with '
                            ' --os-tenant-name. '
                            'Defaults to env[OS_PROJECT_NAME].')

        parser.add_argument('--os_project_name', help=argparse.SUPPRESS)

        parser.add_argument('--os-project-domain-id',
                            metavar='<auth-project-domain-id>',
                            default=utils.env('OS_PROJECT_DOMAIN_ID'),
                            help='Defaults to env[OS_PROJECT_DOMAIN_ID].')

        parser.add_argument('--os-project-domain-name',
                            metavar='<auth-project-domain-name>',
                            default=utils.env('OS_PROJECT_DOMAIN_NAME'),
                            help='Defaults to env[OS_PROJECT_DOMAIN_NAME].')

        parser.add_argument('--os-region-name',
                            metavar='<region-name>',
                            default=utils.env('OS_REGION_NAME',
                                              'CINDER_REGION_NAME'),
                            help='Region name. '
                            'Default=env[OS_REGION_NAME].')
        parser.add_argument('--os_region_name', help=argparse.SUPPRESS)

        parser.add_argument('--os-token',
                            metavar='<token>',
                            default=utils.env('OS_TOKEN'),
                            help=_('Defaults to env[OS_TOKEN]'))
        parser.add_argument('--os_token', help=argparse.SUPPRESS)

        parser.add_argument('--os-url',
                            metavar='<url>',
                            default=utils.env('OS_URL'),
                            help=_('Defaults to env[OS_URL]'))
        parser.add_argument('--os_url', help=argparse.SUPPRESS)

        # Register the CLI arguments that have moved to the session object.
        session.Session.register_cli_options(parser)
        parser.set_defaults(
            insecure=utils.env('CINDERCLIENT_INSECURE', default=False))
コード例 #17
0
    def get_base_parser(self):
        parser = CinderClientArgumentParser(
            prog='cinder',
            description=__doc__.strip(),
            epilog='Run "cinder help SUBCOMMAND" for help on a subcommand.',
            add_help=False,
            formatter_class=OpenStackHelpFormatter,
        )

        # Global arguments
        parser.add_argument('-h', '--help',
                            action='store_true',
                            help=argparse.SUPPRESS)

        parser.add_argument('--version',
                            action='version',
                            version=cinderclient.__version__)

        parser.add_argument('--debug',
                            action='store_true',
                            default=utils.env('CINDERCLIENT_DEBUG',
                                              default=False),
                            help="Shows debugging output.")

        parser.add_argument('--os-username',
                            metavar='<auth-user-name>',
                            default=utils.env('OS_USERNAME',
                                              'CINDER_USERNAME'),
                            help='OpenStack user name. '
                            'Default=env[OS_USERNAME].')
        parser.add_argument('--os_username',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-password',
                            metavar='<auth-password>',
                            default=utils.env('OS_PASSWORD',
                                              'CINDER_PASSWORD'),
                            help='Password for OpenStack user. '
                            'Default=env[OS_PASSWORD].')
        parser.add_argument('--os_password',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-tenant-name',
                            metavar='<auth-tenant-name>',
                            default=utils.env('OS_TENANT_NAME',
                                              'CINDER_PROJECT_ID'),
                            help='Tenant name. '
                            'Default=env[OS_TENANT_NAME].')
        parser.add_argument('--os_tenant_name',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-tenant-id',
                            metavar='<auth-tenant-id>',
                            default=utils.env('OS_TENANT_ID',
                                              'CINDER_TENANT_ID'),
                            help='ID for the tenant. '
                            'Default=env[OS_TENANT_ID].')
        parser.add_argument('--os_tenant_id',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-auth-url',
                            metavar='<auth-url>',
                            default=utils.env('OS_AUTH_URL',
                                              'CINDER_URL'),
                            help='URL for the authentication service. '
                            'Default=env[OS_AUTH_URL].')
        parser.add_argument('--os_auth_url',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-region-name',
                            metavar='<region-name>',
                            default=utils.env('OS_REGION_NAME',
                                              'CINDER_REGION_NAME'),
                            help='Region name. '
                            'Default=env[OS_REGION_NAME].')
        parser.add_argument('--os_region_name',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-auth-system',
                            metavar='<auth-system>',
                            default=utils.env('OS_AUTH_SYSTEM'),
                            help='Defaults to env[OS_AUTH_SYSTEM].')
        parser.add_argument('--os_auth_system',
                            help=argparse.SUPPRESS)

        parser.add_argument('--service-type',
                            metavar='<service-type>',
                            help='Service type. '
                            'For most actions, default is volume.')
        parser.add_argument('--service_type',
                            help=argparse.SUPPRESS)

        parser.add_argument('--service-name',
                            metavar='<service-name>',
                            default=utils.env('CINDER_SERVICE_NAME'),
                            help='Service name. '
                            'Default=env[CINDER_SERVICE_NAME].')
        parser.add_argument('--service_name',
                            help=argparse.SUPPRESS)

        parser.add_argument('--volume-service-name',
                            metavar='<volume-service-name>',
                            default=utils.env('CINDER_VOLUME_SERVICE_NAME'),
                            help='Volume service name. '
                            'Default=env[CINDER_VOLUME_SERVICE_NAME].')
        parser.add_argument('--volume_service_name',
                            help=argparse.SUPPRESS)

        parser.add_argument('--endpoint-type',
                            metavar='<endpoint-type>',
                            default=utils.env('CINDER_ENDPOINT_TYPE',
                            default=DEFAULT_CINDER_ENDPOINT_TYPE),
                            help='Endpoint type, which is publicURL or '
                            'internalURL. '
                            'Default=nova env[CINDER_ENDPOINT_TYPE] or '
                            + DEFAULT_CINDER_ENDPOINT_TYPE + '.')
        parser.add_argument('--endpoint_type',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-volume-api-version',
                            metavar='<volume-api-ver>',
                            default=utils.env('OS_VOLUME_API_VERSION',
                            default=None),
                            help='Block Storage API version. '
                            'Valid values are 1 or 2. '
                            'Default=env[OS_VOLUME_API_VERSION].')
        parser.add_argument('--os_volume_api_version',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-cacert',
                            metavar='<ca-certificate>',
                            default=utils.env('OS_CACERT', default=None),
                            help='A CA bundle file that is used to '
                            'verify a TLS (https) server certificate. '
                            'Default=env[OS_CACERT].')

        parser.add_argument('--insecure',
                            default=utils.env('CINDERCLIENT_INSECURE',
                                              default=False),
                            action='store_true',
                            help=argparse.SUPPRESS)

        parser.add_argument('--retries',
                            metavar='<retries>',
                            type=int,
                            default=0,
                            help='Number of retries.')

        # FIXME(dtroyer): The args below are here for diablo compatibility,
        #                 remove them in folsum cycle

        # alias for --os-username, left in for backwards compatibility
        parser.add_argument('--username',
                            help=argparse.SUPPRESS)

        # alias for --os-region_name, left in for backwards compatibility
        parser.add_argument('--region_name',
                            help=argparse.SUPPRESS)

        # alias for --os-password, left in for backwards compatibility
        parser.add_argument('--apikey', '--password', dest='apikey',
                            default=utils.env('CINDER_API_KEY'),
                            help=argparse.SUPPRESS)

        # alias for --os-tenant-name, left in for backward compatibility
        parser.add_argument('--projectid', '--tenant_name', dest='projectid',
                            default=utils.env('CINDER_PROJECT_ID'),
                            help=argparse.SUPPRESS)

        # alias for --os-auth-url, left in for backward compatibility
        parser.add_argument('--url', '--auth_url', dest='url',
                            default=utils.env('CINDER_URL'),
                            help=argparse.SUPPRESS)

        # The auth-system-plugins might require some extra options
        cinderclient.auth_plugin.discover_auth_systems()
        cinderclient.auth_plugin.load_auth_system_opts(parser)

        return parser
コード例 #18
0
ファイル: shell.py プロジェクト: cbaesema/python-cinderclient
    def get_base_parser(self):
        parser = CinderClientArgumentParser(
            prog='cinder',
            description=__doc__.strip(),
            epilog='See "cinder help COMMAND" '
                   'for help on a specific command.',
            add_help=False,
            formatter_class=OpenStackHelpFormatter,
        )

        # Global arguments
        parser.add_argument('-h', '--help',
                            action='store_true',
                            help=argparse.SUPPRESS)

        parser.add_argument('--debug',
                            default=False,
                            action='store_true',
                            help="Print debugging output")

        parser.add_argument('--os_username',
                            default=utils.env('OS_USERNAME',
                                              'CINDER_USERNAME'),
                            help='Defaults to env[OS_USERNAME].')

        parser.add_argument('--os_password',
                            default=utils.env('OS_PASSWORD',
                                              'CINDER_PASSWORD'),
                            help='Defaults to env[OS_PASSWORD].')

        parser.add_argument('--os_tenant_name',
                            default=utils.env('OS_TENANT_NAME',
                                              'CINDER_PROJECT_ID'),
                            help='Defaults to env[OS_TENANT_NAME].')

        parser.add_argument('--os_auth_url',
                            default=utils.env('OS_AUTH_URL',
                                              'CINDER_URL'),
                            help='Defaults to env[OS_AUTH_URL].')

        parser.add_argument('--os_region_name',
                            default=utils.env('OS_REGION_NAME',
                                              'CINDER_REGION_NAME'),
                            help='Defaults to env[OS_REGION_NAME].')

        parser.add_argument('--service_type',
                            help='Defaults to compute for most actions')

        parser.add_argument('--service_name',
                            default=utils.env('CINDER_SERVICE_NAME'),
                            help='Defaults to env[CINDER_SERVICE_NAME]')

        parser.add_argument('--volume_service_name',
                            default=utils.env('CINDER_VOLUME_SERVICE_NAME'),
                            help='Defaults to env[CINDER_VOLUME_SERVICE_NAME]')

        parser.add_argument('--endpoint_type',
                            default=utils.env('CINDER_ENDPOINT_TYPE',
                            default=DEFAULT_CINDER_ENDPOINT_TYPE),
                            help='Defaults to env[CINDER_ENDPOINT_TYPE] or '
                            + DEFAULT_CINDER_ENDPOINT_TYPE + '.')

        parser.add_argument('--os_volume_api_version',
                            default=utils.env('OS_VOLUME_API_VERSION',
                            default=DEFAULT_OS_VOLUME_API_VERSION),
                            help='Accepts 1,defaults '
                                 'to env[OS_VOLUME_API_VERSION].')

        parser.add_argument('--insecure',
                            default=utils.env('CINDERCLIENT_INSECURE',
                                              default=False),
                            action='store_true',
                            help=argparse.SUPPRESS)

        # FIXME(dtroyer): The args below are here for diablo compatibility,
        #                 remove them in folsum cycle

        # alias for --os_username, left in for backwards compatibility
        parser.add_argument('--username',
                            help='Deprecated')

        # alias for --os_region_name, left in for backwards compatibility
        parser.add_argument('--region_name',
                            help='Deprecated')

        # alias for --os_password, left in for backwards compatibility
        parser.add_argument('--apikey', '--password', dest='apikey',
                            default=utils.env('CINDER_API_KEY'),
                            help='Deprecated')

        # alias for --os_tenant_name, left in for backward compatibility
        parser.add_argument('--projectid', '--tenant_name', dest='projectid',
                            default=utils.env('CINDER_PROJECT_ID'),
                            help='Deprecated')

        # alias for --os_auth_url, left in for backward compatibility
        parser.add_argument('--url', '--auth_url', dest='url',
                            default=utils.env('CINDER_URL'),
                            help='Deprecated')

        return parser
コード例 #19
0
    def get_base_parser(self):
        parser = CinderClientArgumentParser(
            prog='cinder',
            description=__doc__.strip(),
            epilog='Run "cinder help SUBCOMMAND" for help on a subcommand.',
            add_help=False,
            formatter_class=OpenStackHelpFormatter,
        )

        # Global arguments
        parser.add_argument('-h',
                            '--help',
                            action='store_true',
                            help=argparse.SUPPRESS)

        parser.add_argument('--version',
                            action='version',
                            version=cinderclient.__version__)

        parser.add_argument('--debug',
                            action='store_true',
                            default=utils.env('CINDERCLIENT_DEBUG',
                                              default=False),
                            help="Shows debugging output.")

        parser.add_argument('--os-username',
                            metavar='<auth-user-name>',
                            default=utils.env('OS_USERNAME',
                                              'CINDER_USERNAME'),
                            help='OpenStack user name. '
                            'Default=env[OS_USERNAME].')
        parser.add_argument('--os_username', help=argparse.SUPPRESS)

        parser.add_argument('--os-password',
                            metavar='<auth-password>',
                            default=utils.env('OS_PASSWORD',
                                              'CINDER_PASSWORD'),
                            help='Password for OpenStack user. '
                            'Default=env[OS_PASSWORD].')
        parser.add_argument('--os_password', help=argparse.SUPPRESS)

        parser.add_argument('--os-tenant-name',
                            metavar='<auth-tenant-name>',
                            default=utils.env('OS_TENANT_NAME',
                                              'CINDER_PROJECT_ID'),
                            help='Tenant name. '
                            'Default=env[OS_TENANT_NAME].')
        parser.add_argument('--os_tenant_name', help=argparse.SUPPRESS)

        parser.add_argument('--os-tenant-id',
                            metavar='<auth-tenant-id>',
                            default=utils.env('OS_TENANT_ID',
                                              'CINDER_TENANT_ID'),
                            help='ID for the tenant. '
                            'Default=env[OS_TENANT_ID].')
        parser.add_argument('--os_tenant_id', help=argparse.SUPPRESS)

        parser.add_argument('--os-auth-url',
                            metavar='<auth-url>',
                            default=utils.env('OS_AUTH_URL', 'CINDER_URL'),
                            help='URL for the authentication service. '
                            'Default=env[OS_AUTH_URL].')
        parser.add_argument('--os_auth_url', help=argparse.SUPPRESS)

        parser.add_argument('--os-region-name',
                            metavar='<region-name>',
                            default=utils.env('OS_REGION_NAME',
                                              'CINDER_REGION_NAME'),
                            help='Region name. '
                            'Default=env[OS_REGION_NAME].')
        parser.add_argument('--os_region_name', help=argparse.SUPPRESS)

        parser.add_argument('--os-auth-system',
                            metavar='<auth-system>',
                            default=utils.env('OS_AUTH_SYSTEM'),
                            help='Defaults to env[OS_AUTH_SYSTEM].')
        parser.add_argument('--os_auth_system', help=argparse.SUPPRESS)

        parser.add_argument('--service-type',
                            metavar='<service-type>',
                            help='Service type. '
                            'For most actions, default is volume.')
        parser.add_argument('--service_type', help=argparse.SUPPRESS)

        parser.add_argument('--service-name',
                            metavar='<service-name>',
                            default=utils.env('CINDER_SERVICE_NAME'),
                            help='Service name. '
                            'Default=env[CINDER_SERVICE_NAME].')
        parser.add_argument('--service_name', help=argparse.SUPPRESS)

        parser.add_argument('--volume-service-name',
                            metavar='<volume-service-name>',
                            default=utils.env('CINDER_VOLUME_SERVICE_NAME'),
                            help='Volume service name. '
                            'Default=env[CINDER_VOLUME_SERVICE_NAME].')
        parser.add_argument('--volume_service_name', help=argparse.SUPPRESS)

        parser.add_argument('--endpoint-type',
                            metavar='<endpoint-type>',
                            default=utils.env(
                                'CINDER_ENDPOINT_TYPE',
                                default=DEFAULT_CINDER_ENDPOINT_TYPE),
                            help='Endpoint type, which is publicURL or '
                            'internalURL. '
                            'Default=nova env[CINDER_ENDPOINT_TYPE] or ' +
                            DEFAULT_CINDER_ENDPOINT_TYPE + '.')
        parser.add_argument('--endpoint_type', help=argparse.SUPPRESS)

        parser.add_argument('--os-volume-api-version',
                            metavar='<volume-api-ver>',
                            default=utils.env('OS_VOLUME_API_VERSION',
                                              default=None),
                            help='Block Storage API version. '
                            'Valid values are 1 or 2. '
                            'Default=env[OS_VOLUME_API_VERSION].')
        parser.add_argument('--os_volume_api_version', help=argparse.SUPPRESS)

        parser.add_argument('--os-cacert',
                            metavar='<ca-certificate>',
                            default=utils.env('OS_CACERT', default=None),
                            help='A CA bundle file that is used to '
                            'verify a TLS (https) server certificate. '
                            'Default=env[OS_CACERT].')

        parser.add_argument('--insecure',
                            default=utils.env('CINDERCLIENT_INSECURE',
                                              default=False),
                            action='store_true',
                            help=argparse.SUPPRESS)

        parser.add_argument('--retries',
                            metavar='<retries>',
                            type=int,
                            default=0,
                            help='Number of retries.')

        # FIXME(dtroyer): The args below are here for diablo compatibility,
        #                 remove them in folsum cycle

        # alias for --os-username, left in for backwards compatibility
        parser.add_argument('--username', help=argparse.SUPPRESS)

        # alias for --os-region_name, left in for backwards compatibility
        parser.add_argument('--region_name', help=argparse.SUPPRESS)

        # alias for --os-password, left in for backwards compatibility
        parser.add_argument('--apikey',
                            '--password',
                            dest='apikey',
                            default=utils.env('CINDER_API_KEY'),
                            help=argparse.SUPPRESS)

        # alias for --os-tenant-name, left in for backward compatibility
        parser.add_argument('--projectid',
                            '--tenant_name',
                            dest='projectid',
                            default=utils.env('CINDER_PROJECT_ID'),
                            help=argparse.SUPPRESS)

        # alias for --os-auth-url, left in for backward compatibility
        parser.add_argument('--url',
                            '--auth_url',
                            dest='url',
                            default=utils.env('CINDER_URL'),
                            help=argparse.SUPPRESS)

        # The auth-system-plugins might require some extra options
        cinderclient.auth_plugin.discover_auth_systems()
        cinderclient.auth_plugin.load_auth_system_opts(parser)

        return parser
コード例 #20
0
ファイル: shell.py プロジェクト: shk0305/python-cinderclient
    def _append_global_identity_args(self, parser):
        # FIXME(bklei): these are global identity (Keystone) arguments which
        # should be consistent and shared by all service clients. Therefore,
        # they should be provided by python-keystoneclient. We will need to
        # refactor this code once this functionality is available in
        # python-keystoneclient.

        parser.add_argument(
            '--os-auth-strategy', metavar='<auth-strategy>',
            default=utils.env('OS_AUTH_STRATEGY', default='keystone'),
            help=_('Authentication strategy (Env: OS_AUTH_STRATEGY'
                   ', default keystone). For now, any other value will'
                   ' disable the authentication.'))
        parser.add_argument(
            '--os_auth_strategy',
            help=argparse.SUPPRESS)

        parser.add_argument('--os-username',
                            metavar='<auth-user-name>',
                            default=utils.env('OS_USERNAME',
                                              'CINDER_USERNAME'),
                            help='OpenStack user name. '
                            'Default=env[OS_USERNAME].')
        parser.add_argument('--os_username',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-password',
                            metavar='<auth-password>',
                            default=utils.env('OS_PASSWORD',
                                              'CINDER_PASSWORD'),
                            help='Password for OpenStack user. '
                            'Default=env[OS_PASSWORD].')
        parser.add_argument('--os_password',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-tenant-name',
                            metavar='<auth-tenant-name>',
                            default=utils.env('OS_TENANT_NAME',
                                              'OS_PROJECT_NAME',
                                              'CINDER_PROJECT_ID'),
                            help='Tenant name. '
                            'Default=env[OS_TENANT_NAME].')
        parser.add_argument('--os_tenant_name',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-tenant-id',
                            metavar='<auth-tenant-id>',
                            default=utils.env('OS_TENANT_ID',
                                              'OS_PROJECT_ID',
                                              'CINDER_TENANT_ID'),
                            help='ID for the tenant. '
                            'Default=env[OS_TENANT_ID].')
        parser.add_argument('--os_tenant_id',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-auth-url',
                            metavar='<auth-url>',
                            default=utils.env('OS_AUTH_URL',
                                              'CINDER_URL'),
                            help='URL for the authentication service. '
                            'Default=env[OS_AUTH_URL].')
        parser.add_argument('--os_auth_url',
                            help=argparse.SUPPRESS)

        parser.add_argument(
            '--os-user-id', metavar='<auth-user-id>',
            default=utils.env('OS_USER_ID'),
            help=_('Authentication user ID (Env: OS_USER_ID).'))

        parser.add_argument(
            '--os_user_id',
            help=argparse.SUPPRESS)

        parser.add_argument(
            '--os-user-domain-id',
            metavar='<auth-user-domain-id>',
            default=utils.env('OS_USER_DOMAIN_ID'),
            help='OpenStack user domain ID. '
            'Defaults to env[OS_USER_DOMAIN_ID].')

        parser.add_argument(
            '--os_user_domain_id',
            help=argparse.SUPPRESS)

        parser.add_argument(
            '--os-user-domain-name',
            metavar='<auth-user-domain-name>',
            default=utils.env('OS_USER_DOMAIN_NAME'),
            help='OpenStack user domain name. '
                 'Defaults to env[OS_USER_DOMAIN_NAME].')

        parser.add_argument(
            '--os_user_domain_name',
            help=argparse.SUPPRESS)

        parser.add_argument(
            '--os-project-id',
            metavar='<auth-project-id>',
            default=utils.env('OS_PROJECT_ID'),
            help='Another way to specify tenant ID. '
            'This option is mutually exclusive with '
            ' --os-tenant-id. '
            'Defaults to env[OS_PROJECT_ID].')

        parser.add_argument(
            '--os_project_id',
            help=argparse.SUPPRESS)

        parser.add_argument(
            '--os-project-name',
            metavar='<auth-project-name>',
            default=utils.env('OS_PROJECT_NAME'),
            help='Another way to specify tenant name. '
                 'This option is mutually exclusive with '
                 ' --os-tenant-name. '
                 'Defaults to env[OS_PROJECT_NAME].')

        parser.add_argument(
            '--os_project_name',
            help=argparse.SUPPRESS)

        parser.add_argument(
            '--os-project-domain-id',
            metavar='<auth-project-domain-id>',
            default=utils.env('OS_PROJECT_DOMAIN_ID'),
            help='Defaults to env[OS_PROJECT_DOMAIN_ID].')

        parser.add_argument(
            '--os-project-domain-name',
            metavar='<auth-project-domain-name>',
            default=utils.env('OS_PROJECT_DOMAIN_NAME'),
            help='Defaults to env[OS_PROJECT_DOMAIN_NAME].')

        parser.add_argument('--os-region-name',
                            metavar='<region-name>',
                            default=utils.env('OS_REGION_NAME',
                                              'CINDER_REGION_NAME'),
                            help='Region name. '
                            'Default=env[OS_REGION_NAME].')
        parser.add_argument('--os_region_name',
                            help=argparse.SUPPRESS)

        parser.add_argument(
            '--os-token', metavar='<token>',
            default=utils.env('OS_TOKEN'),
            help=_('Defaults to env[OS_TOKEN].'))
        parser.add_argument(
            '--os_token',
            help=argparse.SUPPRESS)

        parser.add_argument(
            '--os-url', metavar='<url>',
            default=utils.env('OS_URL'),
            help=_('Defaults to env[OS_URL].'))
        parser.add_argument(
            '--os_url',
            help=argparse.SUPPRESS)

        # Register the CLI arguments that have moved to the session object.
        session.Session.register_cli_options(parser)
        parser.set_defaults(insecure=utils.env('CINDERCLIENT_INSECURE',
                                               default=False))
コード例 #21
0
    def get_base_parser(self):
        parser = CinderClientArgumentParser(
            prog='cinder',
            description=__doc__.strip(),
            epilog=_('Run "cinder help SUBCOMMAND" for help on a subcommand.'),
            add_help=False,
            formatter_class=OpenStackHelpFormatter,
        )

        # Global arguments
        parser.add_argument('-h', '--help',
                            action='store_true',
                            help=argparse.SUPPRESS)

        parser.add_argument('--version',
                            action='version',
                            version=cinderclient.__version__)

        parser.add_argument('-d', '--debug',
                            action='store_true',
                            default=utils.env('CINDERCLIENT_DEBUG',
                                              default=False),
                            help=_('Shows debugging output.'))

        parser.add_argument('--service-type',
                            metavar='<service-type>',
                            help=_('Service type. '
                            'For most actions, default is volume.'))
        parser.add_argument('--service_type',
                            help=argparse.SUPPRESS)

        parser.add_argument('--service-name',
                            metavar='<service-name>',
                            default=utils.env('CINDER_SERVICE_NAME'),
                            help=_('Service name. '
                            'Default=env[CINDER_SERVICE_NAME].'))
        parser.add_argument('--service_name',
                            help=argparse.SUPPRESS)

        parser.add_argument('--volume-service-name',
                            metavar='<volume-service-name>',
                            default=utils.env('CINDER_VOLUME_SERVICE_NAME'),
                            help=_('Volume service name. '
                            'Default=env[CINDER_VOLUME_SERVICE_NAME].'))
        parser.add_argument('--volume_service_name',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-endpoint-type',
                            metavar='<os-endpoint-type>',
                            default=utils.env('CINDER_ENDPOINT_TYPE',
                            default=utils.env('OS_ENDPOINT_TYPE',
                            default=DEFAULT_CINDER_ENDPOINT_TYPE)),
                            help=_('Endpoint type, which is publicURL or '
                            'internalURL. '
                            'Default=env[OS_ENDPOINT_TYPE] or '
                            'nova env[CINDER_ENDPOINT_TYPE] or %s.')
                            % DEFAULT_CINDER_ENDPOINT_TYPE)
        parser.add_argument('--os_endpoint_type',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-volume-api-version',
                            metavar='<volume-api-ver>',
                            default=utils.env('OS_VOLUME_API_VERSION',
                                              default=None),
                            help=_('Block Storage API version. '
                            'Accepts X, X.Y (where X is major and Y is minor '
                            'part).'
                            'Default=env[OS_VOLUME_API_VERSION].'))
        parser.add_argument('--os_volume_api_version',
                            help=argparse.SUPPRESS)

        parser.add_argument('--os-endpoint',
                            metavar='<os-endpoint>',
                            dest='os_endpoint',
                            default=utils.env('CINDER_ENDPOINT'),
                            help=_("Use this API endpoint instead of the "
                            "Service Catalog. Defaults to "
                            "env[CINDER_ENDPOINT]."))
        parser.add_argument('--os_endpoint',
                            help=argparse.SUPPRESS)

        parser.add_argument('--retries',
                            metavar='<retries>',
                            type=int,
                            default=0,
                            help=_('Number of retries.'))

        if osprofiler_profiler:
            parser.add_argument('--profile',
                                metavar='HMAC_KEY',
                                default=utils.env('OS_PROFILE'),
                                help=_('HMAC key to use for encrypting '
                                'context data for performance profiling '
                                'of operation. This key needs to match the '
                                'one configured on the cinder api server. '
                                'Without key the profiling will not be '
                                'triggered even if osprofiler is enabled '
                                'on server side. Defaults to '
                                'env[OS_PROFILE].'))

        self._append_global_identity_args(parser)

        return parser