Support multiple role selection in projects

Horizon currently overwrites existing roles when saving project
membership. The backend was only initialising the form with the
first role of each user, so when the form was submitted any other
roles on *all* users were removed.

Changes:
- Fix backend to pass through all roles
- Keep role dropdown open on click, clicks add a tick to a role
- Show the first two roles on the dropdown label, add a "..." for
   three or more.

Fixes bug #1081374.

Change-Id: Iaf64afc4c50d4d24d6acb529a6e810a0ba154505
Bump python-quantumclient version to 2.1.2

Fixes bug 1133381

Change-Id: Id0e4476287ffba9f3bb8a708a5b6d4567629e4b9
Improve style of network topology

fixes bug 1129190
- display a message when there is no router, network or instance to show
- remove link from not owned network
- improve layout algorithm
- improve css to change router icon
- fix auto update layout

Change-Id: Ibbbf55a53939ab1446f3cb36165a5cf45c27c28c
Don't change dashboard on admin tenant switch

Switching projects as an admin user currently dumps you back to
the Admin dashboard tab. This change fixes that by adding a 'next'
parameter to the switching URL that points to the default panel
of the current dashboard.

The redirect is to the default panel rather than the current one,
since the next tenant may not have access to the current panel
and we want to avoid kicking a user back to the login screen.

Fixes bug #1072848.

Change-Id: I25b8c0e38945d5db57f5bfe7bb174cdbd66156d5
Merge "Bump python-quantumclient version to 2.1.2"
blueprint quantum-lbaas

This implements the UI for quantum lbaas. Add/Delete Pool, Vip, Member,
PoolMonitor for lbaas is implemented.

Expected future extensions:
1. Update Vip/Pool/Member
2. Use of floating IP as VIP

Change-Id: Icde452b97a5e02d2381b996350b13aba3d87bb8e
Allow non-admin users to clear router gateway properly

Fixes bug 1131193

In Grizzly-3 milestone, quantum made a change to allow regular users
to set non-owned external network as router gateway, but Quantum
router support cannot handle it, particularily non-admin user cannot
clear router gateway. This means non-admin cannot delete a router as
a result. In addition, there is no way for non-admin users to check
if router gateway is set or not since a non-admin user cannot see
a router gateway.

To address the above issues, this commit does the following changes:
- Display "external gateway info" in router table and detail to allow
  non-admin users to check if a router is connected to an external
  network (i.e., a router has a default gateway).
- Move "Set/Clear Gateway" button to router table and Set/Clear
  button is displayed based on an existence of router gateway.
- Move "Set/Clear Gateway" button in Admin panel in the same way
  to keep consistency with Project panel.

Change-Id: Ib096d5e40c88b8a605ad8aae26d1f5cf7fd745e6
Merge "Support multiple role selection in projects"
Merge "blueprint quantum-lbaas"
Merge "Improve style of network topology"
Prevents flavors to be deleted when reusing a name

Adds an extra check to the EditFlavor form
in order to avoid losing the flavor if an
existing name is setted as the new name.

This control is needed because the current
edit implementation is based in a
delete-create action.

Change-Id: I4251c64fa4719831a1ed949bf95349a350dd303d
Fixes: bug #1133254
Increase maxlength of Snapshot Name to 255.

Fixes bug 1146030

Change-Id: I28ec0c594b7a6b52d3f3d47003184253303785cd
Add some more customization help and examples

Including how to fudge your python-path in the apache conf.

Change-Id: I36c6901afeedcaa1657d9dbe9f79e833c8084125
Update CACHE_ to CACHES settings

Fixes bug 1152545

Change-Id: I6d637fe60b83478fdf42c84786965a5b9b48a9e2
Update to Quantum Client 2.2.0

This patch updates tools/pip-requires to use the python-quantumclient 2.2
It also limits the version to <3.0.0 to prevent breaking something accidently
when 3.0.0 is released.

Fixes bug 1152695

Change-Id: I98ea99bbc0dc5d5d4c67e5f8ae6b6c9f81fe2c4c
Fixes uncaught exception on Add Monitor when unable to retrieve pools

Variable instantiated in a try block referenced outside even when
exception happens in the api call that instantiates the variable.

Fixes: bug #1152770

Change-Id: Ic13db9ed87b2600357b0568ff6d01ef0fe28451c
Merge "Prevents flavors to be deleted when reusing a name"
Remove router actions from Admin panel

add-interface/set-gateway/create-router actions in Admin Router panel
are no longer needed since all of these operations now can be done by
regular users. Moreover, there is a bug that admin cannot add an
interface of other tenant to a router in Admin Router panel and the
behavior is confusing for users.

Consindering the above, this commit remove forms create/modifying
quantum routers. After the commit admin router panel just provides
the list of routers of all tenants and removes them.

Fixes bug #1153754

Change-Id: Ie17601b260fc6584ba21cd19dc9492bf16b267c1
Fixes error message formatting in Load Balancers panel

Strings were formatted to contain a "%s" to be updated when
the message was used.

The resulting string in the message box was:
    Error: Unable to add Pool "%s".

The update routine that already existed and was not being called.
Calls to the existing routine are now being made.  Other places
the strings were changed as the name would not be in context any
longer and the unused methods removed.

Fixes: bug #1152719

Change-Id: I157531a1b65dc73ce4ff1a57079fb4a2fcb9f62e
Merge "Don't change dashboard on admin tenant switch"