Introduce a plugin architecture for Horizon
Currently adding stuff to horizon requires to change settings.py. This
is nearly impossible in a world of software packages. At least, when
using RPM packages, it is absolutely unwanted, to change files at
install time, depending if other packages are installed or not.
The idea would be a directory to place python packages to be added
dynamically to the dashboard.
Blueprint information
- Status:
- Complete
- Approver:
- David Lyle
- Priority:
- Medium
- Drafter:
- Matthias Runge
- Direction:
- Needs approval
- Assignee:
- Matthias Runge
- Definition:
- Approved
- Series goal:
- Accepted for icehouse
- Implementation:
-
Implemented
- Milestone target:
-
2014.1
- Started by
- David Lyle
- Completed by
- Thierry Carrez
Related branches
Related bugs
Bug #1056449: Removing dashboard from HORIZON_CONFIG doesn't work if it's in INSTALLED_APPS | Fix Released |
Sprints
Whiteboard
mrunge: IMHO, the linked bug regarding dashboards in horizon config can be fixed as well.
mrunge: currently, I see no reason to have "plugins" at all (or why to give some kind of python modules a different treamment as others). So I propose here:
- treat all python modules below openstack_
mordred: I believe we can do what you're wanting in a packaging friendly way. We use entrypoint loading for the rest of openstack for this sort of thing, and I believe a very simple entrypoint registry would take all of about 5 minutes to put together. Alternately, you could make openstack_
mrunge: right. I didn't meant to duplicate code, to copy system packages, etc. It is just intended to easily enhance the dashboard, without requiring to change settings.py after all. The latter is inherited from Django framework.
Desgin session notes: https:/
Gerrit topic: https:/
Addressed by: https:/
Plugin-based dashboard configuration
Addressed by: https:/
Remove apps from settings
Addressed by: https:/
Fix documentation about adding a new dashboard