public Message queryEcList()

in linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/restful/ECResourceInfoRestfulApi.java [200:311]


  public Message queryEcList(HttpServletRequest req, @RequestBody JsonNode jsonNode) {
    String username = ModuleUserUtils.getOperationUser(req, "ecList");
    String token = ModuleUserUtils.getToken(req);
    // check special admin token
    if (StringUtils.isNotBlank(token)) {
      if (!Configuration.isAdminToken(token)) {
        logger.warn("Token:{} has no permission to query ecList.", token);
        return Message.error("Token:" + token + " has no permission to query ecList.");
      }
    } else if (!Configuration.isAdmin(username)) {
      logger.warn("User:{} has no permission to query ecList.", username);
      return Message.error("User:" + username + " has no permission to query ecList.");
    }

    JsonNode creatorsParam = jsonNode.get("creators");
    JsonNode engineTypesParam = jsonNode.get("engineTypes");
    JsonNode statussParam = jsonNode.get("statuss");
    JsonNode queueNameParam = jsonNode.get("queueName");
    JsonNode ecInstancesParam = jsonNode.get("ecInstances");
    JsonNode crossClusterParam = jsonNode.get("crossCluster");

    //    if (creatorsParam == null || creatorsParam.isNull() || creatorsParam.size() == 0) {
    //      return Message.error("creators is null in the parameters of the
    // request(请求参数中【creators】为空)");
    //    }

    List<String> creatorUserList = new ArrayList<>();
    if (creatorsParam != null && !creatorsParam.isNull()) {
      try {
        creatorUserList =
            JsonUtils.jackson()
                .readValue(creatorsParam.toString(), new TypeReference<List<String>>() {});
      } catch (JsonProcessingException e) {
        return Message.error("parameters:creators parsing failed(请求参数【creators】解析失败)");
      }
      for (String creatorUser : creatorUserList) {
        if (null != creatorUser && !ECResourceInfoUtils.checkNameValid(creatorUser)) {
          return Message.error("Invalid creator: " + creatorUser);
        }
      }
    }

    List<String> engineTypeList = new ArrayList<>();
    if (engineTypesParam != null && !engineTypesParam.isNull()) {
      try {
        engineTypeList =
            JsonUtils.jackson()
                .readValue(engineTypesParam.toString(), new TypeReference<List<String>>() {});
      } catch (JsonProcessingException e) {
        return Message.error("parameters:engineTypes parsing failed(请求参数【engineTypes】解析失败)");
      }
    }

    List<String> statusStrList = new ArrayList<>();
    if (statussParam != null && !statussParam.isNull()) {
      try {
        statusStrList =
            JsonUtils.jackson()
                .readValue(statussParam.toString(), new TypeReference<List<String>>() {});
      } catch (JsonProcessingException e) {
        return Message.error("parameters:statuss parsing failed(请求参数【statuss】解析失败)");
      }
    }
    String queueName = "";
    if (queueNameParam != null && !queueNameParam.isNull()) {
      try {
        queueName =
            JsonUtils.jackson()
                .readValue(queueNameParam.toString(), new TypeReference<String>() {});
      } catch (JsonProcessingException e) {
        return Message.error("parameters:queueName parsing failed(请求参数【queueName】解析失败)");
      }
    }
    List<String> ecInstancesList = new ArrayList<>();
    if (ecInstancesParam != null && !ecInstancesParam.isNull()) {
      try {
        ecInstancesList =
            JsonUtils.jackson()
                .readValue(ecInstancesParam.toString(), new TypeReference<List<String>>() {});
      } catch (JsonProcessingException e) {
        return Message.error("parameters:instanceName parsing failed(请求参数【ecInstances】解析失败)");
      }
    }
    Boolean isCrossCluster = null;
    if (crossClusterParam != null && !crossClusterParam.isNull()) {
      try {
        isCrossCluster =
            JsonUtils.jackson()
                .readValue(crossClusterParam.toString(), new TypeReference<Boolean>() {});
      } catch (JsonProcessingException e) {
        return Message.error("parameters:crossCluster parsing failed(请求参数【crossCluster】解析失败)");
      }
    }
    logger.info(
        "request parameters creatorUserList:[{}], engineTypeList:[{}], statusStrList:[{}], queueName:{}, instanceNameList:{}",
        String.join(",", creatorUserList),
        String.join(",", engineTypeList),
        String.join(",", statusStrList),
        String.join(",", ecInstancesList),
        queueNameParam);

    List<Map<String, Object>> list =
        ecResourceInfoService.getECResourceInfoList(
            creatorUserList,
            engineTypeList,
            statusStrList,
            queueName,
            ecInstancesList,
            isCrossCluster);

    return Message.ok().data("ecList", list);
  }