cinder volume service keeps retrying even code exception

Make sure that ProcessLauncher does not try to restart the failed
service. And make sure the ProcessLauncher exits, when the number
of the failed services equal the number of total services.

Fixes: bug 1167841
Change-Id: I818c754534c18a62d292e21f0c98086571fe0565
(cherry picked from commit 2cee8fc3a4899097801ad93b5d6e6a4f373ad8fe)
Use an SSH pool to manage SSH connection

Use an SSH pool to hold all SSH clients,this makes driver work when
mutiple requests received in short time.Rewrite method create() and
do not set socket timeout to be None because "None" leads to closing
ssh client blocking.

This patch alse fix:
make "Not format" to be "Notformat" in function _find_lun.
Change the type of "free_capacity_gb" fron string to be float.Because
type string will lead to cinder scheduler filter failure.

Fixes bug: 1162251
Change-Id: I7d2270bb23ccfec27e618a686ab8c278a72f2244
Deprecating old dot path locations for Folsom configs

In grizzly, we made a lot of structure changes. This deprecates the old
locations so the dot paths in old configs still work but give warnings
in the logs of what needs to be updated.

Fixes: bug #1168573
Change-Id: I7b1754b0e59a923afa623871fc3be07362bf1bdc
(cherry picked from commit c355d68a868e9232a80c2f22557ffe228fcb4f8f)
Merge "cinder volume service keeps retrying even code exception" into stable/grizzly
Fix ownership transfer when cloning with SolidFire

When cloning a volume with SolidFire driver, the owner of
the cloned volume is not set correctly in SolidFire when there is
a transfer of ownership.

This results in inconsistent states where the cloned volume
is owned by the new tenant in Cinder but SolidFire thinks it is still
owned by the original volume's tenant.

This patch adds the newAccountID parameter to all CloneVolume calls.

If the cloned volume is owned by the same tenant, newAccountID will
be set to the same value as the original SolidFire volume. There
will be no change of ownership done by the cloning process in SolidFire.

If the cloned volume should be owned by a different tenant, newAccountID
will be set to the appropriate SolidFire account corresponding
to the new tenant. If the SolidFire account does not exist already,
it will be created.

Fixes: bug #1183521
Change-Id: I622ca2962478298e3e0c5a26866e39919805075f
(cherry picked from commit af023fe0cce3b8ef2b90ec37f1bc49feb17eac83)
Merge "Use an SSH pool to manage SSH connection" into stable/grizzly
Merge "Fix ownership transfer when cloning with SolidFire" into stable/grizzly
Catch and report errors from copy image to volume.

The copy image-to-volume errors weren't being handled
properly and the result was the lvcreate being retried
even though the lvcreate itself succeeded.

The result of this was misleading errors stating that
the volume couldn't be created because it already existed
(which it did, becuase the create itself was succesful).

Fixes bug: 1183283

Change-Id: I23f05fe64475c3efe285e05a258c4625b801375c
(cherry picked from commit b2371aeff9eccbd28952dd0f568da26722dc58f7)
Update cloned volumes QoS settings.

The SolidFire device inherits all settings (including QoS) from
the parent on a clone.  This meant that although we were expecting
QoS to be updated when a clone was issued with a different Volume
Type than the parent volume it was never acted upon.

This change fixes that bug by simply adding the *new* qos settings
to the ModifyVolume call after cloning.

Fixes bug: 1184235

Change-Id: I81786a07312027d543b9f06e54dfbf57e6085bc9
(cherry picked from commit 37fa1ef51ef389ed7ac0affb1dd59ba680ca52df)
Merge "Update cloned volumes QoS settings." into stable/grizzly
Merge tag 'tags/2013.1.2' into grizzly

2013.1.2