[skip ci](shards): handle connection empty cases

Signed-off-by: peng.xu <peng.xu@zilliz.com>
This commit is contained in:
peng.xu 2020-04-30 23:26:19 +08:00
parent 0032c13445
commit 29a41ef645
No known key found for this signature in database
GPG Key ID: 3DF8F92DC43F2CEC
2 changed files with 19 additions and 2 deletions

View File

@ -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)

View File

@ -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