Regarding blueprint to register event listeners to notify client applications on state changes ( https://blueprints.launchpad.net/mistral/+spec/mistral-event-listeners-http), I want to propose the following.
1. Refer this feature as event subscription instead of callback 2. Event subscription supports only HTTP web hooks with retry policy in this first attempt 3. Event subscription can be defined for a list of specific events, workflows, projects, domains, or any combinations (all if list is empty). 4. Decorator to publish event (similar to logging) and place decorators at Engine and TaskPolicy methods @ https://github.com/stackforge/mistral/blob/master/mistral/engine1/base.py. 5. Events should be published to a queue and then processed by a worker so not to disrupt actual workflow/task executions. 6. API controller to register event subscriber a. New resource type named EventSubscriber b. New REST controller named EventSubscribersController and CRUD operations 7. DB v2 sqlalchemy model named EventSubscriber and appropriate CRUD methods 8. Operations in python-mistralclient to manage CRUD for subscribers. 9. Operation in python-mistralclient to re-publish events for a given workflow execution (in case where client applications was downed and need the data to recover).
_______________________________________________ OpenStack-dev mailing list [email protected] http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
