Merge "Callbacks: add precommit support"
This commit is contained in:
@@ -16,6 +16,10 @@ BEFORE_READ = 'before_read'
|
||||
BEFORE_UPDATE = 'before_update'
|
||||
BEFORE_DELETE = 'before_delete'
|
||||
|
||||
PRECOMMIT_CREATE = 'precommit_create'
|
||||
PRECOMMIT_UPDATE = 'precommit_update'
|
||||
PRECOMMIT_DELETE = 'precommit_delete'
|
||||
|
||||
AFTER_CREATE = 'after_create'
|
||||
AFTER_READ = 'after_read'
|
||||
AFTER_UPDATE = 'after_update'
|
||||
@@ -28,3 +32,4 @@ ABORT_DELETE = 'abort_delete'
|
||||
|
||||
ABORT = 'abort_'
|
||||
BEFORE = 'before_'
|
||||
PRECOMMIT = 'precommit_'
|
||||
|
||||
@@ -116,11 +116,16 @@ class CallbacksManager(object):
|
||||
:param trigger: the trigger. A reference to the sender of the event.
|
||||
"""
|
||||
errors = self._notify_loop(resource, event, trigger, **kwargs)
|
||||
if errors and event.startswith(events.BEFORE):
|
||||
abort_event = event.replace(
|
||||
events.BEFORE, events.ABORT)
|
||||
self._notify_loop(resource, abort_event, trigger)
|
||||
raise exceptions.CallbackFailure(errors=errors)
|
||||
if errors:
|
||||
if event.startswith(events.BEFORE):
|
||||
abort_event = event.replace(
|
||||
events.BEFORE, events.ABORT)
|
||||
self._notify_loop(resource, abort_event, trigger, **kwargs)
|
||||
|
||||
raise exceptions.CallbackFailure(errors=errors)
|
||||
|
||||
if event.startswith(events.PRECOMMIT):
|
||||
raise exceptions.CallbackFailure(errors=errors)
|
||||
|
||||
def clear(self):
|
||||
"""Brings the manager to a clean slate."""
|
||||
|
||||
Reference in New Issue
Block a user