Browse Source

Get bulkinsert progress percent value (#428)

Signed-off-by: yhmo <yihua.mo@zilliz.com>
groot 2 years ago
parent
commit
6ee7922145

+ 1 - 0
src/main/java/io/milvus/param/Constant.java

@@ -39,6 +39,7 @@ public class Constant {
     public static final String IMPORT_FILES = "files";
     public static final String IMPORT_COLLECTION = "collection";
     public static final String IMPORT_PARTITION = "partition";
+    public static final String IMPORT_PROGRESS = "progress_percent";
     public static final String DEFAULT_INDEX_NAME = "";
     public final static String OFFSET = "offset";
 

+ 15 - 0
src/main/java/io/milvus/response/GetBulkInsertStateWrapper.java

@@ -127,6 +127,18 @@ public class GetBulkInsertStateWrapper {
         return getInfo(Constant.IMPORT_PARTITION);
     }
 
+    /**
+     * Gets working progress percent value of the bulk insert task.
+     *
+     * @return String target collection name
+     */
+    public int getProgress() {
+        String value = getInfo(Constant.IMPORT_PROGRESS);
+        if (value.isEmpty()) {
+            return 0;
+        }
+        return Integer.parseInt(value);
+    }
 
     private String getInfo(@NonNull String key) {
         List<KeyValuePair> infos = response.getInfosList();
@@ -147,10 +159,13 @@ public class GetBulkInsertStateWrapper {
     @Override
     public String toString() {
         return "bulk insert task state{" +
+                ", collection:" + getCollectionName() +
+                ", partition:" + getPartitionName() +
                 ", autoGeneratedIDs:" + getAutoGeneratedIDs() +
                 ", state:" + getState().name() +
                 ", failed reason:" + getFailedReason() +
                 ", files:" + getFiles() +
+                ", progress:" + getProgress() +
                 '}';
     }
 }

+ 49 - 47
src/test/java/io/milvus/client/MilvusServiceClientTest.java

@@ -2810,51 +2810,53 @@ class MilvusServiceClientTest {
         }
     }
 
-//    @Test
-//    void testGetBulkloadStateWrapper() {
-//        long count = 1000;
-//        ImportState state = ImportState.ImportStarted;
-//        String reason = "unexpected error";
-//        String files = "1.json";
-//        String collection = "c1";
-//        String partition = "p1";
-//        GetImportStateResponse reso = GetImportStateResponse.newBuilder()
-//                .setState(state)
-//                .setRowCount(count)
-//                .addIdList(0)
-//                .addIdList(99)
-//                .addInfos(KeyValuePair.newBuilder()
-//                        .setKey(Constant.FAILED_REASON)
-//                        .setValue(reason)
-//                        .build())
-//                .addInfos(KeyValuePair.newBuilder()
-//                        .setKey(Constant.IMPORT_FILES)
-//                        .setValue(files)
-//                        .build())
-//                .addInfos(KeyValuePair.newBuilder()
-//                        .setKey(Constant.IMPORT_COLLECTION)
-//                        .setValue(collection)
-//                        .build())
-//                .addInfos(KeyValuePair.newBuilder()
-//                        .setKey(Constant.IMPORT_PARTITION)
-//                        .setValue(partition)
-//                        .build())
-//                .setDataQueryable(false)
-//                .setDataIndexed(false)
-//                .build();
-//
-//        GetBulkloadStateWrapper wrapper = new GetBulkloadStateWrapper(reso);
-//        assertEquals(count, wrapper.getImportedCount());
-//        assertEquals(100, wrapper.getAutoGeneratedIDs().size());
-//        assertEquals(0, wrapper.getAutoGeneratedIDs().get(0));
-//        assertEquals(99, wrapper.getAutoGeneratedIDs().get(99));
-//        assertEquals(reason, wrapper.getFailedReason());
-//        assertEquals(files, wrapper.getFiles());
-//        assertEquals(collection, wrapper.getCollectionName());
-//        assertEquals(partition, wrapper.getPartitionName());
-//        assertEquals(false, wrapper.queryable());
-//        assertEquals(false, wrapper.indexed());
-//
-//        assertFalse(wrapper.toString().isEmpty());
-//    }
+    @Test
+    void testGetBulkInsertStateWrapper() {
+        long count = 1000;
+        ImportState state = ImportState.ImportStarted;
+        String reason = "unexpected error";
+        String files = "1.json";
+        String collection = "c1";
+        String partition = "p1";
+        String progress = "50";
+        GetImportStateResponse resp = GetImportStateResponse.newBuilder()
+                .setState(state)
+                .setRowCount(count)
+                .addIdList(0)
+                .addIdList(99)
+                .addInfos(KeyValuePair.newBuilder()
+                        .setKey(Constant.FAILED_REASON)
+                        .setValue(reason)
+                        .build())
+                .addInfos(KeyValuePair.newBuilder()
+                        .setKey(Constant.IMPORT_FILES)
+                        .setValue(files)
+                        .build())
+                .addInfos(KeyValuePair.newBuilder()
+                        .setKey(Constant.IMPORT_COLLECTION)
+                        .setValue(collection)
+                        .build())
+                .addInfos(KeyValuePair.newBuilder()
+                        .setKey(Constant.IMPORT_PARTITION)
+                        .setValue(partition)
+                        .build())
+                .addInfos(KeyValuePair.newBuilder()
+                        .setKey(Constant.IMPORT_PROGRESS)
+                        .setValue(progress)
+                        .build())
+                .build();
+
+        GetBulkInsertStateWrapper wrapper = new GetBulkInsertStateWrapper(resp);
+        assertEquals(count, wrapper.getImportedCount());
+        assertEquals(100, wrapper.getAutoGeneratedIDs().size());
+        assertEquals(0, wrapper.getAutoGeneratedIDs().get(0));
+        assertEquals(99, wrapper.getAutoGeneratedIDs().get(99));
+        assertEquals(reason, wrapper.getFailedReason());
+        assertEquals(files, wrapper.getFiles());
+        assertEquals(collection, wrapper.getCollectionName());
+        assertEquals(partition, wrapper.getPartitionName());
+        assertEquals(progress, String.valueOf(wrapper.getProgress()));
+
+        assertFalse(wrapper.toString().isEmpty());
+    }
 }