Fixes 3par driver methods that were double locking

There were many cases where the 3par drivers(FC and iSCSI) were double
locking, e.g. we were locking in the individual driver and in ‘common’.
This patch set removes all the locks in ‘common’ except the one on
‘create_cloned_volume’.

The methods ’_get_volume_state’ and ‘_copy_volume’ are only called in
‘create_cloned_volume’, so those locks were removed as well. All the other
methods in ‘common’ are only called by the driver which provide the lock,
except ‘create_volume’ which is also called by ‘create_cloned_volume’.

Change-Id: I660fbd04824bd2837e06480c8298ea5a709fc82a
Fixes: bug 1175791
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
Cinder wasn't filtering the backups returned to backup list API

This has the side effect of return all backups in the system (regardless of
who created them) to the user. You should only see the backups created in your
current active project.

Fixes bug: 1169461

Change-Id: I121e8ed215b28f1b21e24b2104f8294039e09b48
Update to latest copy of OSLO incubator

Specifically I wanted the change be84db3ab24ef94b6ec457bb299d48c51575e8a6
to oslo-incubator to fix my logging issue.

I ignored the changes in common/policy.py as this change breaks
the cinder unit tests.

Fixes bug: 1170038

Change-Id: Id72417d58c8f4bf139aa082131154153a175689d
Avoid using whitespace in test_safe_parse_xml.

Updates the test_safe_parse_xml test case in
cinder.tests.test_utils.GenericUtilsTestCase to avoid using
whitespaces and to ignore extraneous newlines returned in the
parsed XML.  This is required to work around differences in
the output from minidom in python 2.6.

Fixes LP Bug #1172352.

Change-Id: I48bdf3cb8eed3e65f7ceaeb1c2b19aa529c930d0
Fixes 3PAR FC driver synchronization

While running  stress tests we found missing synchronized methods.
This patch added synchronized anotations around the necessary
methods.

Fixes bug 1172503

Change-Id: I8e475fe38d96ca663fbaac40c5a50420d791f5d5
Clear volumes stuck in 'downloading'

If the CinderVolume service is restarted while an image-copy is
happening, the volume gets left in a 'downloading' state and
cannot be used or deleted. This fix adds code to init_host to
look for volumes (on this host) in such a state, and move them
to an error state. It also calls clear_download in the driver
in case the driver needs to perform an action, such as
detaching the volume.

Fixes Bug #1172645

Change-Id: Ia5dab9ebf997f573c0b4e57d983f5996af81ede5
Encode username and password in config file

Encode username and password in xml file with base64.
And change lun owning controller when attaching
the lun to get better performance.

Fixes bug: 1136892
Change-Id: Iad79d1ec1651e3582b86e865f0342fdc55065134
Remove _path_exists method.

This method is buggy because it works only on host machine with english language, and
apparently this method is also useless because we don't need to check if a path exist if
we can use command option -p for "mkdir" command and option -f for "rm" command.

bug: LP#1172777
Change-Id: I418b32772ca97b42e1a43275a7abec9f96688607
Merge "Encode username and password in config file"
Merge "Fixes 3PAR FC driver synchronization"
Merge "Update to latest copy of OSLO incubator"
Merge "Clear volumes stuck in 'downloading'"
Merge "Remove _path_exists method."
Merge "Cinder wasn't filtering the backups returned to backup list API"
Merge "cinder volume service keeps retrying even code exception"
Deleting a backup removed the backup record from database

Instead we should be marking the backup as deleted so that we have an audit
of all the backups. Backups are now marked deleted in the way that volumes
are.

Fixes bug: 1169943
Fixes bug: 1169857

Change-Id: I52c603be138c0f1d6d411d167977041255ac9053
Merge "Avoid using whitespace in test_safe_parse_xml."
Fix LHN driver to allow backend name configuration

The LHN driver wasn't allowing custom volume_backend_name to be set
via multi-backend configuration input.  In addition there were some
issues with the updating that are also addressed in this patch.

There are other drivers that are going to need updated/fixed for
this same problem, but those will be addressed in a separate patch/bug.

Fixes bug: 1173037

Change-Id: Iae247a500739d02e145511ebe96dddaff8966419
Remove setuptools-git as run time dependency

Remove setuptools-git as a run time dependency since
it is only used to generate a tarball.

Change-Id: I6c48147408e97ab88ede660938e783f6b660746a
Signed-off-by: Chuck Short <chuck.short@canonical.com>