Support building wheels (PEP-427)

Universal is used to identify pure-Python module(by bdist_wheel). For
these, it is sufficient to build a wheel with _any_ Python ABI version
and publish that to PyPI (by whatever means).

Change-Id: I900a7d2e3777a5c151778679f3049771047855e6
Fix element miss in client request body

Currently the client sends a request with wrong element name
'os-multiple-create:reservation_id' in the body.
The correct element should be 'os-multiple-create:return_reservation_id'.
The information can be got in this website.
https://wiki.openstack.org/wiki/NovaAPIv2tov3

Change-Id: I7d2f006ef6dbbcd6b41c8adbeee0c0e048d35448
Closes-Bug: #1281342
Add service-list show `id` column

In nova this patch https://review.openstack.org/#/c/39998/ can show service's
id. Then user can use the id to delete service.

This patch support show service's id

Change-Id: I9fae88743ab7faea5e3fb64643f0bc9171e5b009
Implements: blueprint support-delete-service
Re-add install_venv_common to openstack-common.conf

Mistakenly removed it in e0272b0578d2a4f5bd75e68baee1b56f49931266.
Was thrown off by the warning saying module not found, the module is
found on the third try (found in tools).

Change-Id: Iaf5a7ba0259d352cb824b2cdb22291ffb7883efc
Remove quota-class subcommand

quota-classes API was already removed.
  Change-Id: I1110022d6f628d03aaf363da707f2d2ef1600437
This patch removed quota-class subcommand from nova client.

Change-Id: I18bf7c255fabdb52c8ce8159f68c3e5c70e54993
Allow user ID for authentication

In Keystone V3 user names are no longer necessarily unique
accross domains.

A user can still authenticate a user in the non default
domain via the V2 API providng they use IDs instead of names.

Tenant_ID is already supported, this change adds support
for user ID

Change-Id: I36ba75f3e67c8cdb959e31923d5e557414ab6f9b
Fix authentication bug when booting an server in V3

Currently when booting a server with V3, novaclient sends an empty
os_password to image_cs. This will cause 401(Unauthorized: Invalid
user/password) when trying to find image. This is is a result of
changes nova's V3 API: nova is no longer used as a proxy for the
image service. So novaclient uses two Client instances: one for
nova, the other for image service. This patch checks os_password
before creating the image Client and assigns it if it's empty.

Change-Id: Ic54cef93e9b823fb98b1edd78776c9a1fc06ba46
Closes-Bug: #1277425
Removes copy of output of 'nova help' from README

Removes the copy of the otuput of 'nova help' from the README.rst
file. It's out of date and given its not autogenerated is
rather prone to getting out of date again soon anyway. Just leave
the command that people need to run in order to print the help message.

Change-Id: I3cd069838302913bc69cc0ded5d632c7f8c3f408
Nova CLI for server groups

CLI support for blueprint instance-group-api-extension

REST API support:- https://review.openstack.org/#/c/62557/

DocImpact
 - supports create, list, get and delete
 - only V2 is supported

Change-Id: Iaa5a2922b9a0eed9f682b7584c2acf582379b422
Merge "Removes copy of output of 'nova help' from README"
Explain how to delete a metadata in aggregate-set-metadata

nova aggregate-set-metadata not given value of a key means delete the
metadata, so explain this usage in help message.

Change-Id: Ie8215bd8b47ed00e3d4686edab9e3052ae84774d
Do auth_url.rstrip('/') only if auth_url is set

auth_url can be None, for example, when we use bypass_url.

Also, add rstrip('/') for bypass_url (and management_url), which
is done when management_url is gotten from service catalog.

Change-Id: I4f59cc405386a15f8a266d279b27f279eacdb7f1
Updated from global requirements

Change-Id: Ibb039ec440a513a49cbcf05daa69ac8785770035
Support IPv6 when booting instances

When nova uses neutron, IPv6 addresses may be allocated.  This ensures
those addresses are supported.the patch to modify nova is
https://review.openstack.org/#/c/74252/

Change-Id: I2468d3bcaca9122e5d3f9c98044d57f623630dc3
Closes-bug: #1267685
Work around pypy testing issue

A recent release of setuptools appears to have introduced a bug that
causes the pypy gate tests to fail.  This applies a temporary workaround
that should restore pypy testing while the root cause of the problem is
researched.

Change-Id: I66597e40c1d2e57cca1292844d228af85214197d
Partial-Bug: 1290562
Show Exception Name in Shell Output

Currently, when the CLI encounters an exception, only the exception
message is shown.  However, the name of the exception can be quite
informative as well.

For instance, an error message might read "Cannot do xyz", which
simply indicates the operation was unsucessful.  However, the attached
exception name (HTTPNotImplemented, for instance) indicates the
*reason* that the call was unsuccessful.

Change-Id: I0298477bd9d40d98c95bb797c68c47dbc952b345
Print a useful message for unknown server errors

If a server error is returned that has an unknown code, novaclient will
end up printing something similar to:

ClientException: <attribute 'message' of 'exceptions.BaseException' objects>

Setting a message for ClientException will ensure that something more
useful than that is printed.

Change-Id: I43a2a33017f9a5c1b79d7fd8af4153e91d296f7b
Closes-bug: 1295293
Merge "Updated from global requirements"
Merge "Do auth_url.rstrip('/') only if auth_url is set"
Correct the help sting of volume-type-delete

Change-Id: I10b1bd6d42e4085dc73572f05ed893385ca3e139