LVM: Activate source snap LV when cloning from volume

Similar to the change made in:
01a2199 LVM: Activate source LV before cloning from it

Previous change only fixed this issue for clone-from-snapshot.

This activates the source snapshot LV when cloning from volume
as well, fixing the problem where cloning fails due to inability
to open the source LV device.

Change-Id: If48be8516fd71738cb83a91683c33d02f227b9d6
Related-Bug: 1252423
Closes-Bug: 1260786
Create structure of flows' packages

1. Create_volume flows were moved to separate files from __init__.py.
   In future each flow should be implemented in a separate file.

2. Add flows.common package for tasks that could be used by different flows.

3. Proposed file structure for flows is more clean and helps to find and reuse
common code.

4. _exception_to_unicode function and tests were removed because never used.

Partially implements: blueprint create-volume-flow

Change-Id: I63473f549f0c501fe0f373830bc1080239d01892
LVM: Robustify skipactivation detection

Running lvchange might fail due to not being in
$PATH for non-root user, and the corresponding OSError
was not caught.

Simply check for lvm2 being 2.02.99 or newer.

Closes-Bug: #1269445
Change-Id: I308bd97cb729e83677f18a693274265a182d794c
Extra_spec containing '/' can't be deleted

This patch validates the keys of the extra specs
before setting them.
This will make possible to remove those keys.
It allows alphanumeric characters, underscores,
periods, colons and hyphens.

Change-Id: Ic2e5d7ce42c8ecb7ee45cd168bd008035fd4bbdf
Closes-Bug: #1259711
3PAR iSCSI volumes attach to single nsp

Update the 3PAR iSCSI Driver to correctly identify
the least used iSCSI Node:Slot:Port (NSP) and only attach
the volume using that single NSP.

DocImpact: Driver now requires 3PAR firmware version 3.1.2 MU3
Ref: https://review.openstack.org/#/c/68513/

Change-Id: I1627e44a5168a7dbd19ea62312d65a00044753e9
Closes-Bug: #1269515
Add create_iscsi_target stub to TargetAdmin

This should be defined in TargetAdmin, as it is assumed to be
present in all subclasses by callers.

IetAdm and LioAdm may need additional work to behave as desired
in all circumstances (such as volume extend), but this should
at least stabilize things in the meantime.

Closes-Bug: 1273480

Change-Id: Iac1381286ea07982e6db7f7c7abf3f9100e4be50
Convert ceph backup unit tests from mox to mock

Closes-Bug: 1261866
Change-Id: Ia1e5e971c505a4f5cc00898c6a946d5dee45c29b
Merge "3PAR iSCSI volumes attach to single nsp"
Fixes incorrect key in dictionary

This is a corner case for the 3PAR driver.
The dictionary has a key of 'wwn', not 'WWN'.

Change-Id: Id16a54f14d195a7297ab8db8fc8e2642955338e6
Closes-Bug: #1274334
Merge "Extra_spec containing '/' can't be deleted"
Merge "Add create_iscsi_target stub to TargetAdmin"
Merge "LVM: Activate source snap LV when cloning from volume"
Merge "Fixes incorrect key in dictionary"
Merge "Create structure of flows' packages"
Merge "LVM: Robustify skipactivation detection"