Update SolidFire volume driver

Implements blueprint update-solidfire-driver

* Updates driver to reflect changes in the release version of SF API
* Modify SF naming scheme
* Implement snapshot functionality
* Implement setting qos on create via metadata
* Update/Add tests

(cherry picked from cinder commit df5c4ba)

Change-Id: I08f7aac31e9d95f971d297a19c285dfa7151b931
Fix flavor deletion when there is a deleted flavor

If there is a deleted flavor with the same ID as an undeleted flavor,
the flavormanage delete code attempts to delete it again, which fails.
This patch makes sure to pass read_deleted='no' when the flavor is
retrieved for deletion so we get the undeleted flavor. Includes a
failing test to make sure the value is passed properly.

Fixes bug 1048678

Change-Id: If6a20de2526b7ba90ada4a40317a98f79b2141dc
More specific lxml versions in tools/pip-requires

Changed lxml version in tools/pip-requires from >=2.3,<3 to
>=2.3,<2.3.5.  pip was apparently accepting 3.0alpha as a <3 requirement
but the ordering of elements changes in that version.  Some of the
libvirt tests would pass with lxml 3.0alpha but fail with any 2.3.x
version.  The tests now pass with any version of lxml within the range
specified.

Change-Id: I2d84d32f1bf6fba2c6dbe05799a284a44d4c39d8
Adds API sample test for Flavors Extra Data extension.

Change-Id: I65f8ed10dc5c1d31f848ad3fdc5c63e17fdc518f
Add flag cinder_endpoint_template to volume.cinder

Add optional flag to allow cinder endpoint to be defined by flag rather
than extracted from the request context's service catalog.  No change to
default behavior.

This flag allows deployers to use a seperate management endpoint for
cinder which compute can use exclusively to send messages to cinder, or
just use an auth system that doesn't add/forward the catalog along with
the request (e.g. noauth).

Add python-cinderclient to tools/test-requires

fix lp bug #1048798

Change-Id: Icb416bf4df2a6e37024f1fbc866006d46d30bcf2
fix rpcapi version.

In commit ce4dbbd7, the BASE_RPC_API_VERSION was changed to '2.1' in
nova.compute.rpcapi.  This should remain '2.0' until the API goes to
3.X.  Only specify version '2.1' for the method that requires it
(rebuild_instance).

Add a NOTE above each instance of BASE_RPC_API_VERSION to try to help
clarify this for the future.

Change-Id: I06cef44c905e8966505d5fb5b1046d6a0c75d533
Add 'detaching' to volume status

Fixes bug #1004382

When attach a volume , the volume status is "available -> attaching ->
in-use", But when detaching a volume , the volume status is "in-use ->
available". So We need 'detaching' volume status, it make the change of
state of the volume more clearly.

Change-Id: I544220c206899307294d50e26679f5351fdc0cd7
Stop fetch_ca from throwing IOError exceptions

Fixes bug #883300

Fixes problem where fetch_ca could throw an IOError exception rather
than a Nova specific exception.
Adds FileError exception.
Fixes other functions in crypto.py that had very similar problems.

Change-Id: Ic2e43c35ad58c67d33156c53d2a41910dfdf8678
Rename _unplug_vifs to unplug_vifs

self._vmops is of type VMWareVMOps, which doesn't have unplug_vifs
defined.

Partially fix bug 1037183

Change-Id: I561788fbfea1d221e13850e93593f8b9a96d9f7c
Check flavor id on resize.

Actually it checks for memory size changes so you can't change just cpu or hdd when resizing instances.

Fixes bug 1049195

Change-Id: I793d19dbf5f1d89d365e63ab61b4edb983fdb11c
Makes key_name show in details view of servers

The wrong authorizor was being used in the details view and the test
for details was broken. This fixes the test and makes sure that
key_name shows up in details like it is supposed to.

Fixes bug 1043584

Change-Id: I4ff01bbd32759f30e7a31ef2eac9f58922843037
Adds more servers list and servers details samples

This moves the servers detail test into the base servers test so
it runs with all_extensions as well. It also renames the
results to be consistent with the other tests. Finally it
adds test for servers-list both with and without extensions.

Change-Id: I6eed3932fa594f1a39faa55453461680781e6a9f
Merge "Makes key_name show in details view of servers"
Merge "Check flavor id on resize."
Merge "Rename _unplug_vifs to unplug_vifs"
Merge "Add 'detaching' to volume status"
Merge "Fix flavor deletion when there is a deleted flavor"
Merge "Adds API sample test for Flavors Extra Data extension."
Merge "Stop fetch_ca from throwing IOError exceptions"
Merge "Update SolidFire volume driver"