Merge "Add callback BEFORE_DELETE for delete_router"
This commit is contained in:
commit
1c94a80b55
@ -534,7 +534,8 @@ class L3_NAT_dbonly_mixin(l3.RouterPluginBase,
|
||||
|
||||
@db_api.retry_if_session_inactive()
|
||||
def delete_router(self, context, id):
|
||||
|
||||
registry.notify(resources.ROUTER, events.BEFORE_DELETE,
|
||||
self, context=context, router_id=id)
|
||||
#TODO(nati) Refactor here when we have router insertion model
|
||||
router = self._ensure_router_not_in_use(context, id)
|
||||
original = self._make_router_dict(router)
|
||||
|
@ -3416,6 +3416,22 @@ class L3NatTestCaseBase(L3NatTestCaseMixin):
|
||||
plugin._clean_garbage()
|
||||
self._show('ports', port['port']['id'])
|
||||
|
||||
def test_router_delete_callback(self):
|
||||
def prevent_router_deletion(*args, **kwargs):
|
||||
# unsubscribe now that we have invoked the callback
|
||||
registry.unsubscribe(prevent_router_deletion, resources.ROUTER,
|
||||
events.BEFORE_DELETE)
|
||||
raise exc.HTTPForbidden
|
||||
|
||||
registry.subscribe(prevent_router_deletion, resources.ROUTER,
|
||||
events.BEFORE_DELETE)
|
||||
|
||||
with self.subnet():
|
||||
res = self._create_router(self.fmt, _uuid())
|
||||
router = self.deserialize(self.fmt, res)
|
||||
self._delete('routers', router['router']['id'],
|
||||
exc.HTTPForbidden.code)
|
||||
|
||||
|
||||
class L3AgentDbTestCaseBase(L3NatTestCaseMixin):
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user