This is an automated email from the ASF dual-hosted git repository.

rong pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new e2fb98017e2 [IOTDB-5980] Pipe: drop not existed pipe will return 
successful result (#10088)
e2fb98017e2 is described below

commit e2fb98017e2bd5a06391b7af3add62c5a03b69a0
Author: yschengzi <[email protected]>
AuthorDate: Fri Jun 9 15:38:46 2023 +0800

    [IOTDB-5980] Pipe: drop not existed pipe will return successful result 
(#10088)
---
 .../confignode/manager/pipe/task/PipeTaskCoordinator.java    | 12 +++++++++++-
 .../iotdb/confignode/persistence/pipe/PipeTaskInfo.java      |  2 +-
 .../src/main/java/org/apache/iotdb/rpc/TSStatusCode.java     |  1 +
 3 files changed, 13 insertions(+), 2 deletions(-)

diff --git 
a/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/task/PipeTaskCoordinator.java
 
b/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/task/PipeTaskCoordinator.java
index 573c1cb1a80..6f47bded042 100644
--- 
a/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/task/PipeTaskCoordinator.java
+++ 
b/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/task/PipeTaskCoordinator.java
@@ -27,6 +27,7 @@ import org.apache.iotdb.confignode.rpc.thrift.TCreatePipeReq;
 import org.apache.iotdb.confignode.rpc.thrift.TGetAllPipeInfoResp;
 import org.apache.iotdb.confignode.rpc.thrift.TShowPipeReq;
 import org.apache.iotdb.confignode.rpc.thrift.TShowPipeResp;
+import org.apache.iotdb.rpc.RpcUtils;
 import org.apache.iotdb.rpc.TSStatusCode;
 
 import org.slf4j.Logger;
@@ -72,7 +73,16 @@ public class PipeTaskCoordinator {
   }
 
   public TSStatus dropPipe(String pipeName) {
-    return configManager.getProcedureManager().dropPipe(pipeName);
+    TSStatus status = configManager.getProcedureManager().dropPipe(pipeName);
+    if (status.getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
+      LOGGER.warn(String.format("Failed to drop pipe %s. Result status: %s.", 
pipeName, status));
+    }
+    return pipeTaskInfo.isPipeExisted(pipeName)
+        ? status
+        : RpcUtils.getStatus(
+            TSStatusCode.PIPE_NOT_EXIST_ERROR,
+            String.format(
+                "Failed to drop pipe %s. Failures: %s does not exist.", 
pipeName, pipeName));
   }
 
   public TShowPipeResp showPipes(TShowPipeReq req) {
diff --git 
a/confignode/src/main/java/org/apache/iotdb/confignode/persistence/pipe/PipeTaskInfo.java
 
b/confignode/src/main/java/org/apache/iotdb/confignode/persistence/pipe/PipeTaskInfo.java
index d2580f87a1d..46940fc239b 100644
--- 
a/confignode/src/main/java/org/apache/iotdb/confignode/persistence/pipe/PipeTaskInfo.java
+++ 
b/confignode/src/main/java/org/apache/iotdb/confignode/persistence/pipe/PipeTaskInfo.java
@@ -145,7 +145,7 @@ public class PipeTaskInfo implements SnapshotProcessor {
     // DO NOTHING HERE!
   }
 
-  private boolean isPipeExisted(String pipeName) {
+  public boolean isPipeExisted(String pipeName) {
     return pipeMetaKeeper.containsPipeMeta(pipeName);
   }
 
diff --git 
a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java 
b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java
index e3092d072fa..56bfd4a78aa 100644
--- 
a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java
+++ 
b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java
@@ -216,6 +216,7 @@ public enum TSStatusCode {
   PIPE_TRANSFER_FILE_OFFSET_RESET(1803),
   PIPE_TRANSFER_FILE_ERROR(1804),
   PIPE_TRANSFER_EXECUTE_STATEMENT_ERROR(1805),
+  PIPE_NOT_EXIST_ERROR(1806),
   ;
 
   private final int statusCode;

Reply via email to