diff --git a/helpers/dcs.py b/helpers/dcs.py index 22c47e26..f837245c 100644 --- a/helpers/dcs.py +++ b/helpers/dcs.py @@ -62,6 +62,10 @@ class Leader(namedtuple('Leader', 'index,expiration,ttl,member')): def name(self): return self.member.name + @property + def conn_url(self): + return self.member.conn_url + class Cluster(namedtuple('Cluster', 'initialize,leader,last_leader_operation,members')): """Immutable object (namedtuple) which represents PostgreSQL cluster. diff --git a/helpers/postgresql.py b/helpers/postgresql.py index ca4ea9c0..ce8ca18f 100644 --- a/helpers/postgresql.py +++ b/helpers/postgresql.py @@ -128,7 +128,7 @@ class Postgresql: os.path.exists(self.trigger_file) and os.unlink(self.trigger_file) def sync_from_leader(self, leader): - r = parseurl(leader.member.conn_url) + r = parseurl(leader.conn_url) pgpass = 'pgpass' with open(pgpass, 'w') as f: @@ -288,7 +288,7 @@ class Postgresql: if not os.path.isfile(self.recovery_conf): return False - pattern = leader and leader.member.conn_url and self.primary_conninfo(leader.member.conn_url) + pattern = leader and leader.conn_url and self.primary_conninfo(leader.conn_url) with open(self.recovery_conf, 'r') as f: for line in f: @@ -304,11 +304,11 @@ class Postgresql: f.write("""standby_mode = 'on' recovery_target_timeline = 'latest' """) - if leader and leader.member.conn_url: + if leader and leader.conn_url: f.write(""" primary_slot_name = '{}' primary_conninfo = '{}' -""".format(self.name, self.primary_conninfo(leader.member.conn_url))) +""".format(self.name, self.primary_conninfo(leader.conn_url))) for name, value in self.config.get('recovery_conf', {}).items(): f.write("{} = '{}'\n".format(name, value))