Browse Source

Simplify `getCollectionInfo`

jianghua 4 years ago
parent
commit
57d3c4ca45

+ 2 - 4
src/main/java/io/milvus/client/MilvusClient.java

@@ -267,12 +267,10 @@ public interface MilvusClient {
    * Gets collection info
    * Gets collection info
    *
    *
    * @param collectionName collection to describe
    * @param collectionName collection to describe
-   * @return <code>GetCollectionInfoResponse</code>
-   * @see GetCollectionInfoResponse
+   * @return <code>CollectionMapping</code>
    * @see CollectionMapping
    * @see CollectionMapping
-   * @see Response
    */
    */
-  GetCollectionInfoResponse getCollectionInfo(String collectionName);
+  CollectionMapping getCollectionInfo(String collectionName);
 
 
   /**
   /**
    * Lists current collections
    * Lists current collections

+ 7 - 37
src/main/java/io/milvus/client/MilvusGrpcClient.java

@@ -38,7 +38,6 @@ import io.milvus.client.exception.ServerSideMilvusException;
 import io.milvus.client.exception.UnsupportedServerVersion;
 import io.milvus.client.exception.UnsupportedServerVersion;
 import io.milvus.grpc.*;
 import io.milvus.grpc.*;
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.ArrayUtils;
-import org.json.JSONArray;
 import org.json.JSONObject;
 import org.json.JSONObject;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
@@ -49,7 +48,6 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeUnit;
@@ -359,41 +357,13 @@ abstract class AbstractMilvusGrpcClient implements MilvusClient {
   }
   }
 
 
   @Override
   @Override
-  public GetCollectionInfoResponse getCollectionInfo(@Nonnull String collectionName) {
-
-    if (!maybeAvailable()) {
-      logWarning("You are not connected to Milvus server");
-      return new GetCollectionInfoResponse(
-          new Response(Response.Status.CLIENT_NOT_CONNECTED), null);
-    }
-
-    CollectionName request = CollectionName.newBuilder().setCollectionName(collectionName).build();
-    Mapping response;
-
-    try {
-      response = blockingStub().describeCollection(request);
-
-      if (response.getStatus().getErrorCode() == ErrorCode.SUCCESS) {
-        CollectionMapping collectionMapping = new CollectionMapping(response);
-        logInfo("Get Collection Info `{}` returned:\n{}", collectionName, collectionMapping);
-        return new GetCollectionInfoResponse(
-            new Response(Response.Status.SUCCESS), collectionMapping);
-      } else {
-        logError(
-            "Get Collection Info `{}` failed:\n{}",
-            collectionName,
-            response.getStatus().toString());
-        return new GetCollectionInfoResponse(
-            new Response(
-                Response.Status.valueOf(response.getStatus().getErrorCodeValue()),
-                response.getStatus().getReason()),
-            null);
-      }
-    } catch (StatusRuntimeException e) {
-      logError("getCollectionInfo RPC failed:\n{}", e.getStatus().toString());
-      return new GetCollectionInfoResponse(
-          new Response(Response.Status.RPC_ERROR, e.toString()), null);
-    }
+  public CollectionMapping getCollectionInfo(@Nonnull String collectionName) {
+    return translateExceptions(() -> {
+      CollectionName request = CollectionName.newBuilder().setCollectionName(collectionName).build();
+      Mapping response = blockingStub().describeCollection(request);
+      checkResponseStatus(response.getStatus());
+      return new CollectionMapping(response);
+    });
   }
   }
 
 
   @Override
   @Override

+ 5 - 16
src/test/java/io/milvus/client/MilvusGrpcClientTest.java

@@ -20,7 +20,6 @@
 package io.milvus.client;
 package io.milvus.client;
 
 
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableMap;
-import com.google.common.util.concurrent.ListenableFuture;
 import io.grpc.NameResolverProvider;
 import io.grpc.NameResolverProvider;
 import io.grpc.NameResolverRegistry;
 import io.grpc.NameResolverRegistry;
 import io.grpc.Status;
 import io.grpc.Status;
@@ -30,7 +29,6 @@ import io.milvus.client.exception.InitializationException;
 import io.milvus.client.exception.ServerSideMilvusException;
 import io.milvus.client.exception.ServerSideMilvusException;
 import io.milvus.client.exception.UnsupportedServerVersion;
 import io.milvus.client.exception.UnsupportedServerVersion;
 import io.milvus.grpc.ErrorCode;
 import io.milvus.grpc.ErrorCode;
-import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.text.RandomStringGenerator;
 import org.apache.commons.text.RandomStringGenerator;
 import org.json.JSONArray;
 import org.json.JSONArray;
 import org.json.JSONObject;
 import org.json.JSONObject;
@@ -607,17 +605,10 @@ class MilvusClientTest {
 
 
   @org.junit.jupiter.api.Test
   @org.junit.jupiter.api.Test
   void getCollectionInfo() {
   void getCollectionInfo() {
-    GetCollectionInfoResponse getCollectionInfoResponse =
-        client.getCollectionInfo(randomCollectionName);
-    assertTrue(getCollectionInfoResponse.ok());
-    assertTrue(getCollectionInfoResponse.getCollectionMapping().isPresent());
-    assertEquals(
-        getCollectionInfoResponse.getCollectionMapping().get().getCollectionName(),
-        randomCollectionName);
-
-    List<? extends Map<String, Object>> fields = getCollectionInfoResponse.getCollectionMapping()
-        .get().getFields();
-    for (Map<String, Object> field : fields) {
+    CollectionMapping collectionMapping = client.getCollectionInfo(randomCollectionName);
+    assertEquals(randomCollectionName, collectionMapping.getCollectionName());
+
+    for (Map<String, Object> field : collectionMapping.getFields()) {
       if (field.get("field").equals("float_vec")) {
       if (field.get("field").equals("float_vec")) {
         JSONObject params = new JSONObject(field.get("params").toString());
         JSONObject params = new JSONObject(field.get("params").toString());
         assertTrue(params.has("dim"));
         assertTrue(params.has("dim"));
@@ -625,9 +616,7 @@ class MilvusClientTest {
     }
     }
 
 
     String nonExistingCollectionName = generator.generate(10);
     String nonExistingCollectionName = generator.generate(10);
-    getCollectionInfoResponse = client.getCollectionInfo(nonExistingCollectionName);
-    assertFalse(getCollectionInfoResponse.ok());
-    assertFalse(getCollectionInfoResponse.getCollectionMapping().isPresent());
+    assertErrorCode(ErrorCode.COLLECTION_NOT_EXISTS, () -> client.getCollectionInfo(nonExistingCollectionName));
   }
   }
 
 
   @org.junit.jupiter.api.Test
   @org.junit.jupiter.api.Test