Remove unnecessary check for tenant information
Keystone v3 has changed the name of tenants to projects which means that OS_TENANT_NAME is meaningless in a cloud where v3 is the default authentication version. As such, if a user does not have OS_TENANT_NAME enabled, cinderclient will not work even though it has checks for v3 immediately below this check (and the same check replicated further below that). Removing this allows cinderclient to work with Keystone v3 without setting OS_TENANT_NAME unnecessarily. Further, the check for project information was incorrectly referring to project_domain_name and project_domain_id instead of os_project_domain_name and os_project_domain_id. Closes-bug: 1472636 Change-Id: Ifabb4a2aec070c00349e794364a71394feea99f1
This commit is contained in:
@@ -611,6 +611,14 @@ class OpenStackCinderShell(object):
|
||||
# FIXME(usrleon): Here should be restrict for project id same as
|
||||
# for os_username or os_password but for compatibility it is not.
|
||||
|
||||
# V3 stuff
|
||||
project_info_provided = ((self.options.os_tenant_name or
|
||||
self.options.os_tenant_id) or
|
||||
(self.options.os_project_name and
|
||||
(self.options.os_project_domain_name or
|
||||
self.options.os_project_domain_id)) or
|
||||
self.options.os_project_id)
|
||||
|
||||
if not utils.isunauthenticated(args.func):
|
||||
if auth_plugin:
|
||||
auth_plugin.parse_opts(args)
|
||||
@@ -637,32 +645,20 @@ class OpenStackCinderShell(object):
|
||||
"env[OS_PASSWORD] "
|
||||
"or, prompted response.")
|
||||
|
||||
if not (os_tenant_name or os_tenant_id):
|
||||
raise exc.CommandError("You must provide a tenant ID "
|
||||
"through --os-tenant-id or "
|
||||
"env[OS_TENANT_ID].")
|
||||
|
||||
# V3 stuff
|
||||
project_info_provided = self.options.os_tenant_name or \
|
||||
self.options.os_tenant_id or \
|
||||
(self.options.os_project_name and
|
||||
(self.options.project_domain_name or
|
||||
self.options.project_domain_id)) or \
|
||||
self.options.os_project_id
|
||||
|
||||
if (not project_info_provided):
|
||||
raise exc.CommandError(
|
||||
_("You must provide a tenant_name, tenant_id, "
|
||||
"project_id or project_name (with "
|
||||
"project_domain_name or project_domain_id) via "
|
||||
" --os-tenant-name (env[OS_TENANT_NAME]),"
|
||||
" --os-tenant-id (env[OS_TENANT_ID]),"
|
||||
" --os-project-id (env[OS_PROJECT_ID])"
|
||||
" --os-project-name (env[OS_PROJECT_NAME]),"
|
||||
" --os-project-domain-id "
|
||||
"(env[OS_PROJECT_DOMAIN_ID])"
|
||||
" --os-project-domain-name "
|
||||
"(env[OS_PROJECT_DOMAIN_NAME])"))
|
||||
if not project_info_provided:
|
||||
raise exc.CommandError(_(
|
||||
"You must provide a tenant_name, tenant_id, "
|
||||
"project_id or project_name (with "
|
||||
"project_domain_name or project_domain_id) via "
|
||||
" --os-tenant-name (env[OS_TENANT_NAME]),"
|
||||
" --os-tenant-id (env[OS_TENANT_ID]),"
|
||||
" --os-project-id (env[OS_PROJECT_ID])"
|
||||
" --os-project-name (env[OS_PROJECT_NAME]),"
|
||||
" --os-project-domain-id "
|
||||
"(env[OS_PROJECT_DOMAIN_ID])"
|
||||
" --os-project-domain-name "
|
||||
"(env[OS_PROJECT_DOMAIN_NAME])"
|
||||
))
|
||||
|
||||
if not os_auth_url:
|
||||
if os_auth_system and os_auth_system != 'keystone':
|
||||
@@ -673,10 +669,20 @@ class OpenStackCinderShell(object):
|
||||
"You must provide an authentication URL "
|
||||
"through --os-auth-url or env[OS_AUTH_URL].")
|
||||
|
||||
if not (os_tenant_name or os_tenant_id):
|
||||
raise exc.CommandError(
|
||||
"You must provide a tenant ID "
|
||||
"through --os-tenant-id or env[OS_TENANT_ID].")
|
||||
if not project_info_provided:
|
||||
raise exc.CommandError(_(
|
||||
"You must provide a tenant_name, tenant_id, "
|
||||
"project_id or project_name (with "
|
||||
"project_domain_name or project_domain_id) via "
|
||||
" --os-tenant-name (env[OS_TENANT_NAME]),"
|
||||
" --os-tenant-id (env[OS_TENANT_ID]),"
|
||||
" --os-project-id (env[OS_PROJECT_ID])"
|
||||
" --os-project-name (env[OS_PROJECT_NAME]),"
|
||||
" --os-project-domain-id "
|
||||
"(env[OS_PROJECT_DOMAIN_ID])"
|
||||
" --os-project-domain-name "
|
||||
"(env[OS_PROJECT_DOMAIN_NAME])"
|
||||
))
|
||||
|
||||
if not os_auth_url:
|
||||
raise exc.CommandError(
|
||||
|
Reference in New Issue
Block a user