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);
}