You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@linkis.apache.org by pe...@apache.org on 2022/06/17 12:10:05 UTC
[incubator-linkis] branch dev-1.2.0 updated: Dev 1.2.0 ec search addEcrHistoryQuery (#2297)
This is an automated email from the ASF dual-hosted git repository.
peacewong pushed a commit to branch dev-1.2.0
in repository https://gitbox.apache.org/repos/asf/incubator-linkis.git
The following commit(s) were added to refs/heads/dev-1.2.0 by this push:
new 16dcbe9d6 Dev 1.2.0 ec search addEcrHistoryQuery (#2297)
16dcbe9d6 is described below
commit 16dcbe9d619998e649f81077ca337ac8eaca1703
Author: huangKai-2323 <62...@users.noreply.github.com>
AuthorDate: Fri Jun 17 20:09:58 2022 +0800
Dev 1.2.0 ec search addEcrHistoryQuery (#2297)
* Add ECR history query interface
* Add ECR history query interface
* Add ECR history query interface
* update project
* update project
* update project
* update project
* update project
* update project
* update project
* format file
---
.../am/restful/ECResourceInfoRestfulApi.java | 81 +++++++
.../manager/am/service/ECResourceInfoService.java | 6 +
.../am/service/impl/ECResourceInfoServiceImpl.java | 10 +
.../ECResourceInfoUtils.java} | 20 +-
.../manager/am/vo/ECResourceInfoRecordVo.java | 262 +++++++++++++++++++++
.../linkis/manager/dao/ECResourceRecordMapper.java | 9 +
.../manager/dao/impl/ECResourceRecordMapper.xml | 10 +
7 files changed, 389 insertions(+), 9 deletions(-)
diff --git a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/restful/ECResourceInfoRestfulApi.java b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/restful/ECResourceInfoRestfulApi.java
index 14167ee48..ed5007f97 100644
--- a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/restful/ECResourceInfoRestfulApi.java
+++ b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/restful/ECResourceInfoRestfulApi.java
@@ -20,15 +20,30 @@ package org.apache.linkis.manager.am.restful;
import org.apache.linkis.common.conf.Configuration;
import org.apache.linkis.manager.am.exception.AMErrorException;
import org.apache.linkis.manager.am.service.ECResourceInfoService;
+import org.apache.linkis.manager.am.util.ECResourceInfoUtils;
+import org.apache.linkis.manager.am.vo.ECResourceInfoRecordVo;
import org.apache.linkis.manager.common.entity.persistence.ECResourceInfoRecord;
import org.apache.linkis.server.Message;
+import org.apache.linkis.server.security.SecurityFilter;
import org.apache.linkis.server.utils.ModuleUserUtils;
+import org.apache.commons.lang.StringUtils;
+
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
+import com.github.pagehelper.PageHelper;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
@RequestMapping(
path = "/linkisManager/ecinfo",
produces = {"application/json"})
@@ -67,4 +82,70 @@ public class ECResourceInfoRestfulApi {
return Message.error("tickedId not exist:" + ticketid);
}
}
+
+ @RequestMapping(path = "/ecrHistoryList", method = RequestMethod.GET)
+ public Message queryEcrHistory(
+ HttpServletRequest req,
+ @RequestParam(value = "instance", required = false) String instance,
+ @RequestParam(value = "creator", required = false) String creator,
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @RequestParam(value = "startDate", required = false)
+ Date startDate,
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @RequestParam(
+ value = "endDate",
+ required = false,
+ defaultValue = "#{new java.util.Date()}")
+ Date endDate,
+ @RequestParam(value = "engineType", required = false) String engineType,
+ @RequestParam(value = "pageNow", required = false, defaultValue = "1") Integer pageNow,
+ @RequestParam(value = "pageSize", required = false, defaultValue = "20")
+ Integer pageSize) {
+ String username = SecurityFilter.getLoginUsername(req);
+ // Parameter judgment
+ instance = ECResourceInfoUtils.strCheckAndDef(instance, null);
+ creator = ECResourceInfoUtils.strCheckAndDef(creator, null);
+ engineType = ECResourceInfoUtils.strCheckAndDef(engineType, null);
+ if (null != creator && !ECResourceInfoUtils.checkNameValid(creator)) {
+ return Message.error("Invalid creator : " + creator);
+ }
+ if (null == startDate) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
+ calendar.set(Calendar.MINUTE, 0);
+ calendar.set(Calendar.SECOND, 0);
+ startDate = calendar.getTime();
+ }
+ if (Configuration.isAdmin(username)) {
+ username = null;
+ if (StringUtils.isNotBlank(creator)) {
+ username = creator;
+ }
+ }
+ List<ECResourceInfoRecordVo> list = new ArrayList<>();
+ PageHelper.startPage(pageNow, pageSize);
+ try {
+ List<ECResourceInfoRecord> queryTasks =
+ ecResourceInfoService.getECResourceInfoRecordList(
+ instance, endDate, startDate, username);
+ if (StringUtils.isNotBlank(engineType)) {
+ String finalEngineType = engineType;
+ queryTasks =
+ queryTasks.stream()
+ .filter(info -> info.getLabelValue().contains(finalEngineType))
+ .collect(Collectors.toList());
+ }
+ queryTasks.forEach(
+ info -> {
+ ECResourceInfoRecordVo ecrHistroryListVo = new ECResourceInfoRecordVo();
+ BeanUtils.copyProperties(info, ecrHistroryListVo);
+ ecrHistroryListVo.setEngineType(
+ info.getLabelValue().split(",")[1].split("-")[0]);
+ list.add(ecrHistroryListVo);
+ });
+ } finally {
+ PageHelper.clearPage();
+ }
+ return Message.ok().data("engineList", list);
+ }
}
diff --git a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/service/ECResourceInfoService.java b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/service/ECResourceInfoService.java
index 12ccdd86d..014e31e15 100644
--- a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/service/ECResourceInfoService.java
+++ b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/service/ECResourceInfoService.java
@@ -19,6 +19,9 @@ package org.apache.linkis.manager.am.service;
import org.apache.linkis.manager.common.entity.persistence.ECResourceInfoRecord;
+import java.util.Date;
+import java.util.List;
+
public interface ECResourceInfoService {
ECResourceInfoRecord getECResourceInfoRecord(String ticketId);
@@ -27,6 +30,9 @@ public interface ECResourceInfoService {
void deleteECResourceInfoRecord(Integer id);
+ List<ECResourceInfoRecord> getECResourceInfoRecordList(
+ String instance, Date endDate, Date startDate, String username);
+
// TODO add search method
}
diff --git a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/service/impl/ECResourceInfoServiceImpl.java b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/service/impl/ECResourceInfoServiceImpl.java
index 9526b8802..899295799 100644
--- a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/service/impl/ECResourceInfoServiceImpl.java
+++ b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/service/impl/ECResourceInfoServiceImpl.java
@@ -30,6 +30,9 @@ import org.springframework.stereotype.Service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.util.Date;
+import java.util.List;
+
@Service
public class ECResourceInfoServiceImpl implements ECResourceInfoService {
@@ -58,4 +61,11 @@ public class ECResourceInfoServiceImpl implements ECResourceInfoService {
logger.info("Start to delete ec id:{} info ", id);
ecResourceRecordMapper.deleteECResourceInfoRecord(id);
}
+
+ @Override
+ public List<ECResourceInfoRecord> getECResourceInfoRecordList(
+ String instance, Date endDate, Date startDate, String username) {
+ return ecResourceRecordMapper.getECResourceInfoHistory(
+ username, instance, endDate, startDate);
+ }
}
diff --git a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/service/ECResourceInfoService.java b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/util/ECResourceInfoUtils.java
similarity index 63%
copy from linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/service/ECResourceInfoService.java
copy to linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/util/ECResourceInfoUtils.java
index 12ccdd86d..6f94f27e0 100644
--- a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/service/ECResourceInfoService.java
+++ b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/util/ECResourceInfoUtils.java
@@ -14,19 +14,21 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+package org.apache.linkis.manager.am.util;
-package org.apache.linkis.manager.am.service;
+import org.apache.commons.lang.StringUtils;
-import org.apache.linkis.manager.common.entity.persistence.ECResourceInfoRecord;
+import java.util.regex.Pattern;
-public interface ECResourceInfoService {
+public class ECResourceInfoUtils {
- ECResourceInfoRecord getECResourceInfoRecord(String ticketId);
+ public static String NAME_REGEX = "^[a-zA-Z\\d_\\.]+$";
- void deleteECResourceInfoRecordByTicketId(String ticketId);
-
- void deleteECResourceInfoRecord(Integer id);
-
- // TODO add search method
+ public static boolean checkNameValid(String creator) {
+ return Pattern.compile(NAME_REGEX).matcher(creator).find();
+ }
+ public static String strCheckAndDef(String str, String def) {
+ return StringUtils.isBlank(str) ? def : str;
+ }
}
diff --git a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/vo/ECResourceInfoRecordVo.java b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/vo/ECResourceInfoRecordVo.java
new file mode 100644
index 000000000..be8dffa3e
--- /dev/null
+++ b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/vo/ECResourceInfoRecordVo.java
@@ -0,0 +1,262 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.linkis.manager.am.vo;
+
+import org.apache.linkis.manager.common.entity.resource.Resource;
+import org.apache.linkis.manager.common.utils.ResourceUtils;
+
+import java.util.Date;
+
+public class ECResourceInfoRecordVo {
+
+ private Integer id;
+
+ private String createUser;
+
+ private String labelValue;
+
+ private String ticketId;
+
+ private String serviceInstance;
+
+ private String usedResource;
+
+ private String requestResource;
+
+ private String releasedResource;
+
+ private String ecmInstance;
+
+ private int requestTimes;
+
+ private int usedTimes;
+
+ private int releaseTimes;
+
+ private Date usedTime;
+
+ private Date createTime;
+
+ private Date releaseTime;
+
+ private String logDirSuffix;
+
+ private String engineType;
+
+ public ECResourceInfoRecordVo() {}
+
+ public ECResourceInfoRecordVo(
+ String labelValue,
+ String createUser,
+ String ticketId,
+ Resource resource,
+ String logDirSuffix) {
+ this.labelValue = labelValue;
+ this.ticketId = ticketId;
+ this.createUser = createUser;
+ if (null != resource) {
+ this.requestResource = ResourceUtils.serializeResource(resource);
+ }
+ this.logDirSuffix = logDirSuffix;
+ }
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getLabelValue() {
+ return labelValue;
+ }
+
+ public void setLabelValue(String labelValue) {
+ this.labelValue = labelValue;
+ }
+
+ public String getTicketId() {
+ return ticketId;
+ }
+
+ public void setTicketId(String ticketId) {
+ this.ticketId = ticketId;
+ }
+
+ public String getServiceInstance() {
+ return serviceInstance;
+ }
+
+ public void setServiceInstance(String serviceInstance) {
+ this.serviceInstance = serviceInstance;
+ }
+
+ public String getUsedResource() {
+ return usedResource;
+ }
+
+ public void setUsedResource(String usedResource) {
+ this.usedResource = usedResource;
+ }
+
+ public String getRequestResource() {
+ return requestResource;
+ }
+
+ public void setRequestResource(String requestResource) {
+ this.requestResource = requestResource;
+ }
+
+ public String getReleasedResource() {
+ return releasedResource;
+ }
+
+ public void setReleasedResource(String releasedResource) {
+ this.releasedResource = releasedResource;
+ }
+
+ public String getEcmInstance() {
+ return ecmInstance;
+ }
+
+ public void setEcmInstance(String ecmInstance) {
+ this.ecmInstance = ecmInstance;
+ }
+
+ public int getRequestTimes() {
+ return requestTimes;
+ }
+
+ public void setRequestTimes(int requestTimes) {
+ this.requestTimes = requestTimes;
+ }
+
+ public int getUsedTimes() {
+ return usedTimes;
+ }
+
+ public void setUsedTimes(int usedTimes) {
+ this.usedTimes = usedTimes;
+ }
+
+ public int getReleaseTimes() {
+ return releaseTimes;
+ }
+
+ public void setReleaseTimes(int releaseTimes) {
+ this.releaseTimes = releaseTimes;
+ }
+
+ public Date getUsedTime() {
+ return usedTime;
+ }
+
+ public void setUsedTime(Date usedTime) {
+ this.usedTime = usedTime;
+ }
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+
+ public Date getReleaseTime() {
+ return releaseTime;
+ }
+
+ public void setReleaseTime(Date releaseTime) {
+ this.releaseTime = releaseTime;
+ }
+
+ public String getLogDirSuffix() {
+ return logDirSuffix;
+ }
+
+ public void setLogDirSuffix(String logDirSuffix) {
+ this.logDirSuffix = logDirSuffix;
+ }
+
+ public String getEngineType() {
+ return engineType;
+ }
+
+ public void setEngineType(String engineType) {
+ this.engineType = engineType;
+ }
+
+ @Override
+ public String toString() {
+ return "ECRHistroryListVo{"
+ + "id="
+ + id
+ + ", createUser='"
+ + createUser
+ + '\''
+ + ", labelValue='"
+ + labelValue
+ + '\''
+ + ", ticketId='"
+ + ticketId
+ + '\''
+ + ", serviceInstance='"
+ + serviceInstance
+ + '\''
+ + ", usedResource='"
+ + usedResource
+ + '\''
+ + ", requestResource='"
+ + requestResource
+ + '\''
+ + ", releasedResource='"
+ + releasedResource
+ + '\''
+ + ", ecmInstance='"
+ + ecmInstance
+ + '\''
+ + ", requestTimes="
+ + requestTimes
+ + ", usedTimes="
+ + usedTimes
+ + ", releaseTimes="
+ + releaseTimes
+ + ", usedTime="
+ + usedTime
+ + ", createTime="
+ + createTime
+ + ", releaseTime="
+ + releaseTime
+ + ", logDirSuffix='"
+ + logDirSuffix
+ + '\''
+ + ", engineType='"
+ + engineType
+ + '\''
+ + '}';
+ }
+}
diff --git a/linkis-computation-governance/linkis-manager/linkis-manager-persistence/src/main/java/org/apache/linkis/manager/dao/ECResourceRecordMapper.java b/linkis-computation-governance/linkis-manager/linkis-manager-persistence/src/main/java/org/apache/linkis/manager/dao/ECResourceRecordMapper.java
index 45359d56d..4d8bb7178 100644
--- a/linkis-computation-governance/linkis-manager/linkis-manager-persistence/src/main/java/org/apache/linkis/manager/dao/ECResourceRecordMapper.java
+++ b/linkis-computation-governance/linkis-manager/linkis-manager-persistence/src/main/java/org/apache/linkis/manager/dao/ECResourceRecordMapper.java
@@ -22,6 +22,9 @@ import org.apache.linkis.manager.common.entity.persistence.ECResourceInfoRecord;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import java.util.Date;
+import java.util.List;
+
@Mapper
public interface ECResourceRecordMapper {
@@ -34,4 +37,10 @@ public interface ECResourceRecordMapper {
void deleteECResourceInfoRecordByTicketId(@Param("ticketId") String ticketId);
void deleteECResourceInfoRecord(@Param("id") Integer id);
+
+ List<ECResourceInfoRecord> getECResourceInfoHistory(
+ @Param("username") String username,
+ @Param("instance") String instance,
+ @Param("endDate") Date endDate,
+ @Param("startDate") Date startDate);
}
diff --git a/linkis-computation-governance/linkis-manager/linkis-manager-persistence/src/main/java/org/apache/linkis/manager/dao/impl/ECResourceRecordMapper.xml b/linkis-computation-governance/linkis-manager/linkis-manager-persistence/src/main/java/org/apache/linkis/manager/dao/impl/ECResourceRecordMapper.xml
index 12d50fbd3..0154fad45 100644
--- a/linkis-computation-governance/linkis-manager/linkis-manager-persistence/src/main/java/org/apache/linkis/manager/dao/impl/ECResourceRecordMapper.xml
+++ b/linkis-computation-governance/linkis-manager/linkis-manager-persistence/src/main/java/org/apache/linkis/manager/dao/impl/ECResourceRecordMapper.xml
@@ -60,4 +60,14 @@
delete from linkis_cg_ec_resource_info_record WHERE id = #{id}
</delete>
+
+ <select id="getECResourceInfoHistory" resultType="org.apache.linkis.manager.common.entity.persistence.ECResourceInfoRecord" >
+ select * from linkis_cg_ec_resource_info_record
+ <where>
+ <if test="instance != null"> service_instance = #{instance}</if>
+ <if test="username != null"> and create_user = #{username}</if>
+ <if test="startDate != null">and create_time BETWEEN #{startDate} AND #{endDate}</if>
+ </where>
+ ORDER BY linkis_cg_ec_resource_info_record.create_time DESC
+ </select>
</mapper>
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@linkis.apache.org
For additional commands, e-mail: commits-help@linkis.apache.org