Restrict flavor fields input on creation/update.

If flavor properties are invalid, an update message error
is shown, but the flavor get deleted.
The reason is that update flavor is not yet supported so horizon
will delete the flavor and create a new one, failing in the last case.

Fields ram and vcpus need to be >= 1 and eph_gb, swap_mb and disk_gb
>= 0 to create a flavor.

Change-Id: I20d178bad6e4e50c0963acdec72ebedb9bbaba17
Closes-Bug: #1269638
Make values display in Flavor Table consistent

Add 'GB' to Disk And Ephemeral Disk to make them
consistent with others.

Change-Id: If466f2a4b8a58aed05b8e77eca1e81b4e86137e9
Closes-Bug: #1270036
Removing duplicated classes from lbaas.py and vpn.py

This patch removes duplicated classes AttributeDict from
api/lbaas.py and api/vpn.py. Additional attributes are
added as needed in 'list' and 'get' methods.

Closes-Bug: #1267779
Change-Id: I47d8eb5fc9bd0767ac85a7c65d394ab2b7a2ea5d
Speed up unit tests without coverage

Previously coverage command is always used even if coverage is
not enabled and this makes unit tests slower.

Change-Id: I4311164ef907fbdc66ac66d4999b25054bc9eebd
Closes-Bug: #1272979
Add create volume from volume

Cinder has the ability to create volumes as copy of a volume,
we should offer that as option via horizon, too.

This change also fixes bug 1272169

Change-Id: Idbded6ecd49ff097c063873352405ae2bd91715e
Implements: blueprint create-volume-from-volume
Closes-bug: #1272169
Fix regression on auto-fade of success message

Change-Id: Iec62f0c5b57435cdfcfa228d5709ef838499a7da
Closes-bug: #1276275
Move Network topology init call to template

This will prevent Network topology init function from being called on every page

Change-Id: Ia1005e592b82c7a1641ba8b45362084829fc62da
Closes-Bug: #1195471
Don't copy the flavorid when updating flavors

The Nova API makes the implicit assumption that flavorids are unique,
so if one creates two flavors with the same flavorid, subsequent
requests for flavor information can vary between "inaccurate" and
"wildly f*cking inaccurate"

From an end-user perspective, it makes it look like data such as
flavor access settings get lost between edits (because the API pulls
the access list from the wrong flavor)

Let the API assign a new flavorid on changes.  The comments around
the handler code imply that is the desired behaviour, anyhow.

Change-Id: I5403202396a7b136b0ae8637d6aae1cf32550747
Closes-Bug: 1276371
Restrict the length of the project name input

There is an allowed maximum length for project name field, but in
current code, it doesn't check or restrict that from UI side, i.e. user
will be able to type in more than what is allowed. After form
submission, it will fail but there is no clear message telling user what
caused failure.

After adding the code to restrict the max length of the project name
field, user will not be able to input more than what is allowed, thus
this error will be prevented from UI.

Change-Id: I6e61387c1e89e47e16354719870047c6e4760989
Closes-Bug: #1276389
Merge "Add create volume from volume"
Merge "Move Network topology init call to template"
Merge "Removing duplicated classes from lbaas.py and vpn.py"
Merge "Fix regression on auto-fade of success message"
Merge "Make values display in Flavor Table consistent"
Merge "Restrict the length of the project name input"
Merge "Restrict flavor fields input on creation/update."
Merge "Speed up unit tests without coverage"
Merge "Don't copy the flavorid when updating flavors"