Remove the FWaaS Noop driver as the default and raise an exception
when the fwaas_driver.ini file has an enabled flag without any
associated driver. This communicates a misconfiguration clearly.
The Noop driver is moved to unit tests where it is used.
Also some cleanups in related area.
Closes-Bug: #
1250841
Change-Id: Ib6345923df05994ceffc0b1cbf265b53c23e97f1
FWaaSOpts = [
cfg.StrOpt(
'driver',
- default=('neutron.services.firewall.drivers.fwaas_base.'
- 'NoopFwaasDriver'),
+ default='',
help=_("Name of the FWaaS Driver")),
cfg.BoolOpt(
'enabled',
self.conf = conf
fwaas_driver_class_path = cfg.CONF.fwaas.driver
self.fwaas_enabled = cfg.CONF.fwaas.enabled
- try:
- self.fwaas_driver = importutils.import_object(
- fwaas_driver_class_path)
- LOG.debug(_("FWaaS Driver Loaded: '%s'"), fwaas_driver_class_path)
- except ImportError:
- msg = _('Error importing FWaaS device driver: %s')
- raise ImportError(msg % fwaas_driver_class_path)
+ if self.fwaas_enabled:
+ try:
+ self.fwaas_driver = importutils.import_object(
+ fwaas_driver_class_path)
+ LOG.debug(_("FWaaS Driver Loaded: '%s'"),
+ fwaas_driver_class_path)
+ except ImportError:
+ msg = _('Error importing FWaaS device driver: %s')
+ raise ImportError(msg % fwaas_driver_class_path)
self.services_sync = False
self.root_helper = config.get_root_helper(conf)
# setup RPC to msg fwaas plugin
def process_services_sync(self, ctx):
"""On RPC issues sync with plugin and apply the sync data."""
+ # avoid msg to plugin when fwaas is not configured
+ if not self.fwaas_enabled:
+ return
try:
# get all routers
routers = self.plugin_rpc.get_routers(ctx)
interfaces.
"""
pass
-
-
-class NoopFwaasDriver(FwaasDriverBase):
- """Noop Fwaas Driver.
-
- Firewall driver which does nothing.
- This driver is for disabling Fwaas functionality.
- """
-
- def create_firewall(self, apply_list, firewall):
- pass
-
- def delete_firewall(self, apply_list, firewall):
- pass
-
- def update_firewall(self, apply_list, firewall):
- pass
-
- def apply_default_policy(self, apply_list, firewall):
- pass
from neutron.plugins.common import constants
from neutron.services.firewall.agents.l3reference import firewall_l3_agent
from neutron.tests import base
+from neutron.tests.unit.services.firewall.agents import test_firewall_agent_api
class FWaasHelper(object):
agent_config.register_root_helper(self.conf)
self.conf.root_helper = 'sudo'
self.api = FWaasAgent(self.conf)
+ self.api.fwaas_driver = test_firewall_agent_api.NoopFwaasDriver()
def test_create_firewall(self):
fake_firewall = {'id': 0}
import mock
from neutron.services.firewall.agents import firewall_agent_api as api
+from neutron.services.firewall.drivers import fwaas_base as base_driver
from neutron.tests import base
+class NoopFwaasDriver(base_driver.FwaasDriverBase):
+ """Noop Fwaas Driver.
+
+ Firewall driver which does nothing.
+ This driver is for disabling Fwaas functionality.
+ """
+
+ def create_firewall(self, apply_list, firewall):
+ pass
+
+ def delete_firewall(self, apply_list, firewall):
+ pass
+
+ def update_firewall(self, apply_list, firewall):
+ pass
+
+ def apply_default_policy(self, apply_list, firewall):
+ pass
+
+
class TestFWaaSAgentApi(base.BaseTestCase):
def setUp(self):
super(TestFWaaSAgentApi, self).setUp()