From 29a41ef645d6a5e43bec119e1bf8b66902662675 Mon Sep 17 00:00:00 2001 From: "peng.xu" Date: Thu, 30 Apr 2020 23:26:19 +0800 Subject: [PATCH] [skip ci](shards): handle connection empty cases Signed-off-by: peng.xu --- shards/mishards/exception_handlers.py | 6 ++++++ shards/mishards/router/__init__.py | 15 +++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/shards/mishards/exception_handlers.py b/shards/mishards/exception_handlers.py index 77cc99f22d..bee6200f49 100644 --- a/shards/mishards/exception_handlers.py +++ b/shards/mishards/exception_handlers.py @@ -83,3 +83,9 @@ def DBErrorHandler(err): def InvalidArgumentErrorHandler(err): logger.error(err) return resp_handler(err, status_pb2.ILLEGAL_RANGE) + + +@server.errorhandler(exceptions.ConnectionNotFoundError) +def InvalidArgumentErrorHandler(err): + logger.error(err) + return resp_handler(err, status_pb2.UNEXPECTED_ERROR) diff --git a/shards/mishards/router/__init__.py b/shards/mishards/router/__init__.py index 4c0fc815da..033aa3f5b1 100644 --- a/shards/mishards/router/__init__.py +++ b/shards/mishards/router/__init__.py @@ -17,8 +17,19 @@ class RouterMixin: return conn.conn def query_conn(self, name, metadata=None): - conn = self.readonly_topo.get_group(name).get(name).fetch() + if not name: + raise exceptions.ConnectionNotFoundError( + message=f'Conn Group is Empty. Please Check your configurations', + metadata=metadata) + + group = self.readonly_topo.get_group(name) + if not group: + raise exceptions.ConnectionNotFoundError( + message=f'Conn Group {name} is Empty. Please Check your configurations', + metadata=metadata) + conn = group.get(name).fetch() if not conn: - raise exceptions.ConnectionNotFoundError(name, metadata=metadata) + raise exceptions.ConnectionNotFoundError( + message=f'Conn {name} Not Found', metadata=metadata) conn.on_connect(metadata=metadata) return conn