VMware: Re-create session for RetrievePropertiesEx

When RetrievePropertiesEx API is called after session timeout, the driver
does not re-create session automatically.

This is a regression caused when moving from RetrieveProperties to
RetrievePropertiesEx API.

Fixes bug: 1235187

Change-Id: I8a1e2452dfb3029365d59eae7850d1a9363b25f0
(cherry picked from commit 2d4ea101252141486fa6fd61b100772fafd40102)
VMware: Disallow snapshot of attached volume

The current implementation perform snapshot of attached volume.
This is invalid because when we take snapshot of the backing, the instance
continues pointing to the readonly delta and tries writing to it.
This patch will disallow snapshot creation of attached volume.

We have similar issue with delete of snapshot, when deleted the instance will
point to an invalid disk file, since that will get merged with its parent.
Hence any writes by the instance will fail with disk not found error.
This patch will ignore delete snapshot of attached volume.

Since we disallow snapshot of attached volume, we disallow linked clone of
attached source volume and also upload of attached volume.

Fixes bug: 1236891

Change-Id: I6a91eac8529836d1fe1de73bf6b28ec098aa7c54
(cherry picked from commit 2451a027bee50c834890f9e049fbaf4bfa911546)
Support Huawei driver upgrade from grizzly to havana

To make the driver upgrade from grizzly to higher versions, the patch
checks the old host name firstly when creating and deleting host in
Huawei storage system.
If the old host name exists:
*get and use it directly when adding host.
*delete it directly when deleting host.

Closes-bug 1237189

Change-Id: I82a9dbc1ef0bb0b91771afea4aadec5afe65eecf
(cherry picked from commit 0c9dc5d0e01576969f09edc0c9c72a2aa91b248a)
long flashcopy operation may block volume service

Storwize family uses flashcopy for snapshot or volume clone. The
volume delete has to wait until flashcopy finishes or errors out.
The _delete_vdisk() will poll volume FlashCopy status in a loop.
This may block volume serivce heartheat since it is in the same
. The solution is to use openstack FixedIntervalLoopingCall
to run the FlashCopy status poll in a timer thread.

The cinder volume mananger will resume delete operation for those
volumes that are in the deleting state during volume service startup.
Since Storwize volume delete may wait for a long time, this can cause
volume service to have long delay before it becomes available.
A greenpool is used to offload those volume delete operations.

Change-Id: Ie01a441a327e1e318fa8da0040ae130731b7a686
Closes-Bug: #1203152
(cherry picked from commit 7aa4f65a8c17aa037deff0f5b534ed694c17e62a)
improves lvm version parsing for customised builds

supports_thin_provisioning now uses a regexp to ensure parsing of
lvm version succeeds when the build is customised; also adds a test
for a customised string parsing

Closes-Bug: #1237994
Change-Id: I49049a58bbdb5315b9d2d7c259a9324ca15d78cb
(cherry picked from commit 51fd5edb106e26d65696ce37a70eef6a4f75b1e2)
Merge "VMware: Re-create session for RetrievePropertiesEx" into milestone-proposed
Merge "Support Huawei driver upgrade from grizzly to havana" into milestone-proposed
Merge "improves lvm version parsing for customised builds" into milestone-proposed
Merge "VMware: Disallow snapshot of attached volume" into milestone-proposed