added --endpoint_name support

This commit is contained in:
Sandy Walsh 2011-11-08 10:27:41 -08:00
parent f513bdccc5
commit 13b7edfc42
4 changed files with 25 additions and 10 deletions

@ -38,7 +38,8 @@ class HTTPClient(httplib2.Http):
USER_AGENT = 'python-novaclient'
def __init__(self, user, apikey, projectid, auth_url, insecure=False,
timeout=None, token=None, region_name=None):
timeout=None, token=None, region_name=None,
endpoint_name='publicURL'):
super(HTTPClient, self).__init__(timeout=timeout)
self.user = user
self.apikey = apikey
@ -46,6 +47,7 @@ class HTTPClient(httplib2.Http):
self.auth_url = auth_url
self.version = 'v1.0'
self.region_name = region_name
self.endpoint_name = endpoint_name
self.management_url = None
self.auth_token = None
@ -155,7 +157,8 @@ class HTTPClient(httplib2.Http):
self.auth_token = self.service_catalog.get_token()
self.management_url = self.service_catalog.url_for(
attr='region',
filter_value=self.region_name)
filter_value=self.region_name,
endpoint_type=self.endpoint_name)
return None
except KeyError:
raise exceptions.AuthorizationFailure()

@ -78,6 +78,10 @@ class OpenStackComputeShell(object):
default=env('NOVA_REGION_NAME'),
help='Defaults to env[NOVA_REGION_NAME].')
parser.add_argument('--endpoint_name',
default=env('NOVA_ENDPOINT_NAME'),
help='Defaults to env[NOVA_ENDPOINT_NAME] or "publicURL.')
parser.add_argument('--version',
default=env('NOVA_VERSION'),
help='Accepts 1.0 or 1.1, defaults to env[NOVA_VERSION].')
@ -153,9 +157,12 @@ class OpenStackComputeShell(object):
self.do_help(args)
return 0
user, apikey, projectid, url, region_name, insecure = \
user, apikey, projectid, url, region_name, endpoint_name, insecure = \
args.username, args.apikey, args.projectid, args.url, \
args.region_name, args.insecure
args.region_name, args.endpoint_name, args.insecure
if not endpoint_name:
endpoint_name = 'publicURL'
#FIXME(usrleon): Here should be restrict for project id same as
# for username or apikey but for compatibility it is not.
@ -180,7 +187,8 @@ class OpenStackComputeShell(object):
"env[NOVA_URL")
self.cs = self.get_api_class(options.version)(user, apikey, projectid,
url, insecure, region_name=region_name)
url, insecure, region_name=region_name,
endpoint_name=endpoint_name)
try:
self.cs.authenticate()

@ -26,7 +26,8 @@ class Client(object):
"""
def __init__(self, username, api_key, project_id, auth_url=None,
insecure=False, timeout=None, token=None, region_name=None):
insecure=False, timeout=None, token=None, region_name=None,
endpoint_name='publicURL'):
self.accounts = accounts.AccountManager(self)
self.backup_schedules = backup_schedules.BackupScheduleManager(self)
@ -45,7 +46,8 @@ class Client(object):
insecure=insecure,
timeout=timeout,
token=token,
region_name=region_name)
region_name=region_name,
endpoint_name=endpoint_name)
def authenticate(self):
"""

@ -28,9 +28,10 @@ class Client(object):
"""
# FIXME(jesse): project_id isn't required to autenticate
# FIXME(jesse): project_id isn't required to authenticate
def __init__(self, username, api_key, project_id, auth_url,
insecure=False, timeout=None, token=None, region_name=None):
insecure=False, timeout=None, token=None, region_name=None,
endpoint_name='publicURL'):
self.flavors = flavors.FlavorManager(self)
self.floating_ips = floating_ips.FloatingIPManager(self)
self.images = images.ImageManager(self)
@ -52,7 +53,8 @@ class Client(object):
insecure=insecure,
timeout=timeout,
token=token,
region_name=region_name)
region_name=region_name,
endpoint_name=endpoint_name)
def authenticate(self):
"""