Merge "Updated error messages for volume clone"
Redundant check in os-migrate_volume_completion

Remove the redundant check for 'migrate_volume_completion', and add the UT
for it.

Change-Id: I6b643dbf9ae1302cafe6748a361123d7d76c437f
Closes-Bug: #1254963
Merge "Fix import log_handler error with publish_errors set"
Merge "Convert RBD unit tests to use mock instead of mox"
Merge "Storwize driver cleanup"
Merge "Redundant check in os-migrate_volume_completion"
Merge "GlusterFS: Fix deadlock in volume clone"
Merge "Remove unused exceptions"
Make sure report_interval is less than service_down_time

Services that inherit service.py/Service class would register
themselves to DB and then update stats periodically (every
report_interval second).  The consumer of this kind of information,
like scheduler or 'os-service' API extension, will consider a service
is 'up' (active) if last update from that service is not longer than
'service_down_time' ago.

The problem is if 'report_interval' was configured/provided greater
than 'service_down_time' by mistake, services would then be always
considered in 'down' state, which can result in unsuccesful placement
of volume create request for example.  This is what Bug #1255685 is
about.

In previous fix: https://review.openstack.org/#/c/60760/, a
configuration check helper function basic_config_check() was added
*wrongly* to WSGIService class instead of Service class.  This patch
moves the configuration check helper function and the check to the
right place to make sure 'report_interval' is less then
'service_down_time'.

Closes-bug #1255685

Change-Id: I14bd8c54e5ce20719844f437808ad98a011820de
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
Merge "Fix up the way we do iqn variable in unit test"
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
VolumeManager: initialize even if a volume can't be found

If a previously volume cannot be exported (for example, because
an iSCSI target's backing LV is no longer present), VolumeManager
would previously bail out, leaving the volume service uninitialized.
This left volumes dangling in limbo: their state would be reported
as available (clearly not a reflection of reality), and they could
not be deleted (because the volume service that would be responsible
for deletion was unavailable).

Instead, catch an exception raised by ensure_export() separately,
log it, and set the volume to the error state.

For the tgt backend, this will also remove the volume_path file.
Previously this would cause an ISCSITargetRemoveFailed exception
when the volume would be removed. Instead, simply log a warning
and return, the way other backends (example: RBD) already do.

Also, add an info message that reflects the actual path and
contents of the volume_path file.

Finally, fix up the tgtadm unit test so that it tests for
identical IQNs,

Closes-bug: 1270959.

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

Closes-Bug: 1261866
Change-Id: Ia1e5e971c505a4f5cc00898c6a946d5dee45c29b
Revert initialize_connection changes

A change was merged that reusulted in interittent
gate failures.  It seems that in certain cases the
intitialize is doing an update targets and is
deleting the existing targets and not recreating them.

The idea of this patch was to fix up the iscis targets
for cases where volumes are extended.

A better solution is in progress that will remove the
target creation from the create_volume process altogether.

Currently we seem to have create_export, ensure_export and
now initialize that all are designed to do very similar
things.

A bug has been filed to address this and will attempt
to collapse these functions to be done at attach time.

This particular patch in essence reverts two patches:
commit: 18f8f5be94aae3b1747b143479ea1b188872f000
commit: a9267644ee09591e2d642d6c1204d94a9fdd8c82

Change-Id: Ib615847f3cbeb74b1e4416d51730162ad1d07a40
Closes-Bug: 1270608
Merge "3PAR iSCSI volumes attach to single nsp"
Stop volume_type_encryption creation when in use

This bug fix addresses bug #1274252.  It requires a volume
type to have no volumes with the type before allowing it
to be made encrypted.  This prevents a situation where
non-encrypted volumes could have an encrypted volume type.
This fix also adds a unit test to confirm functionality.

Change-Id: Iab0954c2d0af73bce28be7fa319b8b34ca20e720
Closes-Bug: #1274252
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