[SVF] Fix rccg and relationship creation issues

[Spectrum Virtualize Family] Fix issues while creating a mirror
volume and creating a group by using the storage backend system_id
in the place of system_name in create_relationship and create_rccg
calls to choose the correct partnership based on the system_id.

This issue occurs when multiple partnerships in different states
are available for the same storage system_name.

Closes-Bug: #1939145

Change-Id: I9391a1a07aac00a3f80bf19cd4887bdfbec78b20
This commit is contained in:
Venkata Krishna 2021-09-17 16:19:57 +00:00
parent fae0e8dcb4
commit cefba86408
4 changed files with 15 additions and 7 deletions

View File

@ -2096,7 +2096,7 @@ port_speed!N/A
if 'cluster' not in kwargs:
return self._errors['CMMVC5707E']
aux_cluster = kwargs['cluster'].strip('\'\"')
if aux_cluster != aux_sys['name']:
if aux_cluster != aux_sys['id']:
return self._errors['CMMVC5754E']
if (self._volumes_list[master_vol]['capacity'] !=
@ -2438,8 +2438,8 @@ port_speed!N/A
if 'cluster' not in kwargs:
return self._errors['CMMVC5707E']
aux_cluster = kwargs['cluster'].strip('\'\"')
if (aux_cluster != aux_sys['name'] and
aux_cluster != master_sys['name']):
if (aux_cluster != aux_sys['id'] and
aux_cluster != master_sys['id']):
return self._errors['CMMVC5754E']
rccg_info = {}

View File

@ -111,7 +111,7 @@ class StorwizeSVCReplicationGlobalMirror(StorwizeSVCReplication):
system_info = self.target_helpers.get_system_info()
self.driver._helpers.create_relationship(
vref['name'], target_vol_name, system_info.get('system_name'),
vref['name'], target_vol_name, system_info.get('system_id'),
self.asyncmirror)
except Exception as e:
msg = (_("Unable to set up mirror mode replication for %(vol)s. "
@ -234,7 +234,7 @@ class StorwizeSVCReplicationGMCV(StorwizeSVCReplicationGlobalMirror):
vref['volume_type_id'])
cycle_period_seconds = src_change_opts.get('cycle_period_seconds')
self.driver._helpers.create_relationship(
vref['name'], target_vol_name, system_info.get('system_name'),
vref['name'], target_vol_name, system_info.get('system_id'),
self.asyncmirror, True, source_change_vol_name,
cycle_period_seconds)
# Set target change volume

View File

@ -5891,7 +5891,7 @@ class StorwizeSVCCommonDriver(san.SanDriver,
try:
tgt_sys = self._aux_backend_helpers.get_system_info()
self._helpers.create_rccg(
rccg_name, tgt_sys.get('system_name'))
rccg_name, tgt_sys.get('system_id'))
model_update.update({'replication_status':
fields.ReplicationStatus.ENABLED})
except exception.VolumeBackendAPIException as err:
@ -6070,7 +6070,7 @@ class StorwizeSVCCommonDriver(san.SanDriver,
try:
tgt_sys = self._aux_backend_helpers.get_system_info()
self._helpers.create_rccg(rccg_name,
tgt_sys.get('system_name'))
tgt_sys.get('system_id'))
model_update.update({'replication_status':
fields.ReplicationStatus.ENABLED})
except exception.VolumeBackendAPIException as err:

View File

@ -0,0 +1,8 @@
---
fixes:
- |
IBM Spectrum Virtualize Family driver
`Bug #1939145 <https://bugs.launchpad.net/cinder/+bug/1939145>`_:
Updating create_relationship and create_rccg calls with the
system_id in the place of system_name to fix the issues while
creating a mirror volume or creating a consistency group.