cinder/cinder/volume/drivers
Fernando Ferraz f70bfbf711 NetApp SolidFire: Fix duplicate volume when API response is lost
The SolidFire driver retries API requests in case a connection
error occurrs. When network is unstable, there may be the
possibility that the SolidFire backend successfully receive
and process a create volume operation, but fail to deliver the
response back to the driver.

When this scenario occurrs, the SolidFire driver automatically
resends the request, creating a second volume and leaving a
duplicate unused. Although this doesn't affect
driver functionality at first moment (the volume id from the
cluster is always correctly associated to cinder provider id),
further operations may hit the unused volume, leading to
unexpected hehavior.

This patch fixes this issue by:

1. Checking if the volume name already exists in the
backend before trying to create it. Volume creation will
raise a exception and abort in case of a volume is found.

2. Checking for volume creation right after a read timeout is
detected, preventing invalid API calls.

3. Adding option ´sf_volume_create_timeout´ to the SolidFire
driver, to allow users to set the appropriate timeout value for
their environment.

Closes-Bug: #1896112
Change-Id: I4383b691a8cc4aacb046332e418aafb88ba8ba56
(cherry picked from commit 42c92cc407)
(cherry picked from commit deb31a0c4d)
(cherry picked from commit d73da73283)
2021-03-24 22:43:30 +00:00
..
datera Rename volume/utils.py to volume/volume_utils.py 2019-09-09 15:00:07 -04:00
dell_emc PowerMax Driver - Safeguarding retype to some in-use replicated modes 2020-10-09 10:14:14 +01:00
fujitsu Fix fujitsu's wrong call to pywbem 2019-08-30 09:40:01 +08:00
fusionstorage Merge "Rename volume/utils.py to volume/volume_utils.py" 2019-09-12 16:12:49 +00:00
hedvig Add get_driver_options method 2019-03-07 09:18:01 -05:00
hpe Merge "Kaminario: Fix unique_fqdn_network option" into stable/train 2020-07-21 17:59:16 +00:00
huawei Rename volume/utils.py to volume/volume_utils.py 2019-09-09 15:00:07 -04:00
ibm Fix revert snapshot issue 2020-04-29 05:36:14 +00:00
infortrend Rename volume/utils.py to volume/volume_utils.py 2019-09-09 15:00:07 -04:00
inspur Continue renaming of volume_utils (drivers) 2019-09-10 09:15:45 -04:00
kaminario Kaminario: Fix unique_fqdn_network option 2020-07-20 06:06:07 -07:00
lenovo Create Seagate driver from dothill driver 2019-08-16 17:49:15 -06:00
macrosan Rename volume/utils.py to volume/volume_utils.py 2019-09-09 15:00:07 -04:00
nec NEC driver: fix a snapshot detach error 2020-10-08 01:05:55 +00:00
netapp Merge "NetApp ONTAP: Fix extend volume for iSCSI/FCP" into stable/train 2020-07-21 21:27:18 +00:00
nexenta Continue renaming of volume_utils (drivers) 2019-09-10 09:15:45 -04:00
prophetstor Rename volume/utils.py to volume/volume_utils.py 2019-09-09 15:00:07 -04:00
san Create Seagate driver from dothill driver 2019-08-16 17:49:15 -06:00
stx Create Seagate driver from dothill driver 2019-08-16 17:49:15 -06:00
synology Continue renaming of volume_utils (drivers) 2019-09-10 09:15:45 -04:00
veritas_access Mark Veritas Access Driver Unsupported 2019-06-03 20:43:42 +00:00
vmware Merge "Revert "Implement volume capacity stats for VMware"" 2019-06-27 15:56:30 +00:00
windows Rename volume/utils.py to volume/volume_utils.py 2019-09-09 15:00:07 -04:00
zfssa Rename volume/utils.py to volume/volume_utils.py 2019-09-09 15:00:07 -04:00
__init__.py Files with no code must be left completely empty 2016-09-28 16:29:30 +07:00
infinidat.py Continue renaming of volume_utils (drivers) 2019-09-10 09:15:45 -04:00
linstordrv.py Merge "Use 'target_helper' config opt in linstor driver" 2019-03-11 23:34:04 +00:00
lvm.py Continue renaming of volume_utils (drivers) 2019-09-10 09:15:45 -04:00
nfs.py Rename volume/utils.py to volume/volume_utils.py 2019-09-09 15:00:07 -04:00
nimble.py Mark Nimble Storage Driver supported 2020-04-09 15:42:47 -07:00
pure.py Pure: Add default value to pure_host_personality 2021-03-12 23:44:18 +01:00
qnap.py Add get_driver_options method 2019-03-07 09:18:01 -05:00
quobyte.py Add context to cloning snapshots in remotefs driver 2019-07-10 10:41:15 +02:00
rbd.py Merge "Log information about the Ceph v2 clone API" into stable/train 2021-02-16 21:37:46 +00:00
remotefs.py Fixed an issue with creating a backup from snapshot with NFS volume driver. 2021-01-07 17:50:08 +01:00
rsd.py Rsdlib changed providing_pools interface 2019-08-01 12:35:18 -07:00
sheepdog.py Mark the Sheepdog driver unsupported 2019-05-21 15:46:31 -05:00
solidfire.py NetApp SolidFire: Fix duplicate volume when API response is lost 2021-03-24 22:43:30 +00:00
spdk.py Add get_driver_options method 2019-03-07 09:18:01 -05:00
storpool.py Mark the StorPool driver as supported again. 2019-09-08 15:12:44 +03:00
veritas_cnfs.py Revert "Remove truncate from rootwrap filters" 2019-03-06 10:08:10 -05:00
vzstorage.py Mark Virtuozzo Driver Unsupported 2019-10-02 15:09:19 +00:00
zadara.py Zadara VPSA: Move to API access key authentication 2019-09-11 07:31:05 +00:00