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:
Feng Shengqin 2016-11-25 02:01:18 +08:00
parent b1d98b618d
commit ae04a77b87
4 changed files with 42 additions and 34 deletions

View File

@ -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,

View File

@ -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',

View File

@ -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'}

View File

@ -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'}