Add service mgmt extension.

Add capability to list, enable and disable cinder services on a node.

Change-Id: I6728fee46d7b15a009bc6c329414ede8c01852b4
Implement ability to Clone volumes in Cinder.

This implements the capability to create usable volume clones in Cinder,
for the LVM case we create a temporary snapshot to copy from so that
volumes can remain attached during cloning.  This works by passing
in a source-volume-id to the create command (similar to create-from-snapshot).

Currently we limit clone to the same Cinder node, and only for the base LVM driver.
All other drivers should raise NotImplemented, most inherit from the SANISCSIDriver,
so move the function there and raise until we have a general implementation
for SANISCSI based drivers.

Those drivers that inherit from ISCSI directly instead of SANISCSI,
add the function explicitly and raise NotImplementedError there as well.

Implements blueprint add-cloning-support-to-cinder

Change-Id: I72bf90baf22bec2d4806d00e2b827a594ed213f4
Make WebOb version specification more flexible

Change the WebOb version to >=1.0.8 as an temporary
measure to allow the actual version update to 1.2.3
to roll out across the projects one at a time without
breaking the integration tests.

Change-Id: I9969b02a6896f7b952301e40e96f0ef6df8f34c0
Signed-off-by: Doug Hellmann <doug.hellmann@dreamhost.com>
Use tempdir for lock_path in tests.

Commit: 2331d3336a6adf4fc13a3b187e91a5d1b1f7c723
introduced use of lockutils but wasn't setting a lock_path, in the tests.
As a result we were polluting cinder/openstack/ with cinder-xxxx lockfiles.

This patch adds a tempfile and cleanup to the test so we don't leave any
junk behind.

Change-Id: Idd9fee928ff0fcf3f8d1c30ee88c5306b88e290c
Merge "Make WebOb version specification more flexible"
Merge "Add service mgmt extension."
Merge "Implement ability to Clone volumes in Cinder."
Add option to make exception format errors fatal.

Adds a new fatal_exception_format_errors config option which
defaults to False. This option is use to control how the base
CinderException class handles errors which can occur when it
formats error messages.

The motivation for this change is to be able to enable exception
format checking in our tests by setting fatal_exception_format_errors=True.

Change-Id: I2df952558d3f30a557cbb094f8bddcc37af9b5aa
Update exceptions to pass correct kwargs.

Updates a variety of Cinder exceptions so that they pass the correct
kwargs for proper exception message formatting. Previously
these exceptions would work but have incorrect error messages
because of how CinderException handled exception formatting errors.

Change-Id: Id1d15b112cad46a698227fa172d81a9ab586e66e
Enable cinder exception format checking in tests.

Updates the Cinder test runner so that it enables
'fatal_exception_format_errors' for testing.

Includes a bunch of fixes to test exceptions as well so they
will continue to pass.

Change-Id: Idd30a810fb81e8e14490644779c3e03b6af25ff3
Fix CinderClient exception name in EMCISCSIDriver.

Change NovaException to CinderException in the emc driver.

Change-Id: Id84ca2a354afc6a7b795aef779a9fdd2567ce0d6
Provide HP 3PAR array iSCSI driver

implements blueprint hp3par-volume-driver

We have the driver broken into 2 files:
hp_3par_common.py and
hp_3par_iscsi.py

The reason we do this is because we have a fibre channel driver
that will be submitted shortly after this is committed.   The
fibre channel driver and the iscsi driver share a lot of the same
code that talks to the 3PAR array for provisioning.  So,
it made sense not to have duplicate code.  The fibre channel driver
will be dependent on the fibre channel support I am actively working
on for nova/cinder grizzly release.

The driver uses a 2 mechanisms to talk to the 3PAR array:
1) a python REST client (hp3parclient) that lives in the pypi
   repository here:
   http://pypi.python.org/pypi/hp3parclient

2) SSH.  We had to pull in some of the ssh code from the base san
   driver to help fix an issue with executing commands on the 3PAR
   array.  The 3PAR has the ability to turn on CSV output for command
   results, which makes this easier to parse.  Unfortunately, there
   is no way to turn CSV mode on permanently for all ssh requests.
   So, we have to turn on the CSV output for every single ssh command
   issued.  Since we use ssh as well, we require the san_* options
   to be set.

We use a dual mechianism because the REST API that ships with the 3.1.2
firmware doesn't support all of the capabilities a cinder driver needs
to export volumes.

When a newer version of the firmware comes out that supports host
management on the 3PAR array, then we will get rid of the SSH code.

Change-Id: I9826ba1a36e27a9be05457ee9236a491dbfd0713
Merge "Add option to make exception format errors fatal."
Merge "Update exceptions to pass correct kwargs."
Merge "Enable cinder exception format checking in tests."
Merge "Use tempdir for lock_path in tests."
Merge "Provide HP 3PAR array iSCSI driver"
Snapshot support for XenAPINFS

Related to blueprint xenapi-storage-manager-nfs

Add support for snapshots, by implementing it with deep copies. Each
snapshot is a copy of the volume. Snapshot object has a new,
provider_location key, to store volume parameters.

Change-Id: Iea06246319ce82d5fcfe417419156ec83ef0a895
Format code - eliminate long lines
Add cinder specific bits

Change-Id: I56a9d3e4bcc8833a37bbdbe51ed60c511a35a230