Skip to content

Commit 0da1242

Browse files
committed
Add refresh nodes function name param to MeshConnection ctor
1 parent 656d33e commit 0da1242

File tree

2 files changed

+6
-7
lines changed

2 files changed

+6
-7
lines changed

tarantool/mesh_connection.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,15 @@ def __init__(self, addrs,
3737
connect_now=True,
3838
encoding=ENCODING_DEFAULT,
3939
strategy_class=RoundRobinStrategy,
40+
get_nodes_function_name=None,
4041
nodes_refresh_interval=NODES_REFRESH_INTERVAL):
4142
self.nattempts = 2 * len(addrs) + 1
4243
self.strategy = strategy_class(addrs)
4344
self.strategy_class = strategy_class
4445
addr = self.strategy.getnext()
4546
host = addr['host']
4647
port = addr['port']
48+
self.get_nodes_function_name = get_nodes_function_name
4749
self.nodes_refresh_interval = nodes_refresh_interval
4850
self.last_nodes_refresh = 0
4951
super(MeshConnection, self).__init__(host=host,
@@ -70,19 +72,14 @@ def _opt_reconnect(self):
7072
else:
7173
raise NetworkError
7274

73-
if self.authenticated:
75+
if self.authenticated and self.get_nodes_function_name:
7476
now = time.time()
7577
if now - self.last_nodes_refresh > self.nodes_refresh_interval:
7678
self.refresh_nodes(now)
7779

7880
def refresh_nodes(self, cur_time):
79-
resp = super(MeshConnection, self).eval_ex('return get_nodes ~= nil',
81+
resp = super(MeshConnection, self).call_ex(self.get_nodes_function_name,
8082
[], reconnect=False)
81-
if not (resp.data and resp.data[0]):
82-
return
83-
84-
resp = super(MeshConnection, self).call_ex('get_nodes', [],
85-
reconnect=False)
8683

8784
if not (resp.data and resp.data[0]):
8885
return

unit/suites/test_reconnect.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ def test_03_mesh(self):
112112
'host': self.srv.host, 'port': self.srv.args['primary']}],
113113
user='test',
114114
password='test',
115+
get_nodes_function_name='get_nodes',
115116
connect_now=True)
116117

117118
# Check we work with the first server
@@ -171,6 +172,7 @@ def test_04_mesh_exclude_node(self):
171172
'host': self.srv.host, 'port': self.srv.args['primary']}],
172173
user='test',
173174
password='test',
175+
get_nodes_function_name='get_nodes',
174176
connect_now=True)
175177

176178
# Check we work with the second server

0 commit comments

Comments
 (0)