Restart former master in readonly only once when partitioned (#370)

This commit is contained in:
Alexander Kukushkin
2016-12-20 16:41:18 +01:00
committed by GitHub
parent 663bbb1048
commit 8fda957804
2 changed files with 7 additions and 2 deletions
+5 -2
View File
@@ -636,8 +636,11 @@ class Ha(object):
else:
# Either there is no connection to DCS or someone else acquired the lock
logger.error('failed to update leader lock')
self.demote('offline')
return 'demoted self because failed to update leader lock in DCS'
if self.state_handler.is_leader():
self.demote('offline')
return 'demoted self because failed to update leader lock in DCS'
else:
return 'not promoting because failed to update leader lock in DCS'
else:
logger.info('does not have lock')
return self.follow('demoting self because i do not have the lock and i was a leader',
+2
View File
@@ -243,6 +243,8 @@ class TestHa(unittest.TestCase):
self.ha.has_lock = true
self.ha.update_lock = false
self.assertEquals(self.ha.run_cycle(), 'demoted self because failed to update leader lock in DCS')
self.p.is_leader = false
self.assertEquals(self.ha.run_cycle(), 'not promoting because failed to update leader lock in DCS')
def test_follow(self):
self.ha.cluster.is_unlocked = false