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()
|
@db_api.retry_if_session_inactive()
|
||||||
def delete_router(self, context, id):
|
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
|
#TODO(nati) Refactor here when we have router insertion model
|
||||||
router = self._ensure_router_not_in_use(context, id)
|
router = self._ensure_router_not_in_use(context, id)
|
||||||
original = self._make_router_dict(router)
|
original = self._make_router_dict(router)
|
||||||
|
@ -3416,6 +3416,22 @@ class L3NatTestCaseBase(L3NatTestCaseMixin):
|
|||||||
plugin._clean_garbage()
|
plugin._clean_garbage()
|
||||||
self._show('ports', port['port']['id'])
|
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):
|
class L3AgentDbTestCaseBase(L3NatTestCaseMixin):
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user