Use registry.receives decorator in driver_controller

Switch to registry.receives decorator in
neutron.services.l3_router.service_providers.driver_controller.

Change-Id: I96b32365ef15c5e7c1f54cf58f1451e978f6bd91
Partial-Bug: #1668262
This commit is contained in:
Cedric Brandily 2017-03-01 18:43:06 +01:00
parent 792afbfab2
commit 2f4a5f8f37

@ -30,6 +30,7 @@ from neutron.services import service_base
LOG = logging.getLogger(__name__)
@registry.has_registry_receivers
class DriverController(object):
"""Driver controller for the L3 service plugin.
@ -47,14 +48,6 @@ class DriverController(object):
self._stm.add_provider_configuration(
lib_const.L3, _LegacyPlusProviderConfiguration())
self._load_drivers()
registry.subscribe(self._check_router_request,
resources.ROUTER, events.BEFORE_CREATE)
registry.subscribe(self._set_router_provider,
resources.ROUTER, events.PRECOMMIT_CREATE)
registry.subscribe(self._update_router_provider,
resources.ROUTER, events.PRECOMMIT_UPDATE)
registry.subscribe(self._clear_router_provider,
resources.ROUTER, events.PRECOMMIT_DELETE)
def _load_drivers(self):
self.drivers, self.default_provider = (
@ -69,12 +62,14 @@ class DriverController(object):
self._flavor_plugin_ref = directory.get_plugin(constants.FLAVORS)
return self._flavor_plugin_ref
@registry.receives(resources.ROUTER, [events.BEFORE_CREATE])
def _check_router_request(self, resource, event, trigger, context,
router, **kwargs):
"""Validates that API request is sane (flags compat with flavor)."""
drv = self._get_provider_for_create(context, router)
_ensure_driver_supports_request(drv, router)
@registry.receives(resources.ROUTER, [events.PRECOMMIT_CREATE])
def _set_router_provider(self, resource, event, trigger, context, router,
router_db, **kwargs):
"""Associates a router with a service provider.
@ -89,11 +84,13 @@ class DriverController(object):
self._stm.add_resource_association(context, lib_const.L3,
drv.name, router['id'])
@registry.receives(resources.ROUTER, [events.PRECOMMIT_DELETE])
def _clear_router_provider(self, resource, event, trigger, context,
router_id, **kwargs):
"""Remove the association between a router and a service provider."""
self._stm.del_resource_associations(context, [router_id])
@registry.receives(resources.ROUTER, [events.PRECOMMIT_UPDATE])
def _update_router_provider(self, resource, event, trigger, context,
router_id, router, old_router, router_db,
**kwargs):