Merge "Add ability to failback for replication V2.1"
This commit is contained in:
commit
db2b57aed5
@ -1593,9 +1593,10 @@ class API(base.Base):
|
|||||||
ctxt = context.get_admin_context()
|
ctxt = context.get_admin_context()
|
||||||
svc_host = volume_utils.extract_host(host, 'backend')
|
svc_host = volume_utils.extract_host(host, 'backend')
|
||||||
|
|
||||||
service = objects.Service.get_by_host_and_topic(
|
service = objects.Service.get_by_args(
|
||||||
ctxt, svc_host, CONF.volume_topic)
|
ctxt, svc_host, CONF.volume_topic)
|
||||||
expected = {'replication_status': fields.ReplicationStatus.ENABLED}
|
expected = {'replication_status': [fields.ReplicationStatus.ENABLED,
|
||||||
|
fields.ReplicationStatus.FAILED_OVER]}
|
||||||
result = service.conditional_update(
|
result = service.conditional_update(
|
||||||
{'replication_status': fields.ReplicationStatus.FAILING_OVER},
|
{'replication_status': fields.ReplicationStatus.FAILING_OVER},
|
||||||
expected)
|
expected)
|
||||||
|
@ -3296,11 +3296,19 @@ class VolumeManager(manager.SchedulerDependentManager):
|
|||||||
secondary_backend_id})
|
secondary_backend_id})
|
||||||
return None
|
return None
|
||||||
|
|
||||||
service.replication_status = fields.ReplicationStatus.FAILED_OVER
|
if secondary_backend_id == "default":
|
||||||
service.active_backend_id = active_backend_id
|
service.replication_status = fields.ReplicationStatus.ENABLED
|
||||||
service.disabled = True
|
service.active_backend_id = ""
|
||||||
service.disabled_reason = "failed-over"
|
service.disabled = False
|
||||||
service.save()
|
service.disabled_reason = ""
|
||||||
|
service.save()
|
||||||
|
|
||||||
|
else:
|
||||||
|
service.replication_status = fields.ReplicationStatus.FAILED_OVER
|
||||||
|
service.active_backend_id = active_backend_id
|
||||||
|
service.disabled = True
|
||||||
|
service.disabled_reason = "failed-over"
|
||||||
|
service.save()
|
||||||
|
|
||||||
for update in volume_update_list:
|
for update in volume_update_list:
|
||||||
# Response must include an id key: {volume_id: <cinder-uuid>}
|
# Response must include an id key: {volume_id: <cinder-uuid>}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user