From b305beacd485a3954b2c7838a0f460a177711642 Mon Sep 17 00:00:00 2001 From: Adam Gandelman Date: Wed, 20 Apr 2016 11:50:23 -0700 Subject: [PATCH] Allow specification of endpoint_type to clients We currently do not allow operators to specify which endpoint type needs to be used to reach nova and neutron via their clients. This adds a new option that defaults to publicURL (as it is today) but allows operators to specify internalURL or adminURL if they need. Change-Id: I9432b4df8a5b4fc9f0cc06e6ffb662df634ec4f8 Closes-bug: #1572693 --- astara/api/__init__.py | 1 + astara/api/neutron.py | 1 + astara/api/nova.py | 3 ++- astara/test/unit/api/test_nova_wrapper.py | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/astara/api/__init__.py b/astara/api/__init__.py index ef982386..8e0c6cee 100644 --- a/astara/api/__init__.py +++ b/astara/api/__init__.py @@ -28,5 +28,6 @@ api_opts = [ cfg.StrOpt('auth_region'), cfg.IntOpt('max_retries', default=3), cfg.IntOpt('retry_delay', default=1), + cfg.StrOpt('endpoint_type', default='publicURL'), ] CONF.register_opts(api_opts) diff --git a/astara/api/neutron.py b/astara/api/neutron.py index 9ca278eb..39bf39b8 100644 --- a/astara/api/neutron.py +++ b/astara/api/neutron.py @@ -791,6 +791,7 @@ class Neutron(object): ks_session = keystone.KeystoneSession() self.api_client = AstaraExtClientWrapper( session=ks_session.session, + endpoint_type=cfg.CONF.endpoint_type, ) self.l3_rpc_client = L3PluginApi(PLUGIN_ROUTER_RPC_TOPIC, cfg.CONF.host) diff --git a/astara/api/nova.py b/astara/api/nova.py index 258fbe83..b035f193 100644 --- a/astara/api/nova.py +++ b/astara/api/nova.py @@ -249,7 +249,8 @@ class Nova(object): self.client = client.Client( version='2', session=ks_session.session, - region_name=conf.auth_region) + region_name=conf.auth_region, + endpoint_type=conf.endpoint_type) try: self.instance_provider = get_instance_provider( diff --git a/astara/test/unit/api/test_nova_wrapper.py b/astara/test/unit/api/test_nova_wrapper.py index 782a420d..2646b620 100644 --- a/astara/test/unit/api/test_nova_wrapper.py +++ b/astara/test/unit/api/test_nova_wrapper.py @@ -84,6 +84,7 @@ class FakeConf: router_image_uuid = 'astara-image' router_instance_flavor = 1 instance_provider = 'foo' + endpoint_type = 'publicURL' EXPECTED_USERDATA = """