Browse Source

Simplify `hasPartition`

jianghua 4 years ago
parent
commit
af128b43e5

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

@@ -159,10 +159,9 @@ public interface MilvusClient {
    *
    *
    * @param collectionName collection name
    * @param collectionName collection name
    * @param tag partition tag
    * @param tag partition tag
-   * @return <code>HasPartitionResponse</code>
-   * @see Response
+   * @return true if the partition exists, false otherwise.
    */
    */
-  HasPartitionResponse hasPartition(String collectionName, String tag);
+  boolean hasPartition(String collectionName, String tag);
 
 
   /**
   /**
    * Lists current partitions of a collection
    * Lists current partitions of a collection

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

@@ -295,44 +295,13 @@ abstract class AbstractMilvusGrpcClient implements MilvusClient {
   }
   }
 
 
   @Override
   @Override
-  public HasPartitionResponse hasPartition(String collectionName, String tag) {
-
-    if (!maybeAvailable()) {
-      logWarning("You are not connected to Milvus server");
-      return new HasPartitionResponse(new Response(Response.Status.CLIENT_NOT_CONNECTED), false);
-    }
-
-    PartitionParam request =
-        PartitionParam.newBuilder().setCollectionName(collectionName).setTag(tag).build();
-    BoolReply response;
-
-    try {
-      response = blockingStub().hasPartition(request);
-
-      if (response.getStatus().getErrorCode() == ErrorCode.SUCCESS) {
-        logInfo(
-            "hasPartition with tag `{}` in `{}` = {}",
-            tag,
-            collectionName,
-            response.getBoolReply());
-        return new HasPartitionResponse(
-            new Response(Response.Status.SUCCESS), response.getBoolReply());
-      } else {
-        logError(
-            "hasPartition with tag `{}` in `{}` failed:\n{}",
-            tag,
-            collectionName,
-            response.toString());
-        return new HasPartitionResponse(
-            new Response(
-                Response.Status.valueOf(response.getStatus().getErrorCodeValue()),
-                response.getStatus().getReason()),
-            false);
-      }
-    } catch (StatusRuntimeException e) {
-      logError("hasPartition RPC failed:\n{}", e.getStatus().toString());
-      return new HasPartitionResponse(new Response(Response.Status.RPC_ERROR, e.toString()), false);
-    }
+  public boolean hasPartition(String collectionName, String tag) {
+    return translateExceptions(() -> {
+      PartitionParam request = PartitionParam.newBuilder().setCollectionName(collectionName).setTag(tag).build();
+      BoolReply response = blockingStub().hasPartition(request);
+      checkResponseStatus(response.getStatus());
+      return response.getBoolReply();
+    });
   }
   }
 
 
   @Override
   @Override

+ 2 - 4
src/test/java/io/milvus/client/MilvusGrpcClientTest.java

@@ -445,14 +445,12 @@ class MilvusClientTest {
 
 
     assertTrue(Collections.disjoint(resultIdsList1, resultIdsList2));
     assertTrue(Collections.disjoint(resultIdsList1, resultIdsList2));
 
 
-    HasPartitionResponse testHasPartition = client.hasPartition(randomCollectionName, tag1);
-    assertTrue(testHasPartition.hasPartition());
+    assertTrue(client.hasPartition(randomCollectionName, tag1));
 
 
     Response dropPartitionResponse = client.dropPartition(randomCollectionName, tag1);
     Response dropPartitionResponse = client.dropPartition(randomCollectionName, tag1);
     assertTrue(dropPartitionResponse.ok());
     assertTrue(dropPartitionResponse.ok());
 
 
-    testHasPartition = client.hasPartition(randomCollectionName, tag1);
-    assertFalse(testHasPartition.hasPartition());
+    assertFalse(client.hasPartition(randomCollectionName, tag1));
 
 
     dropPartitionResponse = client.dropPartition(randomCollectionName, tag2);
     dropPartitionResponse = client.dropPartition(randomCollectionName, tag2);
     assertTrue(dropPartitionResponse.ok());
     assertTrue(dropPartitionResponse.ok());