Compatibility issue with environment variable
zun client is asking for os-tenant-name environment variable. Whereas other projects work with os-project-name. Change-Id: If55743258cc9a3516d43953fb4d460e24a1c8732 Closes-Bug: #1644130
This commit is contained in:
parent
b1d98b618d
commit
ae04a77b87
@ -271,10 +271,17 @@ class OpenStackZunShell(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-project-id',
|
||||
metavar='<auth-project-id>',
|
||||
default=cliutils.env('OS_PROJECT_ID',
|
||||
default=None),
|
||||
help='Defaults to env[OS_PROJECT_ID].')
|
||||
|
||||
parser.add_argument('--os-project-name',
|
||||
metavar='<auth-project-name>',
|
||||
default=cliutils.env('OS_PROJECT_NAME',
|
||||
default=None),
|
||||
help='Defaults to env[OS_PROJECT_NAME].')
|
||||
|
||||
parser.add_argument('--os-user-domain-id',
|
||||
metavar='<auth-user-domain-id>',
|
||||
@ -404,6 +411,7 @@ class OpenStackZunShell(object):
|
||||
action='help',
|
||||
help=argparse.SUPPRESS,)
|
||||
self.subcommands[command] = subparser
|
||||
|
||||
for (args, kwargs) in arguments:
|
||||
subparser.add_argument(*args, **kwargs)
|
||||
subparser.set_defaults(func=callback)
|
||||
@ -459,12 +467,12 @@ class OpenStackZunShell(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_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_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,
|
||||
@ -499,11 +507,11 @@ class OpenStackZunShell(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 +560,8 @@ class OpenStackZunShell(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 zunclient.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()
|
||||
@ -152,9 +152,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('service-list')
|
||||
except exceptions.CommandError as message:
|
||||
@ -162,9 +162,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('service-list')
|
||||
except exceptions.CommandError as message:
|
||||
@ -243,8 +243,8 @@ class ShellTest(utils.TestCase):
|
||||
self.shell(command)
|
||||
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,
|
||||
endpoint_type='publicURL', project_id=None,
|
||||
project_name='project_name', auth_url=self.AUTH_URL,
|
||||
service_type='container', region_name=expected_region_name,
|
||||
project_domain_id='', project_domain_name='',
|
||||
user_domain_id='', user_domain_name='',
|
||||
@ -270,8 +270,8 @@ class ShellTest(utils.TestCase):
|
||||
self.shell('--endpoint-type publicURL service-list')
|
||||
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,
|
||||
endpoint_type='publicURL', project_id=None,
|
||||
project_name='project_name', auth_url=self.AUTH_URL,
|
||||
service_type='container', region_name=None,
|
||||
project_domain_id='', project_domain_name='',
|
||||
user_domain_id='', user_domain_name='',
|
||||
@ -283,8 +283,8 @@ class ShellTest(utils.TestCase):
|
||||
self.shell('--endpoint-type internalURL service-list')
|
||||
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,
|
||||
endpoint_type='internalURL', project_id=None,
|
||||
project_name='project_name', auth_url=self.AUTH_URL,
|
||||
service_type='container', region_name=None,
|
||||
project_domain_id='', project_domain_name='',
|
||||
user_domain_id='', user_domain_name='',
|
||||
@ -313,8 +313,8 @@ class ShellTestKeystoneV3(ShellTest):
|
||||
self.shell('--endpoint-type publicURL service-list')
|
||||
mock_client.assert_called_once_with(
|
||||
username='username', api_key='password',
|
||||
endpoint_type='publicURL', project_id='tenant_id',
|
||||
project_name='', auth_url=self.AUTH_URL,
|
||||
endpoint_type='publicURL', project_id='project_id',
|
||||
project_name=None, auth_url=self.AUTH_URL,
|
||||
service_type='container', region_name=None,
|
||||
project_domain_id='', project_domain_name='Default',
|
||||
user_domain_id='', user_domain_name='Default',
|
||||
|
@ -27,7 +27,7 @@ from zunclient 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 zunclient.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://zun'}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user