summaryrefslogtreecommitdiff
path: root/troveclient
diff options
context:
space:
mode:
Diffstat (limited to 'troveclient')
-rw-r--r--troveclient/client.py7
-rw-r--r--troveclient/shell.py15
-rw-r--r--troveclient/v1/client.py5
3 files changed, 21 insertions, 6 deletions
diff --git a/troveclient/client.py b/troveclient/client.py
index af9362e..19bc1ef 100644
--- a/troveclient/client.py
+++ b/troveclient/client.py
@@ -63,7 +63,7 @@ class HTTPClient(object):
proxy_token=None, region_name=None,
endpoint_type='publicURL', service_type=None,
service_name=None, database_service_name=None, retries=None,
- http_log_debug=False, cacert=None):
+ http_log_debug=False, cacert=None, bypass_url=None):
self.user = user
self.password = password
self.projectid = projectid
@@ -83,6 +83,7 @@ class HTTPClient(object):
self.proxy_token = proxy_token
self.proxy_tenant_id = proxy_tenant_id
self.timeout = timeout
+ self.bypass_url = bypass_url
if insecure:
self.verify_cert = False
@@ -325,6 +326,10 @@ class HTTPClient(object):
auth_url = auth_url + '/v2.0'
self._v2_auth(auth_url)
+ # Allows for setting an endpoint not defined in the catalog
+ if self.bypass_url is not None and self.bypass_url != '':
+ self.management_url = self.bypass_url
+
def _v1_auth(self, url):
if self.proxy_token:
raise exceptions.NoTokenLookupException()
diff --git a/troveclient/shell.py b/troveclient/shell.py
index adca730..b6987b6 100644
--- a/troveclient/shell.py
+++ b/troveclient/shell.py
@@ -161,6 +161,13 @@ class OpenStackTroveShell(object):
parser.add_argument('--service_name',
help=argparse.SUPPRESS)
+ parser.add_argument('--bypass-url',
+ metavar='<bypass-url>',
+ default=utils.env('TROVE_BYPASS_URL'),
+ help='Defaults to env[TROVE_BYPASS_URL]')
+ parser.add_argument('--bypass_url',
+ help=argparse.SUPPRESS)
+
parser.add_argument('--database-service-name',
metavar='<database-service-name>',
default=utils.env('TROVE_DATABASE_SERVICE_NAME'),
@@ -370,7 +377,8 @@ class OpenStackTroveShell(object):
(os_username, os_password, os_tenant_name, os_auth_url,
os_region_name, os_tenant_id, endpoint_type, insecure,
service_type, service_name, database_service_name,
- username, apikey, projectid, url, region_name, cacert) = (
+ username, apikey, projectid, url, region_name,
+ cacert, bypass_url) = (
args.os_username, args.os_password,
args.os_tenant_name, args.os_auth_url,
args.os_region_name, args.os_tenant_id,
@@ -378,7 +386,7 @@ class OpenStackTroveShell(object):
args.service_type, args.service_name,
args.database_service_name, args.username,
args.apikey, args.projectid,
- args.url, args.region_name, args.os_cacert)
+ args.url, args.region_name, args.os_cacert, args.bypass_url)
if not endpoint_type:
endpoint_type = DEFAULT_TROVE_ENDPOINT_TYPE
@@ -447,7 +455,8 @@ class OpenStackTroveShell(object):
database_service_name=database_service_name,
retries=options.retries,
http_log_debug=args.debug,
- cacert=cacert)
+ cacert=cacert,
+ bypass_url=bypass_url)
try:
if not utils.isunauthenticated(args.func):
diff --git a/troveclient/v1/client.py b/troveclient/v1/client.py
index d48f714..7431054 100644
--- a/troveclient/v1/client.py
+++ b/troveclient/v1/client.py
@@ -58,7 +58,7 @@ class Client(object):
service_type='database', service_name=None,
database_service_name=None, retries=None,
http_log_debug=False,
- cacert=None):
+ cacert=None, bypass_url=None):
# self.limits = limits.LimitsManager(self)
# extensions
@@ -105,7 +105,8 @@ class Client(object):
database_service_name=database_service_name,
retries=retries,
http_log_debug=http_log_debug,
- cacert=cacert)
+ cacert=cacert,
+ bypass_url=bypass_url)
def authenticate(self):
"""