Emit event notifications in Horizon
Horizon should use oslo.notify to emit event notifications.
This can be usefull for several reasons :
* Usage
- for diagnosis purposes by identifying user’s actions in Horizon (addressing customer support tools)
- for behavioural analysis of customer (addressing marketing tools)
- for audit purposes
- for billing
* QoS :
- for global performance analysis (response time) (adressing operational tools)
- for reliablitity and availability analysis (error and exceptions occurences) vs end-user experience (and maybe SLA violation)
Blueprint information
- Status:
- Complete
- Approver:
- David Lyle
- Priority:
- High
- Drafter:
- Ala Rezmerita
- Direction:
- Needs approval
- Assignee:
- None
- Definition:
- Superseded
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
- Matthias Runge
Related branches
Related bugs
Sprints
Whiteboard
2013-11-25 | Florent Flament | Implementation proposal
Notifications are implemented in several Openstack projects, including
Nova, Cinder and Keystone.
Notifications are implemented in two different manners:
* Cinder and Nova define `notify_about_*` functions in a `utils.py`
(ex volume/utils.py) file. These functions are then called when
required by the different methods (ex volume/manager.py).
* Keystone defines decorators (created, updated and deleted) in the
`notification
methods that need to send notifications (ex identity/core.py method
Manager.
We propose to reproduce Cinder/Nova notifications implementation into
Horizon. We believe that this implementation is more flexible, since
it allows adding notifications inside the body of methods (for
instance in except blocks). While decorators only allow notifications
just before or after calling decorated methods.
To provide a full coverage of every possible user action, we will have
to add notifications to each form/workflow "handle" method. As of
today, there are 83 such methods to update:
$ grep -r "def handle" horizon/
2013-11-26 | Florent Flament | Implementation proposal update
An interesting article about notifications is available there:
http://
The .start/.end notification pattern will be adopted and implemented
using decorators, based on Keystone's implementation. Specific
notifications may be implemented later using function calls (or other
decorators).
A general purpose notification decorator will first be pushed to
Oslo-incubator, then pushed to Horizon.