def DescribeCollection(self, request, context): _status, _collection_name = Parser.parse_proto_CollectionName(request) if not _status.OK(): return milvus_pb2.CollectionSchema(status=status_pb2.Status( error_code=_status.code, reason=_status.message), ) metadata = {'resp_class': milvus_pb2.CollectionSchema} logger.info('DescribeCollection {}'.format(_collection_name)) _status, _collection = self._describe_collection(metadata=metadata, collection_name=_collection_name) if _status.OK(): return milvus_pb2.CollectionSchema( collection_name=_collection_name, index_file_size=_collection.index_file_size, dimension=_collection.dimension, metric_type=_collection.metric_type, status=status_pb2.Status(error_code=_status.code, reason=_status.message), ) return milvus_pb2.CollectionSchema( collection_name=_collection_name, status=status_pb2.Status(error_code=_status.code, reason=_status.message), )
def resp_handler(err, error_code): if not isinstance(err, exceptions.BaseException): return status_pb2.Status(error_code=error_code, reason=str(err)) status = status_pb2.Status(error_code=error_code, reason=err.message) if err.metadata is None: return status resp_class = err.metadata.get('resp_class', None) if not resp_class: return status if resp_class == milvus_pb2.BoolReply: return resp_class(status=status, bool_reply=False) if resp_class == milvus_pb2.VectorIds: return resp_class(status=status, vector_id_array=[]) if resp_class == milvus_pb2.TopKQueryResult: return resp_class(status=status, row_num=0, ids=[], distances=[]) if resp_class == milvus_pb2.CollectionRowCount: return resp_class(status=status, collection_row_count=-1) if resp_class == milvus_pb2.CollectionName: return resp_class(status=status, collection_name=[]) if resp_class == milvus_pb2.StringReply: return resp_class(status=status, string_reply='') if resp_class == milvus_pb2.CollectionSchema: return milvus_pb2.CollectionSchema(status=status) if resp_class == milvus_pb2.IndexParam: return milvus_pb2.IndexParam(collection_name=milvus_pb2.CollectionName( status=status)) status.error_code = status_pb2.UNEXPECTED_ERROR return status