From 6c1eec67d2e7def7561bde906df9a50006a86b10 Mon Sep 17 00:00:00 2001 From: Itsuro Oda Date: Tue, 12 Aug 2014 09:10:25 +0900 Subject: [PATCH] Add endpoint_type parameter to MetaInterfaceDriver Previously MetaInterfaceDriver communicates with neutron-server via 'publicURL' because it uses python-neutronclient without endpoint_type and 'publicURL' is the default. It causes error when a user intends to use internal or admin URL for communication between MetaInterfaceDriver and neutron-server. Change-Id: Id321d5a16a08a4bda618f98bb1eb7cb1b0b9eb08 Closes-bug: #1354285 --- neutron/agent/linux/interface.py | 13 +++++++++++-- neutron/tests/unit/test_linux_interface.py | 1 + 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/neutron/agent/linux/interface.py b/neutron/agent/linux/interface.py index c6677c114..77b8365c4 100644 --- a/neutron/agent/linux/interface.py +++ b/neutron/agent/linux/interface.py @@ -41,7 +41,11 @@ OPTS = [ cfg.IntOpt('network_device_mtu', help=_('MTU setting for device.')), cfg.StrOpt('meta_flavor_driver_mappings', - help=_('Mapping between flavor and LinuxInterfaceDriver')), + help=_('Mapping between flavor and LinuxInterfaceDriver. ' + 'It is specific to MetaInterfaceDriver used with ' + 'admin_user, admin_password, admin_tenant_name, ' + 'admin_url, auth_strategy, auth_region and ' + 'endpoint_type.')), cfg.StrOpt('admin_user', help=_("Admin username")), cfg.StrOpt('admin_password', @@ -55,6 +59,10 @@ OPTS = [ help=_("The type of authentication to use")), cfg.StrOpt('auth_region', help=_("Authentication region")), + cfg.StrOpt('endpoint_type', + default='publicURL', + help=_("Network service endpoint type to pull from " + "the keystone catalog")), ] @@ -399,7 +407,8 @@ class MetaInterfaceDriver(LinuxInterfaceDriver): tenant_name=self.conf.admin_tenant_name, auth_url=self.conf.auth_url, auth_strategy=self.conf.auth_strategy, - region_name=self.conf.auth_region + region_name=self.conf.auth_region, + endpoint_type=self.conf.endpoint_type ) self.flavor_driver_map = {} for net_flavor, driver_name in [ diff --git a/neutron/tests/unit/test_linux_interface.py b/neutron/tests/unit/test_linux_interface.py index 809216e6a..568527880 100644 --- a/neutron/tests/unit/test_linux_interface.py +++ b/neutron/tests/unit/test_linux_interface.py @@ -449,6 +449,7 @@ class TestMetaInterfaceDriver(TestBase): 'meta_flavor_driver_mappings', 'fake1:neutron.agent.linux.interface.OVSInterfaceDriver,' 'fake2:neutron.agent.linux.interface.BridgeInterfaceDriver') + self.conf.set_override('endpoint_type', 'internalURL') def test_get_driver_by_network_id(self): meta_interface = interface.MetaInterfaceDriver(self.conf)