Currently the WBE will proxy back 'update_progress' status calls to a callback function located wherever the engine is running. This is good. It thought does not appear to be proxying back any custom attached handlers that were also attached to a task for any task specific events that are not 'update_progress' (this is bad). It also appears to be only proxying back to the handler proved to _execute_task() or _revert_task() and not to any other customized handlers that are attached to the task before being submitted for execution (this is bad).
We should fix this like it has been fixed in https://review.openstack.org/#/c/121280/ and perform a similar proxying mechanism (obviously not the same since the WBE engine does not run in local processes) to resolve this issue.
Reviewed: https:/ /review. openstack. org/141534 /git.openstack. org/cgit/ openstack/ taskflow/ commit/ ?id=1f4dd72e6e8 59f3820de5e68ec e2d09c15a18b70
Committed: https:/
Submitter: Jenkins
Branch: master
commit 1f4dd72e6e859f3 820de5e68ece2d0 9c15a18b70
Author: Joshua Harlow <email address hidden>
Date: Fri Dec 12 15:57:53 2014 -0800
Use the notifier type in the task class/module directly
Instead of having code that is some what like the notifier
code we already have, but is duplicated and is slightly different
in the task class just move the code that was in the task class (and
doing similar actions) to instead now use a notifier that is directly
contained in the task base class for internal task triggering of
internal task events.
Breaking change: alters the capabilities of the task to process
notifications itself, most actions now must go through the task
notifier property and instead use that (update_progress still exists
as a common utility method, since it's likely the most common type
of notification that will be used).
Removes the following methods from task base class (as they are
no longer needed with a notifier attribute):
- trigger (replaced with notifier.notify)
functionality in taskflow) unregister) listeners_ iter)
- autobind (removed, not replaced, can be created by the user
of taskflow in a simple manner, without requiring
- bind (replaced with notifier.register)
- unbind (replaced with notifier.
- listeners_iter (replaced with notifier.
Due to this change we can now also correctly proxy back events from
remote tasks to the engine for correct proxying back to the original
task.
Fixes bug 1370766
Change-Id: Ic9dfef516d72e6 e32e71dda30a1cb 3522c9e0be6