@Override
  public boolean equals(final Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    final PipeInfo that = (PipeInfo) o;
    return Objects.equals(pipePluginInfo, that.pipePluginInfo)
        && Objects.equals(pipeTaskInfo, that.pipeTaskInfo);
  }
Note: This interface is only used for subscription and thus irrelevant to the {@link
PipeConfigNodeSubtask}. Hence, we can skip the operation of {@link PipeConfigNodeTaskAgent} and
{@link PipeConfigRegionListener} here.

@param plans An {@link OperateMultiplePipesPlanV2} consisting of many subPlans
@return result {@link TSStatus}
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/pipe/PipeInfo.java