Browse Source

implement ListImportTasks (#283)

Signed-off-by: groot <yihua.mo@zilliz.com>
groot 3 years ago
parent
commit
fff3c191dd

+ 27 - 0
src/main/java/io/milvus/client/AbstractMilvusGrpcClient.java

@@ -1252,6 +1252,33 @@ public abstract class AbstractMilvusGrpcClient implements MilvusClient {
         }
     }
 
+    @Override
+    public R<ListImportTasksResponse> listImportTasks(@NonNull ListImportTasksParam requestParam) {
+        if (!clientIsReady()) {
+            return R.failed(new ClientNotConnectedException("Client rpc channel is not ready"));
+        }
+
+        logInfo(requestParam.toString());
+
+        try {
+            ListImportTasksRequest listRequest = ListImportTasksRequest.newBuilder().build();
+            ListImportTasksResponse response = blockingStub().listImportTasks(listRequest);
+
+            if (response.getStatus().getErrorCode() == ErrorCode.Success) {
+                logInfo("ListImportTasksRequest successfully!");
+                return R.success(response);
+            } else {
+                return failedStatus("ListImportTasksRequest", response.getStatus());
+            }
+        } catch (StatusRuntimeException e) {
+            logError("ListImportTasksRequest RPC failed! \n{}", e.getMessage());
+            return R.failed(e);
+        } catch (Exception e) {
+            logError("ListImportTasksRequest failed! \n{}", e.getMessage());
+            return R.failed(e);
+        }
+    }
+
     @Override
     public R<MutationResult> insert(@NonNull InsertParam requestParam) {
         if (!clientIsReady()) {

+ 8 - 0
src/main/java/io/milvus/client/MilvusClient.java

@@ -301,6 +301,14 @@ public interface MilvusClient {
      */
     R<GetImportStateResponse> getImportState(GetImportStateParam requestParam);
 
+    /**
+     * List all import tasks
+     *
+     * @param requestParam {@link ListImportTasksParam}
+     * @return {status:result code, data:ListImportTasksResponse{status,state}}
+     */
+    R<ListImportTasksResponse> listImportTasks(ListImportTasksParam requestParam);
+
     /**
      * Conducts ANN search on a vector field. Use expression to do filtering before search.
      *

+ 5 - 0
src/main/java/io/milvus/client/MilvusMultiServiceClient.java

@@ -297,6 +297,11 @@ public class MilvusMultiServiceClient implements MilvusClient {
         return this.clusterFactory.getMaster().getClient().getImportState(requestParam);
     }
 
+    @Override
+    public R<ListImportTasksResponse> listImportTasks(@NonNull ListImportTasksParam requestParam) {
+        return this.clusterFactory.getMaster().getClient().listImportTasks(requestParam);
+    }
+
     @Override
     public R<SearchResults> search(SearchParam requestParam) {
         return this.clusterFactory.getMaster().getClient().search(requestParam);

+ 41 - 0
src/main/java/io/milvus/param/dml/ListImportTasksParam.java

@@ -0,0 +1,41 @@
+package io.milvus.param.dml;
+
+import io.milvus.exception.ParamException;
+import lombok.Getter;
+import lombok.NonNull;
+
+/**
+ * Parameters for <code>getImportState</code> interface.
+ */
+@Getter
+public class ListImportTasksParam {
+
+    private ListImportTasksParam(@NonNull Builder builder) {
+    }
+
+    public static Builder newBuilder() {
+        return new Builder();
+    }
+
+    /**
+     * Builder for {@link ListImportTasksParam} class.
+     */
+    public static class Builder {
+        private Builder() {
+        }
+
+        public ListImportTasksParam build() throws ParamException {
+            return new ListImportTasksParam(this);
+        }
+    }
+
+    /**
+     * Constructs a <code>String</code> by {@link ListImportTasksParam} instance.
+     *
+     * @return <code>String</code>
+     */
+    @Override
+    public String toString() {
+        return "ListImportTasksParam";
+    }
+}

+ 9 - 0
src/main/java/io/milvus/response/GetImportStateWrapper.java

@@ -18,6 +18,15 @@ public class GetImportStateWrapper {
         this.response = response;
     }
 
+    /**
+     * Gets ID of the import task.
+     *
+     * @return Long ID of the import task
+     */
+    public long getTaskID() {
+        return response.getId();
+    }
+
     /**
      * Gets the long ID array for auto-id primary key, generated by import task.
      *

+ 8 - 1
src/test/java/io/milvus/client/MilvusServiceClientTest.java

@@ -1604,7 +1604,7 @@ class MilvusServiceClientTest {
     }
 
     @Test
-    void import_() {
+    void importData() {
         List<String> files = Collections.singletonList("f1");
         ImportParam param = ImportParam.newBuilder()
                 .withCollectionName("collection1")
@@ -1627,6 +1627,13 @@ class MilvusServiceClientTest {
         testFuncByName("getImportState", param);
     }
 
+    @Test
+    void listImportTasks() {
+        ListImportTasksParam param = ListImportTasksParam.newBuilder().build();
+
+        testFuncByName("listImportTasks", param);
+    }
+
     @Test
     void searchParam() {
         // test throw exception with illegal input

+ 10 - 0
src/test/java/io/milvus/server/MockMilvusServerImpl.java

@@ -52,6 +52,7 @@ public class MockMilvusServerImpl extends MilvusServiceGrpc.MilvusServiceImplBas
     private io.milvus.grpc.MutationResult respDelete;
     private io.milvus.grpc.ImportResponse respImport;
     private io.milvus.grpc.GetImportStateResponse respImportState;
+    private io.milvus.grpc.ListImportTasksResponse respListImportTasks;
     private io.milvus.grpc.SearchResults respSearch;
     private io.milvus.grpc.FlushResponse respFlush;
     private io.milvus.grpc.QueryResults respQuery;
@@ -408,6 +409,15 @@ public class MockMilvusServerImpl extends MilvusServiceGrpc.MilvusServiceImplBas
         responseObserver.onCompleted();
     }
 
+    @Override
+    public void listImportTasks(io.milvus.grpc.ListImportTasksRequest request,
+                               io.grpc.stub.StreamObserver<io.milvus.grpc.ListImportTasksResponse> responseObserver) {
+        logger.info("listImportTasks() call");
+
+        responseObserver.onNext(respListImportTasks);
+        responseObserver.onCompleted();
+    }
+
     public void setDeleteResponse(io.milvus.grpc.MutationResult resp) {
         respDelete = resp;
     }