From 209bc661ab79dfe6943ecaff3546e250528ebe3f Mon Sep 17 00:00:00 2001 From: holgern <holgernahrstaedt@gmx.de> Date: Wed, 31 Jul 2019 16:09:43 +0200 Subject: [PATCH] Add disable node function --- beemapi/node.py | 5 +++++ beemapi/steemnoderpc.py | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/beemapi/node.py b/beemapi/node.py index e570f4a4..ca4b3da7 100644 --- a/beemapi/node.py +++ b/beemapi/node.py @@ -120,6 +120,11 @@ class Nodes(list): def num_retries_call_reached(self): return self.error_cnt_call >= self.num_retries_call + def disable_node(self): + """Disable current node""" + if self.node is not None and self.num_retries_call >= 0: + self.node.error_cnt_call = self.num_retries_call + def increase_error_cnt(self): """Increase node error count for current node""" if self.node is not None: diff --git a/beemapi/steemnoderpc.py b/beemapi/steemnoderpc.py index 1ce9fa37..a2084a33 100644 --- a/beemapi/steemnoderpc.py +++ b/beemapi/steemnoderpc.py @@ -118,8 +118,9 @@ class SteemNodeRPC(GrapheneRPC): elif re.search("Could not find API", msg): if self._check_api_name(msg): if self.nodes.working_nodes_count > 1 and self.nodes.num_retries > -1: + self.nodes.disable_node() self._switch_to_next_node(msg, "ApiNotSupported") - doRetry = False + doRetry = True else: raise exceptions.ApiNotSupported(msg) else: @@ -151,8 +152,9 @@ class SteemNodeRPC(GrapheneRPC): raise exceptions.UnhandledRPCError("Use Operation(op, appbase=True) to prevent error: " + msg) elif re.search("Client returned invalid format. Expected JSON!", msg): if self.nodes.working_nodes_count > 1 and self.nodes.num_retries > -1: + self.nodes.disable_node() self._switch_to_next_node(msg) - doRetry = False + doRetry = True else: raise exceptions.UnhandledRPCError(msg) elif msg: -- GitLab