Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Is it possible to add a PanelGroup to the Project dashboard (Horizon)?

I am attempting to build an app that works within the Horizon openstack_dashboard, similar to this: http://docs.openstack.org/developer/horizon/topics/tutorial.html. This was useful too: http://docs.openstack.org/developer/horizon/topics/customizing.html

I am using the overides.py within my app to dynamically inject my app into the Horizon UI. It shows up, just not quite as cleanly as I'd like. Currently, it shows up within a PanelGroup called "Other", at the bottom of the Project's PanelGroups (Compute, Network, Object Store, Orchestration, Database, Other). I'd like to have the entry for my app/set of panels to occur via a PanelGroup within the existing Project dashboard, like so:

Project --> (Compute, Network, Object Store, Orchestration, Database, <my app="" name="">)

I've traced this to the way that Horizon dynamically builds the user interface when there is an app getting injected into the environment (ie: the tutorial noted above). In horizon -> horizon -> base.py, inside get_panel_groups(), it "gathers known panels", then "Deal with leftovers (such as add-on registrations)". This second section of code ("Deal with left overs... ") puts my panel into a PanelGroup called "Other". So this is with intent.

I know I can modify Horizon directly and get this to work; I'd prefer doing it indirectly if at all possible. More maintainable.

So my questions are: 1) Is there a reason behind this strategy of the "Other" PanelGroup? 2) Is there a way to do what I'm trying to do in my app? 3) If so, how?

Thanks in advance!

Is it possible to How to cleanly add a PanelGroup to the Project dashboard (Horizon)?

I am attempting to build an app that works within the Horizon openstack_dashboard, similar to this: http://docs.openstack.org/developer/horizon/topics/tutorial.html. This was useful too: http://docs.openstack.org/developer/horizon/topics/customizing.html

I am using the overides.py within my app to dynamically inject my app into the Horizon UI. It shows up, just not quite as cleanly as I'd like. Currently, it shows up within a PanelGroup called "Other", at the bottom of the Project's PanelGroups (Compute, Network, Object Store, Orchestration, Database, Other). I'd like to have the entry for my app/set of panels to occur via a PanelGroup within the existing Project dashboard, like so:

Project --> (Compute, Network, Object Store, Orchestration, Database, <my app="" name="">)

I've traced this to the way that Horizon dynamically builds the user interface when there is an app getting injected into the environment (ie: the tutorial noted above). In horizon -> horizon -> base.py, inside get_panel_groups(), it "gathers known panels", then "Deal with leftovers (such as add-on registrations)". This second section of code ("Deal with left overs... ") puts my panel into a PanelGroup called "Other". So this is with intent.

I know I can modify Horizon directly and get this to work; I'd prefer doing it indirectly if at all possible. More maintainable.

So my questions are: are:

1) Is there a reason behind this strategy of the "Other" PanelGroup? 2) Is there a way to do what I'm trying to do in my app? 3) If so, how?

Thanks in advance!