Skip to content

Commit

Permalink
handle replica state on migration complete
Browse files Browse the repository at this point in the history
Set share instance replica_state to 'active' after successful migration
if the share is involved in a replication setup.

Change-Id: I6cf8a08379b2f2b0fd1bcada4cd20c39adc01f47
Closes-Bug: #1927060
  • Loading branch information
Carthaca committed May 6, 2021
1 parent 14f25f5 commit acb10c5
Showing 1 changed file with 20 additions and 12 deletions.
32 changes: 20 additions & 12 deletions manila/share/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -1661,15 +1661,26 @@ def _migration_complete_driver(

helper.apply_new_access_rules(dest_share_instance, share_ref['id'])

self.db.share_instance_update(
context, dest_share_instance['id'],
{'status': constants.STATUS_AVAILABLE, 'progress': '100%'})

self.db.share_instance_update(context, src_share_instance['id'],
{'status': constants.STATUS_INACTIVE})
self._migration_complete_instance(context, share_ref,
src_share_instance['id'],
dest_share_instance['id'])

self._migration_delete_instance(context, src_share_instance['id'])

def _migration_complete_instance(self, context, share_ref,
src_instance_id, dest_instance_id):
dest_updates = {
'status': constants.STATUS_AVAILABLE,
'progress': '100%'
}
if share_ref.get('replication_type'):
dest_updates['replica_state'] = constants.REPLICA_STATE_ACTIVE

self.db.share_instance_update(context, dest_instance_id, dest_updates)

self.db.share_instance_update(context, src_instance_id,
{'status': constants.STATUS_INACTIVE})

def _migration_delete_instance(self, context, instance_id):

# refresh the share instance model
Expand Down Expand Up @@ -1840,12 +1851,9 @@ def _migration_complete_host_assisted(self, context, share_ref,

raise exception.ShareMigrationFailed(reason=msg)

self.db.share_instance_update(
context, dest_share_instance['id'],
{'status': constants.STATUS_AVAILABLE, 'progress': '100%'})

self.db.share_instance_update(context, src_instance_id,
{'status': constants.STATUS_INACTIVE})
self._migration_complete_instance(context, share_ref,
src_share_instance['id'],
dest_share_instance['id'])

helper.delete_instance_and_wait(src_share_instance)

Expand Down

0 comments on commit acb10c5

Please sign in to comment.