Support OS_PROJECT_* env variables
OS_TENANT_NAME and OS_TENANT_ID are legacy variables. so OS_PROJECT_NAME and OS_PROJECT_ID should be supported. Change-Id: Ibdfa0e14d80313b8087670ccd0bd9bdbf5ba364d Closes-Bug: #1591027
This commit is contained in:
parent
9b6d7321c7
commit
c9eabe965c
@ -124,7 +124,14 @@ class BaseAuthPlugin(object):
|
||||
"auth_system",
|
||||
"username",
|
||||
"password",
|
||||
"tenant_id",
|
||||
"tenant_name",
|
||||
"project_id",
|
||||
"project_name",
|
||||
"user_domain_id",
|
||||
"user_domain_name",
|
||||
"project_domain_id",
|
||||
"project_domain_name",
|
||||
"token",
|
||||
"auth_url",
|
||||
]
|
||||
|
@ -271,31 +271,6 @@ class OpenStackMagnumShell(object):
|
||||
# type=positive_non_zero_float,
|
||||
# help="Set HTTP call timeout (in seconds)")
|
||||
|
||||
parser.add_argument('--os-tenant-id',
|
||||
metavar='<auth-tenant-id>',
|
||||
default=cliutils.env('OS_TENANT_ID'),
|
||||
help='Defaults to env[OS_TENANT_ID].')
|
||||
|
||||
parser.add_argument('--os-user-domain-id',
|
||||
metavar='<auth-user-domain-id>',
|
||||
default=cliutils.env('OS_USER_DOMAIN_ID'),
|
||||
help='Defaults to env[OS_USER_DOMAIN_ID].')
|
||||
|
||||
parser.add_argument('--os-user-domain-name',
|
||||
metavar='<auth-user-domain-name>',
|
||||
default=cliutils.env('OS_USER_DOMAIN_NAME'),
|
||||
help='Defaults to env[OS_USER_DOMAIN_NAME].')
|
||||
|
||||
parser.add_argument('--os-project-domain-id',
|
||||
metavar='<auth-project-domain-id>',
|
||||
default=cliutils.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=cliutils.env('OS_PROJECT_DOMAIN_NAME'),
|
||||
help='Defaults to env[OS_PROJECT_DOMAIN_NAME].')
|
||||
|
||||
parser.add_argument('--service-type',
|
||||
metavar='<service-type>',
|
||||
help='Defaults to container for all '
|
||||
@ -459,18 +434,23 @@ class OpenStackMagnumShell(object):
|
||||
self.do_bash_completion(args)
|
||||
return 0
|
||||
|
||||
(os_username, os_tenant_name, os_tenant_id,
|
||||
(os_username, os_project_name, os_project_id,
|
||||
os_tenant_id, os_tenant_name,
|
||||
os_user_domain_id, os_user_domain_name,
|
||||
os_project_domain_id, os_project_domain_name,
|
||||
os_auth_url, os_auth_system, endpoint_type,
|
||||
service_type, bypass_url, insecure) = (
|
||||
(args.os_username, args.os_tenant_name, args.os_tenant_id,
|
||||
(args.os_username, args.os_project_name, args.os_project_id,
|
||||
args.os_tenant_id, args.os_tenant_name,
|
||||
args.os_user_domain_id, args.os_user_domain_name,
|
||||
args.os_project_domain_id, args.os_project_domain_name,
|
||||
args.os_auth_url, args.os_auth_system, args.endpoint_type,
|
||||
args.service_type, args.bypass_url, args.insecure)
|
||||
)
|
||||
|
||||
os_project_id = (os_project_id or os_tenant_id)
|
||||
os_project_name = (os_project_name or os_tenant_name)
|
||||
|
||||
if os_auth_system and os_auth_system != "keystone":
|
||||
auth_plugin = auth.load_plugin(os_auth_system)
|
||||
else:
|
||||
@ -499,11 +479,11 @@ class OpenStackMagnumShell(object):
|
||||
"via either --os-username or "
|
||||
"env[OS_USERNAME]")
|
||||
|
||||
if not os_tenant_name and not os_tenant_id:
|
||||
raise exc.CommandError("You must provide a tenant name "
|
||||
"or tenant id via --os-tenant-name, "
|
||||
"--os-tenant-id, env[OS_TENANT_NAME] "
|
||||
"or env[OS_TENANT_ID]")
|
||||
if not os_project_name and not os_project_id:
|
||||
raise exc.CommandError("You must provide a project name "
|
||||
"or project id via --os-project-name, "
|
||||
"--os-project-id, env[OS_PROJECT_NAME] "
|
||||
"or env[OS_PROJECT_ID]")
|
||||
|
||||
if not os_auth_url:
|
||||
if os_auth_system and os_auth_system != 'keystone':
|
||||
@ -552,8 +532,8 @@ class OpenStackMagnumShell(object):
|
||||
|
||||
self.cs = client.Client(username=os_username,
|
||||
api_key=os_password,
|
||||
project_id=os_tenant_id,
|
||||
project_name=os_tenant_name,
|
||||
project_id=os_project_id,
|
||||
project_name=os_project_name,
|
||||
user_domain_id=os_user_domain_id,
|
||||
user_domain_name=os_user_domain_name,
|
||||
project_domain_id=os_project_domain_id,
|
||||
|
@ -27,22 +27,22 @@ from magnumclient.tests import utils
|
||||
|
||||
FAKE_ENV = {'OS_USERNAME': 'username',
|
||||
'OS_PASSWORD': 'password',
|
||||
'OS_TENANT_NAME': 'tenant_name',
|
||||
'OS_PROJECT_NAME': 'project_name',
|
||||
'OS_AUTH_URL': 'http://no.where/v2.0'}
|
||||
|
||||
FAKE_ENV2 = {'OS_USER_ID': 'user_id',
|
||||
'OS_PASSWORD': 'password',
|
||||
'OS_TENANT_ID': 'tenant_id',
|
||||
'OS_PROJECT_ID': 'project_id',
|
||||
'OS_AUTH_URL': 'http://no.where/v2.0'}
|
||||
|
||||
FAKE_ENV3 = {'OS_USERNAME': 'username',
|
||||
'OS_PASSWORD': 'password',
|
||||
'OS_TENANT_ID': 'tenant_id',
|
||||
'OS_PROJECT_ID': 'project_id',
|
||||
'OS_AUTH_URL': 'http://no.where/v2.0'}
|
||||
|
||||
FAKE_ENV4 = {'OS_USERNAME': 'username',
|
||||
'OS_PASSWORD': 'password',
|
||||
'OS_TENANT_ID': 'tenant_id',
|
||||
'OS_PROJECT_ID': 'project_id',
|
||||
'OS_USER_DOMAIN_NAME': 'Default',
|
||||
'OS_PROJECT_DOMAIN_NAME': 'Default',
|
||||
'OS_AUTH_URL': 'http://no.where/v3'}
|
||||
@ -72,9 +72,9 @@ class ParserTest(utils.TestCase):
|
||||
class ShellTest(utils.TestCase):
|
||||
AUTH_URL = utils.FAKE_ENV['OS_AUTH_URL']
|
||||
|
||||
_msg_no_tenant_project = ("You must provide a tenant name or tenant id"
|
||||
" via --os-tenant-name, --os-tenant-id,"
|
||||
" env[OS_TENANT_NAME] or env[OS_TENANT_ID]")
|
||||
_msg_no_tenant_project = ("You must provide a project name or project id"
|
||||
" via --os-project-name, --os-project-id,"
|
||||
" env[OS_PROJECT_NAME] or env[OS_PROJECT_ID]")
|
||||
|
||||
def setUp(self):
|
||||
super(ShellTest, self).setUp()
|
||||
@ -149,9 +149,9 @@ class ShellTest(utils.TestCase):
|
||||
else:
|
||||
self.fail('CommandError not raised')
|
||||
|
||||
def test_no_tenant_name(self):
|
||||
def test_no_project_name(self):
|
||||
required = self._msg_no_tenant_project
|
||||
self.make_env(exclude='OS_TENANT_NAME')
|
||||
self.make_env(exclude='OS_PROJECT_NAME')
|
||||
try:
|
||||
self.shell('bay-list')
|
||||
except exceptions.CommandError as message:
|
||||
@ -159,9 +159,9 @@ class ShellTest(utils.TestCase):
|
||||
else:
|
||||
self.fail('CommandError not raised')
|
||||
|
||||
def test_no_tenant_id(self):
|
||||
def test_no_project_id(self):
|
||||
required = self._msg_no_tenant_project
|
||||
self.make_env(exclude='OS_TENANT_ID', fake_env=FAKE_ENV3)
|
||||
self.make_env(exclude='OS_PROJECT_ID', fake_env=FAKE_ENV3)
|
||||
try:
|
||||
self.shell('bay-list')
|
||||
except exceptions.CommandError as message:
|
||||
@ -234,7 +234,7 @@ class ShellTest(utils.TestCase):
|
||||
mock_client.assert_called_once_with(
|
||||
username='username', api_key='password',
|
||||
endpoint_type='publicURL', project_id='',
|
||||
project_name='tenant_name', auth_url=self.AUTH_URL,
|
||||
project_name='project_name', auth_url=self.AUTH_URL,
|
||||
service_type='container-infra', region_name=expected_region_name,
|
||||
project_domain_id='', project_domain_name='',
|
||||
user_domain_id='', user_domain_name='',
|
||||
@ -261,7 +261,7 @@ class ShellTest(utils.TestCase):
|
||||
mock_client.assert_called_once_with(
|
||||
username='username', api_key='password',
|
||||
endpoint_type='publicURL', project_id='',
|
||||
project_name='tenant_name', auth_url=self.AUTH_URL,
|
||||
project_name='project_name', auth_url=self.AUTH_URL,
|
||||
service_type='container-infra', region_name=None,
|
||||
project_domain_id='', project_domain_name='',
|
||||
user_domain_id='', user_domain_name='',
|
||||
@ -274,7 +274,7 @@ class ShellTest(utils.TestCase):
|
||||
mock_client.assert_called_once_with(
|
||||
username='username', api_key='password',
|
||||
endpoint_type='internalURL', project_id='',
|
||||
project_name='tenant_name', auth_url=self.AUTH_URL,
|
||||
project_name='project_name', auth_url=self.AUTH_URL,
|
||||
service_type='container-infra', region_name=None,
|
||||
project_domain_id='', project_domain_name='',
|
||||
user_domain_id='', user_domain_name='',
|
||||
@ -303,7 +303,7 @@ class ShellTestKeystoneV3(ShellTest):
|
||||
self.shell('--endpoint-type publicURL bay-list')
|
||||
mock_client.assert_called_once_with(
|
||||
username='username', api_key='password',
|
||||
endpoint_type='publicURL', project_id='tenant_id',
|
||||
endpoint_type='publicURL', project_id='project_id',
|
||||
project_name='', auth_url=self.AUTH_URL,
|
||||
service_type='container-infra', region_name=None,
|
||||
project_domain_id='', project_domain_name='Default',
|
||||
|
@ -27,7 +27,7 @@ from magnumclient import shell
|
||||
|
||||
FAKE_ENV = {'OS_USERNAME': 'username',
|
||||
'OS_PASSWORD': 'password',
|
||||
'OS_TENANT_NAME': 'tenant_name',
|
||||
'OS_PROJECT_NAME': 'project_name',
|
||||
'OS_AUTH_URL': 'http://no.where/v2.0'}
|
||||
|
||||
|
||||
|
@ -21,7 +21,7 @@ from magnumclient.tests import utils
|
||||
|
||||
FAKE_ENV = {'OS_USERNAME': 'username',
|
||||
'OS_PASSWORD': 'password',
|
||||
'OS_TENANT_NAME': 'tenant_name',
|
||||
'OS_PROJECT_NAME': 'project_name',
|
||||
'OS_AUTH_URL': 'http://no.where/v2.0',
|
||||
'BYPASS_URL': 'http://magnum'}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user