diff --git a/neutron/plugins/ml2/drivers/README.fslsdn b/neutron/plugins/ml2/drivers/freescale/README.fslsdn similarity index 100% rename from neutron/plugins/ml2/drivers/README.fslsdn rename to neutron/plugins/ml2/drivers/freescale/README.fslsdn diff --git a/neutron/plugins/ml2/drivers/freescale/__init__.py b/neutron/plugins/ml2/drivers/freescale/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/neutron/plugins/ml2/drivers/freescale/config.py b/neutron/plugins/ml2/drivers/freescale/config.py new file mode 100644 index 00000000000..7739dc1ab9d --- /dev/null +++ b/neutron/plugins/ml2/drivers/freescale/config.py @@ -0,0 +1,85 @@ +# Copyright (c) 2014 Freescale Semiconductor +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from neutronclient.v2_0 import client +from oslo.config import cfg + +""" Freescale CRD Server Configuration used by ML2 Mechanism Driver. + +The following configuration is used by Freescale Drivers/Plugin +like, FWaaS Plugin, VPNaaS Plugin etc.. which connect to Cloud Resource +Discovery Service (CRD). +""" + +# CRD service options required for FSL SDN OS Mech Driver +ml2_fslsdn_opts = [ + cfg.StrOpt('crd_user_name', default='crd', + help=_("CRD service Username.")), + cfg.StrOpt('crd_password', default='password', + secret=True, + help=_("CRD Service Password.")), + cfg.StrOpt('crd_tenant_name', default='service', + help=_("CRD Tenant Name.")), + cfg.StrOpt('crd_auth_url', + default='http://127.0.0.1:5000/v2.0/', + help=_("CRD Auth URL.")), + cfg.StrOpt('crd_url', + default='http://127.0.0.1:9797', + help=_("URL for connecting to CRD service.")), + cfg.IntOpt('crd_url_timeout', + default=30, + help=_("Timeout value for connecting to " + "CRD service in seconds.")), + cfg.StrOpt('crd_region_name', + default='RegionOne', + help=_("Region name for connecting to " + "CRD Service in admin context.")), + cfg.BoolOpt('crd_api_insecure', + default=False, + help=_("If set, ignore any SSL validation issues.")), + cfg.StrOpt('crd_auth_strategy', + default='keystone', + help=_("Auth strategy for connecting to " + "neutron in admin context.")), + cfg.StrOpt('crd_ca_certificates_file', + help=_("Location of ca certificates file to use for " + "CRD client requests.")), +] + +# Register the configuration option for crd service +cfg.CONF.register_opts(ml2_fslsdn_opts, "ml2_fslsdn") + +# shortcut +FSLCONF = cfg.CONF.ml2_fslsdn + +SERVICE_TYPE = 'crd' + + +def get_crdclient(): + """ Using the CRD configuration, get and return CRD Client instance.""" + crd_client_params = { + 'username': FSLCONF.crd_user_name, + 'tenant_name': FSLCONF.crd_tenant_name, + 'region_name': FSLCONF.crd_region_name, + 'password': FSLCONF.crd_password, + 'auth_url': FSLCONF.crd_auth_url, + 'auth_strategy': FSLCONF.crd_auth_strategy, + 'endpoint_url': FSLCONF.crd_url, + 'timeout': FSLCONF.crd_url_timeout, + 'insecure': FSLCONF.crd_api_insecure, + 'service_type': SERVICE_TYPE, + 'ca_cert': FSLCONF.crd_ca_certificates_file, + } + return client.Client(**crd_client_params) diff --git a/neutron/plugins/ml2/drivers/mechanism_fslsdn.py b/neutron/plugins/ml2/drivers/freescale/mechanism_fslsdn.py similarity index 78% rename from neutron/plugins/ml2/drivers/mechanism_fslsdn.py rename to neutron/plugins/ml2/drivers/freescale/mechanism_fslsdn.py index 381ea955114..282965c8c8f 100755 --- a/neutron/plugins/ml2/drivers/mechanism_fslsdn.py +++ b/neutron/plugins/ml2/drivers/freescale/mechanism_fslsdn.py @@ -13,63 +13,17 @@ # See the License for the specific language governing permissions and # limitations under the License. -from neutronclient.v2_0 import client -from oslo.config import cfg - from neutron.common import constants as n_const from neutron.common import log from neutron.extensions import portbindings from neutron.openstack.common import log as logging from neutron.plugins.common import constants from neutron.plugins.ml2 import driver_api as api +from neutron.plugins.ml2.drivers.freescale import config # noqa LOG = logging.getLogger(__name__) -# CRD service options required for FSL SDN OS Mech Driver -ml2_fslsdn_opts = [ - cfg.StrOpt('crd_user_name', default='crd', - help=_("CRD service Username")), - cfg.StrOpt('crd_password', default='password', - secret='True', - help=_("CRD Service Password")), - cfg.StrOpt('crd_tenant_name', default='service', - help=_("CRD Tenant Name")), - cfg.StrOpt('crd_auth_url', - default='http://127.0.0.1:5000/v2.0/', - help=_("CRD Auth URL")), - cfg.StrOpt('crd_url', - default='http://127.0.0.1:9797', - help=_("URL for connecting to CRD service")), - cfg.IntOpt('crd_url_timeout', - default=30, - help=_("Timeout value for connecting to " - "CRD service in seconds")), - cfg.StrOpt('crd_region_name', - default='RegionOne', - help=_("Region name for connecting to " - "CRD Service in admin context")), - cfg.BoolOpt('crd_api_insecure', - default=False, - help=_("If set, ignore any SSL validation issues")), - cfg.StrOpt('crd_auth_strategy', - default='keystone', - help=_("Auth strategy for connecting to " - "neutron in admin context")), - cfg.StrOpt('crd_ca_certificates_file', - help=_("Location of ca certificates file to use for " - "CRD client requests.")), -] - -# Register the configuration option for crd service -# required for FSL SDN OS Mechanism driver -cfg.CONF.register_opts(ml2_fslsdn_opts, "ml2_fslsdn") - -# shortcut -FSLCONF = cfg.CONF.ml2_fslsdn - -SERVICE_TYPE = 'crd' - class FslsdnMechanismDriver(api.MechanismDriver): @@ -82,20 +36,7 @@ class FslsdnMechanismDriver(api.MechanismDriver): self.vif_type = portbindings.VIF_TYPE_OVS self.vif_details = {portbindings.CAP_PORT_FILTER: True} LOG.info(_("Initializing CRD client... ")) - crd_client_params = { - 'username': FSLCONF.crd_user_name, - 'tenant_name': FSLCONF.crd_tenant_name, - 'region_name': FSLCONF.crd_region_name, - 'password': FSLCONF.crd_password, - 'auth_url': FSLCONF.crd_auth_url, - 'auth_strategy': FSLCONF.crd_auth_strategy, - 'endpoint_url': FSLCONF.crd_url, - 'timeout': FSLCONF.crd_url_timeout, - 'insecure': FSLCONF.crd_api_insecure, - 'service_type': SERVICE_TYPE, - 'ca_cert': FSLCONF.crd_ca_certificates_file, - } - self._crdclient = client.Client(**crd_client_params) + self._crdclient = config.get_crdclient() # Network Management @staticmethod diff --git a/neutron/tests/unit/ml2/drivers/freescale/__init__.py b/neutron/tests/unit/ml2/drivers/freescale/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/neutron/tests/unit/ml2/test_mechanism_fslsdn.py b/neutron/tests/unit/ml2/drivers/freescale/test_mechanism_fslsdn.py similarity index 92% rename from neutron/tests/unit/ml2/test_mechanism_fslsdn.py rename to neutron/tests/unit/ml2/drivers/freescale/test_mechanism_fslsdn.py index 244f7e0299c..c5c10737509 100644 --- a/neutron/tests/unit/ml2/test_mechanism_fslsdn.py +++ b/neutron/tests/unit/ml2/drivers/freescale/test_mechanism_fslsdn.py @@ -17,7 +17,7 @@ import mock from oslo.config import cfg from neutron.extensions import portbindings -from neutron.plugins.ml2.drivers import mechanism_fslsdn +from neutron.plugins.ml2.drivers.freescale import mechanism_fslsdn from neutron.tests import base from neutron.tests.unit import test_db_plugin @@ -25,32 +25,16 @@ from neutron.tests.unit import test_db_plugin """Unit testing for Freescale SDN mechanism driver.""" -def setup_driver_config(): - """Mechanism Driver specific configuration.""" - - # Configure mechanism driver as 'fslsdn' - cfg.CONF.set_override('mechanism_drivers', ['fslsdn'], 'ml2') - # Configure FSL SDN Mechanism driver specific options - cfg.CONF.set_override('crd_user_name', 'crd', 'ml2_fslsdn') - cfg.CONF.set_override('crd_password', 'CRD_PASS', 'ml2_fslsdn') - cfg.CONF.set_override('crd_tenant_name', 'service', 'ml2_fslsdn') - cfg.CONF.set_override('crd_auth_url', - 'http://127.0.0.1:5000/v2.0', 'ml2_fslsdn') - cfg.CONF.set_override('crd_url', - 'http://127.0.0.1:9797', 'ml2_fslsdn') - cfg.CONF.set_override('crd_auth_strategy', 'keystone', 'ml2_fslsdn') - - class TestFslSdnMechDriverV2(test_db_plugin.NeutronDbPluginV2TestCase): """Testing mechanism driver with ML2 plugin.""" def setUp(self): - setup_driver_config() + cfg.CONF.set_override('mechanism_drivers', ['fslsdn'], 'ml2') def mocked_fslsdn_init(self): # Mock CRD client, since it requires CRD service running. - self._crdclieint = mock.Mock() + self._crdclient = mock.Mock() with mock.patch.object(mechanism_fslsdn.FslsdnMechanismDriver, 'initialize', new=mocked_fslsdn_init): @@ -79,7 +63,7 @@ class TestFslSdnMechanismDriver(base.BaseTestCase): def setUp(self): super(TestFslSdnMechanismDriver, self).setUp() - setup_driver_config() + cfg.CONF.set_override('mechanism_drivers', ['fslsdn'], 'ml2') self.driver = mechanism_fslsdn.FslsdnMechanismDriver() self.driver.initialize() self.client = self.driver._crdclient = mock.Mock() diff --git a/setup.cfg b/setup.cfg index ff037f75a0f..4f0697c80e7 100644 --- a/setup.cfg +++ b/setup.cfg @@ -176,7 +176,7 @@ neutron.ml2.mechanism_drivers = ofagent = neutron.plugins.ml2.drivers.mech_ofagent:OfagentMechanismDriver mlnx = neutron.plugins.ml2.drivers.mlnx.mech_mlnx:MlnxMechanismDriver brocade = neutron.plugins.ml2.drivers.brocade.mechanism_brocade:BrocadeMechanism - fslsdn = neutron.plugins.ml2.drivers.mechanism_fslsdn:FslsdnMechanismDriver + fslsdn = neutron.plugins.ml2.drivers.freescale.mechanism_fslsdn:FslsdnMechanismDriver sriovnicswitch = neutron.plugins.ml2.drivers.mech_sriov.mech_driver:SriovNicSwitchMechanismDriver nuage = neutron.plugins.ml2.drivers.mech_nuage.driver:NuageMechanismDriver neutron.ml2.extension_drivers =