]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commit
Add ability to failback for replication V2.1
authorJohn Griffith <john.griffith8@gmail.com>
Fri, 26 Feb 2016 01:09:21 +0000 (01:09 +0000)
committerJohn Griffith <john.griffith8@gmail.com>
Mon, 29 Feb 2016 21:59:55 +0000 (14:59 -0700)
commit4eaf8f5909f8e7e8a1066c462db0a9ad9b6042b5
treedeac5d96cf3cbff73b4eb4c17f239f4fcd0ae5d8
parentfaba1e5f202008f27c021ba861a40bb7b5ea6f07
Add ability to failback for replication V2.1

Initially we had setup replication V2.1 (Cheesecake) to NOT
do fail-back at least in the initial version.

It turns out that fail-back in the Cinder code is rather easy,
we just enable calling failover-host on a host that's already
failed-over and use the *special* keyword of "default" as the
backend_id argument which signifies we want to switch back to
whatever is configured as the default in the cinder.conf file.

To do this we just add some logic that checks the secondary_backend_id
param in volume.manager:failover_host and set service fields
appropriately.  Note that we're sending the call to the driver
first and giving it a chance to raise an exception if it can't
satisfy the request at the current time.

We also needed to modify the volume.api:failover_host to allow
failed-over as a valid transition state, and again update the
Service query to include disabled services.

It's up to drivers to figure out if they want to require some
extra admin steps and document exactly how this works.  It's also
possible that during an initial failover that you might want to
return a status update for all volumes NOT replicated and mark
their volume-status to "error".

Expected behavior is depicted in the service output here:
    http://paste.openstack.org/show/488294/

Change-Id: I4531ab65424a7a9600b2f93ee5b5e1a0dd47d63d
cinder/volume/api.py
cinder/volume/manager.py