Skip to content

Commit 373e5fc

Browse files
Support common wrapper
1 parent ee0271b commit 373e5fc

File tree

1 file changed

+14
-16
lines changed

1 file changed

+14
-16
lines changed

tarantool/connection_pool.py

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -210,24 +210,13 @@ def connect(self):
210210

211211
self.update_ro_info()
212212

213-
def call(self, func_name, *args, **kwargs):
214-
mode = kwargs.get('mode', Mode.PREFER_RW)
213+
def send_with_reload_on_ro_error(self, method_name, mode, *args, **kwargs):
215214
conn = self.strategy.getnext(mode)
216-
217-
# try:
218-
resp = conn.call(func_name, args)
219-
# except ValueError:
220-
#reload
221-
# resp = conn.call(func_name, args)
222-
223-
return resp
215+
method = getattr(Connection, method_name)
216+
print(args)
224217

225-
def eval(self, expr, *args, **kwargs):
226-
mode = kwargs.get('mode', Mode.PREFER_RW)
227-
conn = self.strategy.getnext(mode)
228-
229218
try:
230-
resp = conn.eval(expr, args)
219+
resp = method(conn, *args, **kwargs)
231220
except DatabaseError as e:
232221
if len(e.args) > 0:
233222
strerror = tnt_strerror(e.args[0])
@@ -237,12 +226,21 @@ def eval(self, expr, *args, **kwargs):
237226
if strerror != 'UNDEFINED' and strerror[0] == 'ER_READONLY':
238227
self.update_ro_info()
239228
conn = self.strategy.getnext(mode)
240-
resp = conn.eval(expr, args)
229+
resp = method(conn, *args, **kwargs)
241230
else:
242231
raise
243232

244233
return resp
245234

235+
236+
def call(self, func_name, *args, **kwargs):
237+
mode = kwargs.get('mode', Mode.PREFER_RW)
238+
return self.send_with_reload_on_ro_error('call', mode, func_name, *args)
239+
240+
def eval(self, expr, *args, **kwargs):
241+
mode = kwargs.get('mode', Mode.PREFER_RW)
242+
return self.send_with_reload_on_ro_error('eval', mode, expr, *args)
243+
246244
def replace(self, space_name, values):
247245
raise NotImplementedError
248246

0 commit comments

Comments
 (0)