Support --os-auth-token.
Fixed bug #1130286. Change-Id: Ia0a8884f2738c31c3d91d6679622ebd3ec9b86b5
This commit is contained in:
@@ -256,38 +256,44 @@ class CeilometerShell(object):
|
||||
self.do_help(args)
|
||||
return 0
|
||||
|
||||
if not args.os_username:
|
||||
raise exc.CommandError("You must provide a username via"
|
||||
" either --os-username or env[OS_USERNAME]")
|
||||
if args.os_auth_token and args.ceilometer_url:
|
||||
token = args.os_auth_token
|
||||
endpoint = args.ceilometer_url
|
||||
else:
|
||||
if not args.os_username:
|
||||
raise exc.CommandError("You must provide a username via "
|
||||
"either --os-username or via "
|
||||
"env[OS_USERNAME]")
|
||||
|
||||
if not args.os_password:
|
||||
raise exc.CommandError("You must provide a password via"
|
||||
" either --os-password or env[OS_PASSWORD]")
|
||||
if not args.os_password:
|
||||
raise exc.CommandError("You must provide a password via "
|
||||
"either --os-password or via "
|
||||
"env[OS_PASSWORD]")
|
||||
|
||||
if not (args.os_tenant_id or args.os_tenant_name):
|
||||
raise exc.CommandError("You must provide a tenant_id via"
|
||||
" either --os-tenant-id or via "
|
||||
"env[OS_TENANT_ID]")
|
||||
if not (args.os_tenant_id or args.os_tenant_name):
|
||||
raise exc.CommandError("You must provide a tenant_id via "
|
||||
"either --os-tenant-id or via "
|
||||
"env[OS_TENANT_ID]")
|
||||
|
||||
if not args.os_auth_url:
|
||||
raise exc.CommandError("You must provide an auth url via"
|
||||
" either --os-auth-url or via "
|
||||
"env[OS_AUTH_URL]")
|
||||
kwargs = {
|
||||
'username': args.os_username,
|
||||
'password': args.os_password,
|
||||
'tenant_id': args.os_tenant_id,
|
||||
'tenant_name': args.os_tenant_name,
|
||||
'auth_url': args.os_auth_url,
|
||||
'service_type': args.os_service_type,
|
||||
'endpoint_type': args.os_endpoint_type,
|
||||
'insecure': args.insecure
|
||||
}
|
||||
_ksclient = self._get_ksclient(**kwargs)
|
||||
token = args.os_auth_token or _ksclient.auth_token
|
||||
if not args.os_auth_url:
|
||||
raise exc.CommandError("You must provide an auth url via "
|
||||
"either --os-auth-url or via "
|
||||
"env[OS_AUTH_URL]")
|
||||
kwargs = {
|
||||
'username': args.os_username,
|
||||
'password': args.os_password,
|
||||
'tenant_id': args.os_tenant_id,
|
||||
'tenant_name': args.os_tenant_name,
|
||||
'auth_url': args.os_auth_url,
|
||||
'service_type': args.os_service_type,
|
||||
'endpoint_type': args.os_endpoint_type,
|
||||
'insecure': args.insecure
|
||||
}
|
||||
_ksclient = self._get_ksclient(**kwargs)
|
||||
token = args.os_auth_token or _ksclient.auth_token
|
||||
|
||||
endpoint = args.ceilometer_url or \
|
||||
self._get_endpoint(_ksclient, **kwargs)
|
||||
endpoint = args.ceilometer_url or \
|
||||
self._get_endpoint(_ksclient, **kwargs)
|
||||
|
||||
kwargs = {
|
||||
'token': token,
|
||||
|
||||
@@ -105,3 +105,18 @@ class ShellTest(unittest2.TestCase):
|
||||
help_text = self.shell(argstr)
|
||||
for r in required:
|
||||
self.assertRegexpMatches(help_text, r)
|
||||
|
||||
def test_auth_param(self):
|
||||
class TokenContext(object):
|
||||
def __enter__(self):
|
||||
fake_env = {
|
||||
'OS_AUTH_TOKEN': 'token',
|
||||
'CEILOMETER_URL': 'http://no.where'
|
||||
}
|
||||
self.old_env, os.environ = os.environ, fake_env.copy()
|
||||
|
||||
def __exit__(self, exc_type, exc_value, traceback):
|
||||
os.environ = self.old_env
|
||||
|
||||
with TokenContext():
|
||||
self.test_help()
|
||||
|
||||
Reference in New Issue
Block a user