From 31bad6df495b1f7a2b9c3f23030d13c9c030c3cc Mon Sep 17 00:00:00 2001 From: Alexander Kukushkin Date: Mon, 15 Feb 2016 13:41:50 +0100 Subject: [PATCH] revert some changes which changed functionality of original code --- patroni/ha.py | 10 +++++++--- patroni/postgresql.py | 5 +++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/patroni/ha.py b/patroni/ha.py index 40acf174..9e9f88aa 100644 --- a/patroni/ha.py +++ b/patroni/ha.py @@ -112,6 +112,12 @@ class Ha(object): def follow(self, demote_reason, follow_reason, refresh=True, recovery=False): if refresh: self.load_cluster_from_dcs() + + if not recovery and self.state_handler.is_leader() or recovery and self.state_handler.role == 'master': + ret = demote_reason + else: + ret = follow_reason + # determine the node to follow. If replicatefrom tag is set, # try to follow the node mentioned there, otherwise, follow the leader. if self.patroni.replicatefrom: @@ -123,9 +129,7 @@ class Ha(object): if not self.state_handler.check_recovery_conf(node_to_follow) or recovery: self._async_executor.schedule('changing primary_conninfo and restarting') self._async_executor.run_async(self.state_handler.follow, (node_to_follow, recovery)) - if not recovery and self.state_handler.is_leader() or recovery and self.state_handler.role == 'master': - return demote_reason - return follow_reason + return ret def enforce_master_role(self, message, promote_message): if self.state_handler.is_leader() or self.state_handler.role == 'master': diff --git a/patroni/postgresql.py b/patroni/postgresql.py index 2354cc2e..43d2c858 100644 --- a/patroni/postgresql.py +++ b/patroni/postgresql.py @@ -392,8 +392,9 @@ class Postgresql(object): # patroni. self.close_connection() - if not self.is_running() and not block_callbacks: - self.set_state('stopped') + if not self.is_running(): + if not block_callbacks: + self.set_state('stopped') return True if block_callbacks: