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