[NetApp] Fix share replica failing for 'transfer in progress' error

This patch fix an issue in NetApp driver share replica periodic
check that erroneuouly set a share replica to error after receiving
a 'Another transfer is in progress' error. The driver now skips the
resync operation for all expected transfer in progress relationship
status.

Closes-Bug: #1848889
Change-Id: If82aaa184db84660389f82654279f3c5b238fd51
(cherry picked from commit 572be43bb0)
This commit is contained in:
Douglas Viroel 2019-10-18 10:47:03 -03:00
parent 678ea79f85
commit cc2dea14a5
2 changed files with 14 additions and 2 deletions

View File

@ -1572,9 +1572,12 @@ class NetAppCmodeFileStorageLibrary(object):
return constants.REPLICA_STATE_OUT_OF_SYNC
snapmirror = snapmirrors[0]
# NOTE(dviroel): Don't try to resume or resync a SnapMirror that has
# one of the in progress transfer states, because the storage will
# answer with an error.
in_progress_status = ['preparing', 'transferring', 'finalizing']
if (snapmirror.get('mirror-state') != 'snapmirrored' and
snapmirror.get('relationship-status') == 'transferring'):
snapmirror.get('relationship-status') in in_progress_status):
return constants.REPLICA_STATE_OUT_OF_SYNC
if snapmirror.get('mirror-state') != 'snapmirrored':

View File

@ -0,0 +1,9 @@
---
fixes:
- |
Fixed an issue in NetApp driver share replica periodic check that
erroneously set a replica state to 'error'. In this routine, a SnapMirror
resync operation was being triggered while the replica data transfering is
still in progress, receiving an error from the storage side. The driver now
skips resync operation for all in progress SnapMirror relationship status.