private Flux validateStorage()

in backup-core/src/main/java/org/apache/iotdb/backup/core/pipeline/out/source/OutTsfileDataSource.java [110:142]


  private Flux<String> validateStorage(String s) {
    return Flux.deferContextual(
        context -> {
          PipelineContext<ExportModel> pcontext = context.get("pipelineContext");
          ExportModel exportModel = pcontext.getModel();
          String version = context.get("VERSION");
          StringBuilder sqlBuilder = new StringBuilder();
          sqlBuilder
              .append("count storage group ")
              .append(ExportPipelineService.formatPath(exportModel.getIotdbPath(), version));
          String sql = sqlBuilder.toString();
          try {
            SessionDataSet deviceData = exportModel.getSession().executeQueryStatement(sql);
            if (deviceData.hasNext()) {
              RowRecord rowRecord = deviceData.next();
              Integer count =
                  rowRecord
                      .getFields()
                      .get(deviceData.getColumnNames().indexOf("storage group"))
                      .getIntV();
              if (count > 1) {
                throw new Exception("the path has more than one storage group");
              }
            }
          } catch (StatementExecutionException | IoTDBConnectionException e) {
            log.error("异常信息sql:{},e : {}", sql, e);
          } catch (Exception e) {
            log.error("异常信息sql:{},e : {}", sql, e);
            return Flux.error(e);
          }
          return Flux.just(s);
        });
  }