Fix failover in the paused state

This commit is contained in:
Murat Kabilov
2016-08-29 12:04:30 +02:00
parent e643321ab7
commit 22e4af3fb1
2 changed files with 2 additions and 7 deletions
+2 -2
View File
@@ -559,13 +559,13 @@ def failover(config_file, cluster_name, master, candidate, force, dcs, scheduled
if cluster.leader is None and not cluster.is_paused():
raise PatroniCtlException('This cluster has no master')
if master is None and (not cluster.is_paused() or cluster.leader):
if master is None and not cluster.is_paused():
if force:
master = cluster.leader.member.name
else:
master = click.prompt('Master', type=str, default=cluster.leader.member.name)
if not (master is not None and cluster.leader and cluster.leader.member.name == master):
if master is None or not cluster.leader or cluster.leader.member.name != master:
raise PatroniCtlException('Member {0} is not the leader of cluster {1}'.format(master, cluster_name))
candidate_names = [str(m.name) for m in cluster.members if m.name != master]
-5
View File
@@ -82,11 +82,6 @@ class TestCtl(unittest.TestCase):
result = self.runner.invoke(ctl, ['failover', 'dummy'], input='leader\nother\n2030-01-01T12:23:00\ny')
assert result.exit_code == 0
with patch('patroni.dcs.Cluster.is_paused', Mock(return_value=True)):
result = self.runner.invoke(ctl,
['failover', 'dummy', '--force', '--scheduled', '2015-01-01T12:00:00+01:00'])
assert result.exit_code == 1
# Aborting failover,as we anser NO to the confirmation
result = self.runner.invoke(ctl, ['failover', 'dummy'], input='leader\nother\n\nN')
assert result.exit_code == 1