Skip to content

Commit 370c934

Browse files
committed
PostgresNode.master should be a property
1 parent 2a69434 commit 370c934

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

Diff for: testgres/node.py

+13-13
Original file line numberDiff line numberDiff line change
@@ -74,20 +74,18 @@ def __init__(self, name=None, port=None, base_dir=None, use_logging=False):
7474
use_logging: enable python logging.
7575
"""
7676

77-
global bound_ports
78-
7977
# public
80-
self.master = None
8178
self.host = '127.0.0.1'
8279
self.name = name or _generate_app_name()
8380
self.port = port or _reserve_port()
8481
self.base_dir = base_dir
8582

8683
# private
87-
self._should_free_port = port is None
8884
self._should_rm_dirs = base_dir is None
85+
self._should_free_port = port is None
8986
self._use_logging = use_logging
9087
self._logger = None
88+
self._master = None
9189

9290
# create directories if needed
9391
self._prepare_dirs()
@@ -96,14 +94,16 @@ def __enter__(self):
9694
return self
9795

9896
def __exit__(self, type, value, traceback):
99-
global bound_ports
100-
10197
# stop node if necessary
10298
self.cleanup()
10399

104100
# free port if necessary
105101
self.free_port()
106102

103+
@property
104+
def master(self):
105+
return self._master
106+
107107
@property
108108
def data_dir(self):
109109
return os.path.join(self.base_dir, _DATA_DIR)
@@ -122,11 +122,12 @@ def pg_log_name(self):
122122

123123
def _assign_master(self, master):
124124
# now this node has a master
125-
self.master = master
125+
self._master = master
126126

127127
def _create_recovery_conf(self, username):
128128
# fetch master of this node
129129
master = self.master
130+
assert (master is not None)
130131

131132
# yapf: disable
132133
conninfo = (
@@ -834,7 +835,8 @@ def catchup(self, dbname='postgres', username=None):
834835
Wait until async replica catches up with its master.
835836
"""
836837

837-
master = self.master
838+
if not self.master:
839+
raise CatchUpException("Node doesn't have a master")
838840

839841
if _pg_version_ge('10'):
840842
poll_lsn = "select pg_current_wal_lsn()::text"
@@ -843,13 +845,11 @@ def catchup(self, dbname='postgres', username=None):
843845
poll_lsn = "select pg_current_xlog_location()::text"
844846
wait_lsn = "select pg_last_xlog_replay_location() >= '{}'::pg_lsn"
845847

846-
if not master:
847-
raise CatchUpException("Master node is not specified")
848-
849848
try:
850849
# fetch latest LSN
851-
lsn = master.execute(
852-
dbname=dbname, username=username, query=poll_lsn)[0][0]
850+
lsn = self.master.execute(dbname=dbname,
851+
username=username,
852+
query=poll_lsn)[0][0]
853853

854854
# wait until this LSN reaches replica
855855
self.poll_query_until(

Diff for: testgres/utils.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ def file_tail(f, num_lines):
212212
Get last N lines of a file.
213213
"""
214214

215-
assert(num_lines > 0)
215+
assert (num_lines > 0)
216216

217217
bufsize = 8192
218218
buffers = 1

0 commit comments

Comments
 (0)