Merge "Allow CLI opts to override auth token and endpoint"

This commit is contained in:
Jenkins
2012-08-03 00:29:25 +00:00
committed by Gerrit Code Review

View File

@@ -271,7 +271,7 @@ class OpenStackImagesShell(object):
endpoint = '/'.join(url_bits[:-1]) endpoint = '/'.join(url_bits[:-1])
return endpoint return endpoint
def _authenticate(self, **kwargs): def _get_ksclient(self, **kwargs):
"""Get an endpoint and auth token from Keystone. """Get an endpoint and auth token from Keystone.
:param username: name of user :param username: name of user
@@ -280,19 +280,19 @@ class OpenStackImagesShell(object):
:param tenant_name: name of tenant :param tenant_name: name of tenant
:param auth_url: endpoint to authenticate against :param auth_url: endpoint to authenticate against
""" """
_ksclient = ksclient.Client(username=kwargs.get('username'), return ksclient.Client(username=kwargs.get('username'),
password=kwargs.get('password'), password=kwargs.get('password'),
tenant_id=kwargs.get('tenant_id'), tenant_id=kwargs.get('tenant_id'),
tenant_name=kwargs.get('tenant_name'), tenant_name=kwargs.get('tenant_name'),
auth_url=kwargs.get('auth_url'), auth_url=kwargs.get('auth_url'),
insecure=kwargs.get('insecure')) insecure=kwargs.get('insecure'))
service_type = kwargs.get('service_type') or 'image'
endpoint_type = kwargs.get('endpoint_type') or 'publicURL' def _get_endpoint(self, client, **kwargs):
endpoint = _ksclient.service_catalog.url_for( """Get an endpoint using the provided keystone client."""
service_type=service_type, endpoint = client.service_catalog.url_for(
endpoint_type=endpoint_type) service_type=kwargs.get('service_type') or 'image',
endpoint = self._strip_version(endpoint) endpoint_type=kwargs.get('endpoint_type') or 'publicURL')
return (endpoint, _ksclient.auth_token) return self._strip_version(endpoint)
def _get_image_url(self, args): def _get_image_url(self, args):
"""Translate the available url-related options into a single string. """Translate the available url-related options into a single string.
@@ -369,7 +369,11 @@ class OpenStackImagesShell(object):
'endpoint_type': args.os_endpoint_type, 'endpoint_type': args.os_endpoint_type,
'insecure': args.insecure 'insecure': args.insecure
} }
endpoint, token = self._authenticate(**kwargs) _ksclient = self._get_ksclient(**kwargs)
token = args.os_auth_token or _ksclient.auth_token
endpoint = args.os_image_url or \
self._get_endpoint(_ksclient, **kwargs)
client = glanceclient.Client(api_version, client = glanceclient.Client(api_version,
endpoint, endpoint,