Sanity around plugins in the big tent

Registered by David Lyle

Summary
=======
To clearly document and enable Horizon's policy regarding plugins.

Motivation
=========
With the growth in OpenStack, plugin guidelines need to be more clearly documented. There are more projects in the big tent than Horizon can support in tree. Additionally, there is more code in tree than Horizon can really support with the existing core structure. We need to document the policy for what items are in tree, what are p

Description
=========
There are several components of this blueprint.

Some content already in the horizon tree should be moved to openstack_dashboard/contrib. This folder is to provide some isolation for projects where reviews will come largely from the service teams. Content for Sahara and Trove will be moved. Potentially Heat as well. In addition to isolating this code, moving will illuminate some of the components missing in the existing plugin mechanism.

Adding support for adding additional policy files with a plugin will be added.

Additional work will be needed to figure out how to support integration tests from plugins.

Based on the above work and principles decided upon the resulting policy and standards will be documented and a topic added in the developer docs.

UX
===
The end user experience should be unaffected.

Wireframes, Mocks, Videos and UI Markup
---------------------------------------------------------------
N/A

Testing
======
Most of this will be documentation. However, some existing content will move locations. Making sure this content is still working will be the chief test.

Documenting plugin testing best practices will be included.

Outside Dependencies
==================
N/A

Requirements Update Required
========================
N/A

Doc Impact
=========
This patch is mostly documentation. New documentation detailing plugin policy in Horizon will be added.

Blueprint information

Status:
Complete
Approver:
David Lyle
Priority:
Essential
Drafter:
David Lyle
Direction:
Approved
Assignee:
David Lyle
Definition:
Approved
Series goal:
Accepted for mitaka
Implementation:
Implemented
Milestone target:
milestone icon mitaka-3
Started by
David Lyle
Completed by
David Lyle

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/plugin-sanity,n,z

Addressed by: https://review.openstack.org/186916
    Adding contrib directory for plugins

Addressed by: https://review.openstack.org/197363
    Moving Sahara to contrib

Addressed by: https://review.openstack.org/206780
    Moving Trove to contrib

Addressed by: https://review.openstack.org/208643
    Move Horizon to pure plugin loading only

Gerrit topic: https://review.openstack.org/#q,topic:bp/ng-metadata-defs-panel,n,z

Addressed by: https://review.openstack.org/214779
    Create a Angular Modules for Admin Dashboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/ng-defaults-panel,n,z

Gerrit topic: https://review.openstack.org/#q,topic:bp/ng-system-information,n,z

Gerrit topic: https://review.openstack.org/#q,topic:bp/ng-flavors,n,z

(?)

Work Items

Work items:
Create contrib folder: DONE
Move content for sahara to contrib: DONE
Move content for trove to contrib: DONE
Add support for settings in plugins: DONE
Add support for policy in plugins: DONE
Figure out integration test support: DONE
Document policy and standards: DONE
Move content for sahara to standalone plugin: DONE
Move content for trove to standalone plugin: DONE

This blueprint contains Public information 
Everyone can see this information.