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
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
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
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))
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
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))
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
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
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
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))
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
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)
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
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
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
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))
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
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
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
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))
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