From b6ba0e0fdbe5686f8b9963abd9c97480f5f36d96 Mon Sep 17 00:00:00 2001 From: even <827656971@qq.com> Date: Sun, 27 Apr 2025 17:50:06 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E8=AF=91=E9=80=9A=E8=BF=87=E7=89=88?= =?UTF-8?q?=E6=9C=AC=EF=BC=8C=E5=BE=88=E5=A4=9A=E5=9C=B0=E6=96=B9=E5=8F=AA?= =?UTF-8?q?=E6=98=AF=E7=AE=80=E5=8D=95=E6=B3=A8=E9=87=8A=EF=BC=8C=E4=B9=8B?= =?UTF-8?q?=E5=90=8E=E6=A0=B9=E6=8D=AETODO=20=E6=9F=A5=E6=89=BE=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E8=BF=81=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dependencies/.flattened-pom.xml | 5 + .../bean/engine/execute/PipelineDetails.java | 4 +- .../bean/engine/execute/PipelineRunMsg.java | 2 +- .../cd/casic/ci/commons/bean/order/Order.java | 12 + .../ci/commons/bean/order/OrderBuilder.java | 22 ++ .../ci/commons/bean/order/OrderBuilders.java | 30 ++ .../ci/commons/bean/order/OrderTypeEnum.java | 11 + .../definition/PipelineFollowQuery.java | 1 + .../process/definition/PipelineQuery.java | 1 + .../process/definition/VariableQuery.java | 1 + .../instance/PipelineInstanceQuery.java | 1 + .../bean/process/setting/ScmQuery.java | 1 + .../process/stage/StageInstanceQuery.java | 1 + .../ci/commons/bean/work/agent/Agent.java | 10 - .../commons/bean/work/agent/AgentMessage.java | 44 +++ .../commons/bean/work/agent/AgentQuery.java | 27 ++ .../commons/bean/work/agent/model/Agent.java | 28 ++ .../process/convert/setting/ScmConvert.java | 8 +- .../engine/execute/PipelineExecService.java | 14 +- .../execute/impl/PipelineExecServiceImpl.java | 304 +++++------------- .../home/service/PipelineHomeService.java | 55 ++++ .../service/PipelineInstanceServiceImpl.java | 158 +++++++++ .../definition/dataobject/ConditionDo.java | 4 +- .../dataobject/PipelineInstanceDo.java | 4 +- .../process/process/setting/dao/EnvDao.java | 34 +- .../setting/impl/AuthThirdServiceImpl.java | 75 +++-- .../setting/impl/CacheServiceImpl.java | 50 +-- .../process/setting/impl/EnvServiceImpl.java | 10 +- .../setting/impl/GroupServiceImpl.java | 67 +++- .../setting/impl/ResourcesServiceImpl.java | 202 ++++++------ .../process/setting/impl/ScmServiceImpl.java | 92 +++--- .../impl/SystemMassageServiceImpl.java | 1 + .../process/stage/dataobject/StageDo.java | 4 +- .../support/agent/service/AgentService.java | 76 +++++ .../process/support/disk/model/Disk.java | 70 ++++ .../support/disk/service/DiskService.java | 24 ++ .../support/home/PipelineVersionService.java | 12 + .../support/util/PipelineUtilService.java | 43 +++ .../support/util/util/PipelineFinal.java | 220 +++++++++++++ .../task/build/model/TaskBuildProduct.java | 75 +++++ .../build/model/TaskBuildProductQuery.java | 56 ++++ .../service/TaskBuildProductService.java | 36 +++ .../process/toolkit/join/JoinOperation.java | 11 + .../process/toolkit/join/JoinTemplate.java | 11 + 44 files changed, 1460 insertions(+), 457 deletions(-) create mode 100644 modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/order/Order.java create mode 100644 modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/order/OrderBuilder.java create mode 100644 modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/order/OrderBuilders.java create mode 100644 modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/order/OrderTypeEnum.java delete mode 100644 modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/work/agent/Agent.java create mode 100644 modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/work/agent/AgentMessage.java create mode 100644 modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/work/agent/AgentQuery.java create mode 100644 modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/work/agent/model/Agent.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/module/process/home/service/PipelineHomeService.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/module/process/pipeline/instance/service/PipelineInstanceServiceImpl.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/agent/service/AgentService.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/disk/model/Disk.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/disk/service/DiskService.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/home/PipelineVersionService.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/util/PipelineUtilService.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/util/util/PipelineFinal.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/module/process/task/build/model/TaskBuildProduct.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/module/process/task/build/model/TaskBuildProductQuery.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/module/process/task/build/service/TaskBuildProductService.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/module/process/toolkit/join/JoinOperation.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/module/process/toolkit/join/JoinTemplate.java diff --git a/dependencies/.flattened-pom.xml b/dependencies/.flattened-pom.xml index a095a90..43e087d 100644 --- a/dependencies/.flattened-pom.xml +++ b/dependencies/.flattened-pom.xml @@ -187,6 +187,11 @@ module-system-biz ${revision} + + cd.casic.boot + module-ci-commons + ${revision} + cd.casic.boot module-ci-process-api diff --git a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/engine/execute/PipelineDetails.java b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/engine/execute/PipelineDetails.java index 6bdec97..57d6615 100644 --- a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/engine/execute/PipelineDetails.java +++ b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/engine/execute/PipelineDetails.java @@ -5,10 +5,11 @@ import cd.casic.ci.commons.bean.engine.postprocess.Postprocess; import cd.casic.ci.commons.bean.process.definition.Variable; import cd.casic.ci.commons.bean.process.setting.Scm; import cd.casic.ci.commons.bean.process.stage.Stage; -import cd.casic.ci.commons.bean.work.agent.Agent; +import cd.casic.ci.commons.bean.work.agent.model.Agent; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import java.util.List; @@ -23,6 +24,7 @@ import java.util.List; @Builder @Accessors(chain = true) @AllArgsConstructor +@NoArgsConstructor public class PipelineDetails { // 应用数据保存地址 diff --git a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/engine/execute/PipelineRunMsg.java b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/engine/execute/PipelineRunMsg.java index e878b48..cbb8244 100644 --- a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/engine/execute/PipelineRunMsg.java +++ b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/engine/execute/PipelineRunMsg.java @@ -2,7 +2,7 @@ package cd.casic.ci.commons.bean.engine.execute; import cd.casic.ci.commons.bean.process.definition.Pipeline; -import cd.casic.ci.commons.bean.work.agent.Agent; +import cd.casic.ci.commons.bean.work.agent.model.Agent; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/order/Order.java b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/order/Order.java new file mode 100644 index 0000000..bacbfc5 --- /dev/null +++ b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/order/Order.java @@ -0,0 +1,12 @@ +package cd.casic.ci.commons.bean.order; + +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.io.Serializable; +@Data +@AllArgsConstructor +public class Order implements Serializable { + private String name; + private OrderTypeEnum orderType; +} \ No newline at end of file diff --git a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/order/OrderBuilder.java b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/order/OrderBuilder.java new file mode 100644 index 0000000..56b4b5f --- /dev/null +++ b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/order/OrderBuilder.java @@ -0,0 +1,22 @@ +package cd.casic.ci.commons.bean.order; + +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by FernFlower decompiler) +// + + +import java.io.Serializable; + +public class OrderBuilder implements Serializable { + public OrderBuilder() { + } + + public static Order asc(String propertyName) { + return new Order(propertyName, OrderTypeEnum.asc); + } + + public static Order desc(String propertyName) { + return new Order(propertyName, OrderTypeEnum.desc); + } +} diff --git a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/order/OrderBuilders.java b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/order/OrderBuilders.java new file mode 100644 index 0000000..53c4999 --- /dev/null +++ b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/order/OrderBuilders.java @@ -0,0 +1,30 @@ +package cd.casic.ci.commons.bean.order; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +public class OrderBuilders implements Serializable { + List orderParams = new ArrayList(); + + public OrderBuilders() { + } + + public static OrderBuilders instance() { + return new OrderBuilders(); + } + + public OrderBuilders asc(String name) { + this.orderParams.add(OrderBuilder.asc(name)); + return this; + } + + public OrderBuilders desc(String name) { + this.orderParams.add(OrderBuilder.desc(name)); + return this; + } + + public List get() { + return this.orderParams; + } +} diff --git a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/order/OrderTypeEnum.java b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/order/OrderTypeEnum.java new file mode 100644 index 0000000..a63430e --- /dev/null +++ b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/order/OrderTypeEnum.java @@ -0,0 +1,11 @@ +package cd.casic.ci.commons.bean.order; + +import java.io.Serializable; + +public enum OrderTypeEnum implements Serializable { + asc, + desc; + + private OrderTypeEnum() { + } +} \ No newline at end of file diff --git a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/definition/PipelineFollowQuery.java b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/definition/PipelineFollowQuery.java index ee9a9c0..d103357 100644 --- a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/definition/PipelineFollowQuery.java +++ b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/definition/PipelineFollowQuery.java @@ -1,6 +1,7 @@ package cd.casic.ci.commons.bean.process.definition; +import cd.casic.framework.commons.pojo.PageParam; import cn.hutool.db.Page; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/definition/PipelineQuery.java b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/definition/PipelineQuery.java index 018759c..36d1340 100644 --- a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/definition/PipelineQuery.java +++ b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/definition/PipelineQuery.java @@ -1,6 +1,7 @@ package cd.casic.ci.commons.bean.process.definition; +import cd.casic.framework.commons.pojo.PageParam; import cn.hutool.db.Page; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/definition/VariableQuery.java b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/definition/VariableQuery.java index f532a96..d95de23 100644 --- a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/definition/VariableQuery.java +++ b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/definition/VariableQuery.java @@ -1,5 +1,6 @@ package cd.casic.ci.commons.bean.process.definition; +import cd.casic.framework.commons.pojo.PageParam; import cn.hutool.db.Page; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/instance/PipelineInstanceQuery.java b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/instance/PipelineInstanceQuery.java index 2e85865..22deffc 100644 --- a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/instance/PipelineInstanceQuery.java +++ b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/instance/PipelineInstanceQuery.java @@ -1,6 +1,7 @@ package cd.casic.ci.commons.bean.process.instance; import cd.casic.ci.commons.bean.process.definition.Pipeline; +import cd.casic.framework.commons.pojo.PageParam; import cn.hutool.db.Page; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/setting/ScmQuery.java b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/setting/ScmQuery.java index e0ee193..81aee27 100644 --- a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/setting/ScmQuery.java +++ b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/setting/ScmQuery.java @@ -1,6 +1,7 @@ package cd.casic.ci.commons.bean.process.setting; +import cd.casic.framework.commons.pojo.PageParam; import cn.hutool.db.Page; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/stage/StageInstanceQuery.java b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/stage/StageInstanceQuery.java index efcb6f8..feb89f7 100644 --- a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/stage/StageInstanceQuery.java +++ b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/stage/StageInstanceQuery.java @@ -1,6 +1,7 @@ package cd.casic.ci.commons.bean.process.stage; +import cd.casic.framework.commons.pojo.PageParam; import cn.hutool.db.Page; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/work/agent/Agent.java b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/work/agent/Agent.java deleted file mode 100644 index 4d3ebe0..0000000 --- a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/work/agent/Agent.java +++ /dev/null @@ -1,10 +0,0 @@ -package cd.casic.ci.commons.bean.work.agent; - -/** - * @author by mianbin - * @Classname Agent - * @Description agent 信息,先放着 - * @Date 2025/4/22 9:05 - */ -public class Agent { -} diff --git a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/work/agent/AgentMessage.java b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/work/agent/AgentMessage.java new file mode 100644 index 0000000..a9de9df --- /dev/null +++ b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/work/agent/AgentMessage.java @@ -0,0 +1,44 @@ +package cd.casic.ci.commons.bean.work.agent; + +public class AgentMessage { + + private String type; + + private Object message; + + private String pipelineId; + + private String tenantId; + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getPipelineId() { + return pipelineId; + } + + public void setPipelineId(String pipelineId) { + this.pipelineId = pipelineId; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public Object getMessage() { + return message; + } + + public void setMessage(Object message) { + this.message = message; + } +} diff --git a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/work/agent/AgentQuery.java b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/work/agent/AgentQuery.java new file mode 100644 index 0000000..7d229c5 --- /dev/null +++ b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/work/agent/AgentQuery.java @@ -0,0 +1,27 @@ +package cd.casic.ci.commons.bean.work.agent; + + + +import cd.casic.ci.commons.bean.order.Order; +import cd.casic.ci.commons.bean.order.OrderBuilders; +import cd.casic.framework.commons.pojo.PageParam; + +import java.util.List; + +public class AgentQuery{ + + private String name; + + private String ip; + + private String tenantId; + + private String address; + + private String businessType; + + private PageParam pageParam= new PageParam(); + + private List orderParams = OrderBuilders.instance().desc("createTime").get(); + +} diff --git a/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/work/agent/model/Agent.java b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/work/agent/model/Agent.java new file mode 100644 index 0000000..301a4d0 --- /dev/null +++ b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/work/agent/model/Agent.java @@ -0,0 +1,28 @@ +package cd.casic.ci.commons.bean.work.agent.model; + +import lombok.Data; + +/** + * @author by mianbin + * @Classname Agent + * @Description agent 信息,先放着 + * @Date 2025/4/22 9:05 + */ +@Data +public class Agent { + private String id; + + private String name; + + private String ip; + + private String tenantId; + + private String address; + + private String businessType; + + private String createTime; + + private Boolean isConnect; +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/convert/setting/ScmConvert.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/convert/setting/ScmConvert.java index 35d2ee5..e79fb54 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/convert/setting/ScmConvert.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/convert/setting/ScmConvert.java @@ -18,10 +18,10 @@ public interface ScmConvert { ScmConvert INSTANCE = Mappers.getMapper(ScmConvert.class); ScmDo convert(ScmDo scmDo); - - ScmDo convertDo(ScmDo scmDo); +// TODO 同下 +// ScmDo convertDo(ScmDo scmDo); List convertList(List scmDos); - - List convertDoList(List scmDos); +// TODO 重复了 +// List convertDoList(List scmDos); } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/engine/execute/PipelineExecService.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/engine/execute/PipelineExecService.java index f7545d7..85d3eb2 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/engine/execute/PipelineExecService.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/engine/execute/PipelineExecService.java @@ -17,13 +17,13 @@ public interface PipelineExecService { */ PipelineInstance start(PipelineRunMsg runMsg); - /** - * 回滚构建 - * - * @param runMsg 流水线id - * @return 开始构建(true:开始运行 false:正在运行) - */ - PipelineInstance rollBackStart(PipelineRunMsg runMsg); +// /** +// * 回滚构建 +// * +// * @param runMsg 流水线id +// * @return 开始构建(true:开始运行 false:正在运行) +// */ +// PipelineInstance rollBackStart(PipelineRunMsg runMsg); /** * 停止流水线运行 diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/engine/execute/impl/PipelineExecServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/engine/execute/impl/PipelineExecServiceImpl.java index 7aae0f8..7211dc0 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/engine/execute/impl/PipelineExecServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/engine/execute/impl/PipelineExecServiceImpl.java @@ -3,17 +3,21 @@ package cd.casic.module.process.engine.execute.impl; import cd.casic.ci.commons.bean.engine.execute.PipelineDetails; import cd.casic.ci.commons.bean.engine.execute.PipelineRunMsg; import cd.casic.ci.commons.bean.engine.postprocess.Postprocess; -import cd.casic.ci.commons.bean.exception.ApplicationException; -import cd.casic.ci.commons.bean.exception.SystemException; import cd.casic.ci.commons.bean.process.definition.Pipeline; import cd.casic.ci.commons.bean.process.definition.Variable; import cd.casic.ci.commons.bean.process.instance.PipelineInstance; import cd.casic.ci.commons.bean.process.instance.PipelineInstanceQuery; +import cd.casic.ci.commons.bean.process.setting.Scm; import cd.casic.ci.commons.bean.process.stage.Stage; -import cd.casic.ci.commons.bean.work.agent.Agent; +import cd.casic.ci.commons.bean.work.agent.model.Agent; +import cd.casic.ci.commons.bean.work.agent.AgentMessage; +import cd.casic.framework.commons.exception.ServiceException; +import cd.casic.framework.commons.exception.enums.GlobalErrorCodeConstants; import cd.casic.module.process.engine.execute.PipelineExecService; + import cd.casic.module.process.engine.postprocess.PostprocessExecService; import cd.casic.module.process.engine.task.TasksExecService; +import cd.casic.module.process.pipeline.instance.service.PipelineInstanceServiceImpl; import cd.casic.module.process.process.definition.PipelineService; import cd.casic.module.process.process.definition.VariableService; import cd.casic.module.process.process.instance.PipelineInstanceService; @@ -21,6 +25,12 @@ import cd.casic.module.process.process.setting.ResourcesService; import cd.casic.module.process.process.setting.ScmService; import cd.casic.module.process.process.stage.StageExecService; import cd.casic.module.process.process.stage.StageService; +import cd.casic.module.process.support.agent.service.AgentService; +import cd.casic.module.process.support.disk.service.DiskService; +import cd.casic.module.process.support.home.PipelineVersionService; +import cd.casic.module.process.support.util.PipelineUtilService; +import cd.casic.module.process.support.util.util.PipelineFinal; +import cd.casic.module.process.toolkit.join.JoinTemplate; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -32,14 +42,12 @@ import java.util.List; import java.util.Map; import java.util.Objects; -import static cd.casic.ci.commons.bean.commons.PipelineConstants.RUN_HALT; -import static cd.casic.ci.commons.bean.commons.PipelineConstants.RUN_RUN; - - /** * 流水线运行服务 */ @Service +// 这个注解含义不明 +//@Exporter public class PipelineExecServiceImpl implements PipelineExecService { @Autowired @@ -84,60 +92,41 @@ public class PipelineExecServiceImpl implements PipelineExecService { @Autowired AgentService agentService; - @Autowired - PipelineHomeService homeService; - - @Autowired - TaskBuildProductService taskBuildProductService; - public final Logger logger = LoggerFactory.getLogger(PipelineExecServiceImpl.class); //流水线id:流水线实例id - public static final Map pipelineIdOrInstanceId = new HashMap<>(); + public static final Map pipelineIdOrInstanceId = new HashMap<>(); //流水线id:agent - public static final Map pipelineIdOrAgentId = new HashMap<>(); + public static final Map pipelineIdOrAgentId = new HashMap<>(); /** * 流水线开始运行 - * * @param runMsg 流水线id * @return 是否正在运行 */ @Override public PipelineInstance start(PipelineRunMsg runMsg) { - - Boolean permissions = homeService.findPermissions(runMsg.getPipelineId(), PIPELINE_RUN_KEY); - if (!permissions) { - throw new ApplicationException("您没有权限执行该流水线,请联系管理员授权!"); - } - Agent agent; - if (StringUtils.isEmpty(runMsg.getAgentId())) { + if (StringUtils.isEmpty(runMsg.getAgentId())){ agent = agentService.findDefaultAgent(); - } else { + }else { agent = agentService.findAgent(runMsg.getAgentId()); } - if (Objects.isNull(agent)) { - throw new ApplicationException("无法获取到流水线执行Agent!"); + if (Objects.isNull(agent)){ + throw new ServiceException(GlobalErrorCodeConstants.LOCKED.getCode(),"无法获取到流水线执行Agent!"); } - - WebSocketSession session = SocketServerHandler.sessionMap.get(agent.getAddress()); - if (Objects.isNull(session)) { - throw new ApplicationException("流水线Agent断开连接,无法执行。"); - } - - // 判断同一任务是否在运行 +// TODO 需要引入新依赖,是重写还是直接引入 +// WebSocketSession session = SocketServerHandler.sessionMap.get(agent.getAddress()); +// if (Objects.isNull(session)){ +// throw new ApplicationException("流水线Agent断开连接,无法执行。"); +// } +// +// // 判断同一任务是否在运行 Pipeline pipeline = validExecPipeline(runMsg); - String pipelineId = pipeline.getId(); - - List strings = stageService.validStagesMustField(pipelineId); - if (!Objects.isNull(strings) && !strings.isEmpty()) { - throw new ApplicationException("流水线未配置完成,请完善配置后在执行。"); - } - - pipelineIdOrAgentId.put(pipelineId, agent); +// String pipelineId = pipeline.getId(); +// pipelineIdOrAgentId.put(pipelineId, agent); // 判断磁盘空间是否足够 diskService.validationStorageSpace(); @@ -151,64 +140,17 @@ public class PipelineExecServiceImpl implements PipelineExecService { return beginExecPipeline(runMsg); } - @Override - public PipelineInstance rollBackStart(PipelineRunMsg runMsg) { - - Boolean permissions = homeService.findPermissions(runMsg.getPipelineId(), PIPELINE_RUN_KEY); - if (!permissions) { - throw new ApplicationException("您没有权限执行该流水线,请联系管理员授权!"); - } - - Agent agent; - if (StringUtils.isEmpty(runMsg.getAgentId())) { - agent = agentService.findDefaultAgent(); - } else { - agent = agentService.findAgent(runMsg.getAgentId()); - } - if (Objects.isNull(agent)) { - throw new ApplicationException("无法获取到流水线执行Agent!"); - } - - WebSocketSession session = SocketServerHandler.sessionMap.get(agent.getAddress()); - if (Objects.isNull(session)) { - throw new ApplicationException("流水线Agent断开连接,无法执行。"); - } - - // 判断同一任务是否在运行 - Pipeline pipeline = validExecPipeline(runMsg); - String pipelineId = pipeline.getId(); - - List strings = stageService.validStagesMustField(pipelineId); - if (!Objects.isNull(strings) && !strings.isEmpty()) { - throw new ApplicationException("流水线未配置完成,请完善配置后在执行。"); - } - - pipelineIdOrAgentId.put(pipelineId, agent); - - // 判断磁盘空间是否足够 - diskService.validationStorageSpace(); - - // 资源限制 - resourcesService.judgeResources(); - - // 进入执行 - runMsg.setPipeline(pipeline); - runMsg.setAgent(agent); - return rollBackBeginExecPipeline(runMsg); - } - /** * 放入正在执行的流水线缓存中 - * * @param runMsg 流水线id * @return 流水线信息 */ - public Pipeline validExecPipeline(PipelineRunMsg runMsg) { + public Pipeline validExecPipeline(PipelineRunMsg runMsg){ String pipelineId = runMsg.getPipelineId(); List allMainStage = stageService.findAllMainStage(pipelineId); - if (allMainStage.isEmpty()) { - throw new ApplicationException(2000, "当前流水线不存在可构建任务!"); + if (allMainStage.isEmpty()){ + throw new ServiceException(GlobalErrorCodeConstants.LOCKED.getCode(),"当前流水线不存在可构建任务!"); } Boolean isVip = versionService.isVip(); @@ -218,31 +160,31 @@ public class PipelineExecServiceImpl implements PipelineExecService { int size = pipelineIdOrInstanceId.size(); // 资源限制放入缓存中等待执行 - if ((!isVip && size >= 2) || (isVip && size >= 4)) { - throw new ApplicationException(2000, "并行任务已满,等待执行!"); + if ((!isVip && size >= 2) || (isVip && size >= 4) ){ + throw new ServiceException(GlobalErrorCodeConstants.LOCKED.getCode(),"并行任务已满,等待执行!"); } return pipeline; } /** * 执行流水线 - * * @param runMsg 流水线信息 * @return 流水线实例 */ - public PipelineInstance beginExecPipeline(PipelineRunMsg runMsg) { + public PipelineInstance beginExecPipeline(PipelineRunMsg runMsg){ String pipelineId = runMsg.getPipelineId(); Pipeline pipeline = pipelineService.findPipelineById(pipelineId); pipeline.setState(2); pipelineService.updatePipeline(pipeline); runMsg.setPipeline(pipeline); - logger.info("流水线{}开始运行", pipeline.getName()); + logger.info("流水线{}开始运行",pipeline.getName()); PipelineInstance pipelineInstance = pipelineInstanceService.initializeInstance(runMsg); // 添加到缓存 String instanceId = pipelineInstance.getInstanceId(); pipelineInstanceService.instanceRuntime(pipelineInstance.getInstanceId()); joinTemplate.joinQuery(pipelineInstance); + // 运行实例放入内存中 pipelineIdOrInstanceId.put(pipelineId, instanceId); @@ -267,11 +209,15 @@ public class PipelineExecServiceImpl implements PipelineExecService { pipelineDetails.setPostprocessList(postprocessList); // 数据路径,源码,日志保存 - String sourceDir = utilService.findPipelineDefaultAddress(pipelineId, 1); - String logDir = utilService.findPipelineDefaultAddress(pipelineId, 2); + String sourceDir = utilService.findPipelineDefaultAddress(pipelineId,1); + String logDir = utilService.findPipelineDefaultAddress(pipelineId,2); pipelineDetails.setSourceDir(sourceDir); pipelineDetails.setLogDir(logDir); + // 环境 + List scmList = scmService.findAllPipelineScm(); + pipelineDetails.setScmList(scmList); + // 变量 List variableList = variableService.findAllVariable(pipelineId); pipelineDetails.setVariableList(variableList); @@ -284,133 +230,40 @@ public class PipelineExecServiceImpl implements PipelineExecService { Agent agent = pipelineDetails.getAgent(); String id = agent.getAddress(); - - WebSocketSession session = SocketServerHandler.sessionMap.get(id); - if (Objects.isNull(session)) { - throw new SystemException("客户端推送消息失败,无法获取客户端连接,客户端信息:" + id); - } - - try { - logger.info("发送流水线执行信息到客户端......"); - SocketServerHandler.instance().sendHandleMessage(id, agentMessage); - } catch (Exception e) { - throw new SystemException("客户端推送消息失败,错误信息:" + e.getMessage()); - } - } catch (Exception e) { - e.printStackTrace(); - logger.error("流水线执行出错了:{}", e.getMessage()); - stop(pipelineId); - } - return pipelineInstance; - } - - /** - * 执行回滚流水线 - * - * @param runMsg 流水线信息 - * @return 流水线实例 - */ - public PipelineInstance rollBackBeginExecPipeline(PipelineRunMsg runMsg) { - String pipelineId = runMsg.getPipelineId(); - - String rollBackInstanceId = runMsg.getInstanceId(); - TaskBuildProductQuery productQuery = new TaskBuildProductQuery(); - productQuery.setInstanceId(rollBackInstanceId); - List buildProductList = taskBuildProductService.findBuildProductList(productQuery); - if (buildProductList.isEmpty()) { - throw new ApplicationException("无法获取到部署文件,回滚失败!"); - } - - Pipeline pipeline = pipelineService.findPipelineById(pipelineId); - pipeline.setState(2); - pipelineService.updatePipeline(pipeline); - runMsg.setPipeline(pipeline); - - TaskBuildProduct taskBuildProduct = buildProductList.get(0); - - logger.info("流水线{}开始运行", pipeline.getName()); - PipelineInstance pipelineInstance = pipelineInstanceService.initializeInstance(runMsg); - // 添加到缓存 - String instanceId = pipelineInstance.getInstanceId(); - pipelineInstanceService.instanceRuntime(pipelineInstance.getInstanceId()); - joinTemplate.joinQuery(pipelineInstance); - - // 运行实例放入内存中 - pipelineIdOrInstanceId.put(pipelineId, instanceId); - - try { - // 创建多阶段运行实例 - List stageList = stageExecService.createRollBackStageExecInstance(pipelineId, instanceId); - - List postprocessList = postExecService.createPipelinePostInstance(pipelineId, instanceId); - PipelineDetails pipelineDetails = new PipelineDetails(); - pipelineDetails.setTaskBuildProduct(taskBuildProduct); - - // 流水线基本运行信息 - pipelineDetails.setPipelineId(pipelineId); - pipelineDetails.setInstanceId(instanceId); - pipelineDetails.setRunWay(runMsg.getRunWay()); - pipelineDetails.setAgent(runMsg.getAgent()); - - // 流水线运行任务 - pipelineDetails.setStageList(stageList); - - // 流水线后置处理 - pipelineDetails.setPostprocessList(postprocessList); - - // 数据路径,源码,日志保存 - String sourceDir = utilService.findPipelineDefaultAddress(pipelineId, 1); - String logDir = utilService.findPipelineDefaultAddress(pipelineId, 2); - pipelineDetails.setSourceDir(sourceDir); - pipelineDetails.setLogDir(logDir); - - // 变量 - List variableList = variableService.findAllVariable(pipelineId); - pipelineDetails.setVariableList(variableList); - - AgentMessage agentMessage = new AgentMessage(); - agentMessage.setType("exec"); - agentMessage.setMessage(pipelineDetails); - agentMessage.setPipelineId(pipelineId); - - Agent agent = pipelineDetails.getAgent(); - - String id = agent.getAddress(); - - WebSocketSession session = SocketServerHandler.sessionMap.get(id); - if (Objects.isNull(session)) { - throw new SystemException("客户端推送消息失败,无法获取客户端连接,客户端信息:" + id); - } - - try { - logger.info("发送流水线执行信息到客户端......"); - SocketServerHandler.instance().sendHandleMessage(id, agentMessage); - } catch (Exception e) { - throw new SystemException("客户端推送消息失败,错误信息:" + e.getMessage()); - } - } catch (Exception e) { - logger.error("流水线执行出错了:{}", e.getMessage()); + // TODO 看看是否需要换个实现 +// WebSocketSession session = SocketServerHandler.sessionMap.get(id); +// if (Objects.isNull(session)) { +// throw new SystemException("客户端推送消息失败,无法获取客户端连接,客户端信息:"+id); +// } +// +// try { +// SocketServerHandler.instance().sendHandleMessage(id,agentMessage); +// } catch (Exception e) { +// throw new SystemException("客户端推送消息失败,错误信息:" + e.getMessage()); +// } + }catch (Exception e){ + logger.error("流水线执行出错了:{}",e.getMessage() ); stop(pipelineId); } return pipelineInstance; } @Override - public void stop(String pipelineId) { + public void stop(String pipelineId){ Pipeline pipeline = pipelineService.findPipelineById(pipelineId); Agent agent = pipelineIdOrAgentId.get(pipelineId); - if (Objects.isNull(agent)) { + if (Objects.isNull(agent)){ pipeline.setState(1); pipelineService.updatePipeline(pipeline); PipelineInstanceQuery pipelineInstanceQuery = new PipelineInstanceQuery(); - pipelineInstanceQuery.setState(RUN_RUN); + pipelineInstanceQuery.setState(PipelineFinal.RUN_RUN); pipelineInstanceQuery.setPipelineId(pipelineId); List pipelineInstanceList = pipelineInstanceService.findPipelineInstanceList(pipelineInstanceQuery); for (PipelineInstance pipelineInstance : pipelineInstanceList) { String instanceId = pipelineInstance.getInstanceId(); - pipelineInstance.setRunStatus(RUN_HALT); + pipelineInstance.setRunStatus(PipelineFinal.RUN_HALT); int runtime = pipelineInstanceService.findInstanceRuntime(instanceId); pipelineInstance.setRunTime(runtime); pipelineInstanceService.updateInstance(pipelineInstance); @@ -424,8 +277,9 @@ public class PipelineExecServiceImpl implements PipelineExecService { agentMessage.setType("stop"); agentMessage.setMessage(pipelineId); agentMessage.setPipelineId(pipelineId); - SocketServerHandler.instance().sendHandleMessage(agent.getAddress(), agentMessage); - } catch (Exception e) { + // TODO 先放着 +// SocketServerHandler.instance().sendHandleMessage(agent.getAddress(),agentMessage); + }catch (Exception e){ logger.error(e.getMessage()); } @@ -437,20 +291,19 @@ public class PipelineExecServiceImpl implements PipelineExecService { pipelineService.updatePipeline(pipeline); PipelineInstanceQuery pipelineInstanceQuery = new PipelineInstanceQuery(); - pipelineInstanceQuery.setState(RUN_RUN); + pipelineInstanceQuery.setState(PipelineFinal.RUN_RUN); pipelineInstanceQuery.setPipelineId(pipelineId); List pipelineInstanceList = pipelineInstanceService.findPipelineInstanceList(pipelineInstanceQuery); for (PipelineInstance pipelineInstance : pipelineInstanceList) { - pipelineInstance.setRunStatus(RUN_HALT); + pipelineInstance.setRunStatus(PipelineFinal.RUN_HALT); int runtime = pipelineInstanceService.findInstanceRuntime(pipelineInstance.getInstanceId()); pipelineInstance.setRunTime(runtime); pipelineInstanceService.updateInstance(pipelineInstance); } removeExecCache(pipelineId); - } - public void removeExecCache(String pipelineId) { + public void removeExecCache(String pipelineId){ String instanceId = pipelineIdOrInstanceId.get(pipelineId); PipelineInstanceServiceImpl.runTimeMap.remove(instanceId); pipelineInstanceService.stopThread(instanceId); @@ -458,23 +311,24 @@ public class PipelineExecServiceImpl implements PipelineExecService { } @Override - public void keepOn(String pipelineId) { + public void keepOn(String pipelineId){ Agent agent = pipelineIdOrAgentId.get(pipelineId); String id = agent.getAddress(); AgentMessage agentMessage = new AgentMessage(); agentMessage.setType("keepOn"); agentMessage.setMessage(pipelineId); agentMessage.setPipelineId(pipelineId); - WebSocketSession session = SocketServerHandler.sessionMap.get(id); - if (Objects.isNull(session)) { - throw new SystemException("客户端推送消息失败,无法获取客户端连接,客户端信息:" + id); - } - - try { - SocketServerHandler.instance().sendHandleMessage(id, agentMessage); - } catch (Exception e) { - throw new SystemException("客户端推送消息失败,错误信息:" + e.getMessage()); - } + //TODO +// WebSocketSession session = SocketServerHandler.sessionMap.get(id); +// if (Objects.isNull(session)) { +// throw new SystemException("客户端推送消息失败,无法获取客户端连接,客户端信息:"+id); +// } +// +// try { +// SocketServerHandler.instance().sendHandleMessage(id,agentMessage); +// } catch (Exception e) { +// throw new SystemException("客户端推送消息失败,错误信息:" + e.getMessage()); +// } } } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/home/service/PipelineHomeService.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/home/service/PipelineHomeService.java new file mode 100644 index 0000000..0c7713c --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/home/service/PipelineHomeService.java @@ -0,0 +1,55 @@ +package cd.casic.module.process.home.service; + + + +import cd.casic.ci.commons.bean.process.definition.Pipeline; + +import java.util.List; +import java.util.Map; + +/** + * 流水线首页服务接口 + */ + +public interface PipelineHomeService { + + /** + * 创建日志 + * @param logType 日志类型 (创建 create,删除 delete,执行 exec,更新 update) + * @param map 日志信息 + */ + void log(String logType, Map map); + + + /** + * 配置全局消息 + * @param templateId 方案id + * @param map 信息 + */ + void settingMessage(String templateId, Map map); + + + /** + * 创建消息 + * @param receiver 接收信息 + * @param map 信息 + */ + void message(Map map, List receiver); + + /** + * 发送短信 + * @param map 短信内容 + */ + void smsMessage(Map map); + + /** + * 初始化消息,日志信息 + * @param pipeline 流水线 + * @return 信息 + */ + Map initMap(Pipeline pipeline); + + + + +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/pipeline/instance/service/PipelineInstanceServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/pipeline/instance/service/PipelineInstanceServiceImpl.java new file mode 100644 index 0000000..fac83c3 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/pipeline/instance/service/PipelineInstanceServiceImpl.java @@ -0,0 +1,158 @@ +package cd.casic.module.process.pipeline.instance.service; + +import cd.casic.ci.commons.bean.engine.execute.PipelineRunMsg; +import cd.casic.ci.commons.bean.process.definition.Pipeline; +import cd.casic.ci.commons.bean.process.instance.PipelineInstance; +import cd.casic.ci.commons.bean.process.instance.PipelineInstanceQuery; +import cd.casic.framework.commons.pojo.PageResult; +import cd.casic.module.process.engine.task.TasksInstanceService; +import cd.casic.module.process.process.instance.PipelineInstanceService; +import cd.casic.module.process.process.instance.dao.PipelineInstanceDao; +import cd.casic.module.process.process.stage.StageInstanceServer; +import cd.casic.module.process.support.util.PipelineUtilService; +import cd.casic.module.process.task.build.service.TaskBuildProductService; +import cd.casic.module.process.toolkit.join.JoinTemplate; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.File; +import java.util.*; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +/** + * 流水线实例服务 + */ +@Service +//@Exporter TODO +public class PipelineInstanceServiceImpl implements PipelineInstanceService { + public static final Map runTimeMap = new HashMap<>(); + + + @Override + public String createInstance(PipelineInstance pipelineInstance) { + return null; + } + + @Override + public void deleteAllInstance(String pipelineId) { + + } + + @Override + public PipelineInstance initializeInstance(PipelineRunMsg runMsg) { + return null; + } + + @Override + public void deleteInstance(String instanceId) { + + } + + @Override + public void updateInstance(PipelineInstance pipelineInstance) { + + } + + @Override + public PipelineInstance findOneInstance(String instanceId) { + return null; + } + + @Override + public PipelineInstance findLatelyInstance(String pipelineId) { + return null; + } + + @Override + public List findAllInstance() { + return null; + } + + @Override + public List findPipelineAllInstance(String pipelineId) { + return null; + } + + @Override + public List findUserPipelineInstance(String userId, Integer limit) { + return null; + } + + @Override + public String findRunInstanceId(String pipelineId) { + return null; + } + + @Override + public List findInstanceList(List idList) { + return null; + } + + @Override + public List findPipelineInstanceList(PipelineInstanceQuery pipelineInstanceQuery) { + return null; + } + + @Override + public PageResult findUserInstance(PipelineInstanceQuery pipelineInstanceQuery) { + return null; + } + + @Override + public PageResult findPipelineInstance(PipelineInstanceQuery query) { + return null; + } + + @Override + public List findInstanceByTime(String pipelineId, String[] queryTime) { + return null; + } + + @Override + public List findInstanceByTime(String[] queryTime) { + return null; + } + + @Override + public int findInstanceRuntime(String instanceId) { + return 0; + } + + @Override + public void instanceRuntime(String instanceId) { + + } + + @Override + public void stopThread(String threadName) { + + } +} + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/definition/dataobject/ConditionDo.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/definition/dataobject/ConditionDo.java index ca4b7de..ce0260e 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/definition/dataobject/ConditionDo.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/definition/dataobject/ConditionDo.java @@ -27,8 +27,8 @@ public class ConditionDo extends BaseDO { private String condName; private String taskId; - - private String createTime; +// todo +// private String createTime; private int condType; diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/instance/dataobject/PipelineInstanceDo.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/instance/dataobject/PipelineInstanceDo.java index 11f384e..7408c9b 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/instance/dataobject/PipelineInstanceDo.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/instance/dataobject/PipelineInstanceDo.java @@ -25,7 +25,9 @@ public class PipelineInstanceDo extends BaseDO { private String instanceId; //创建构建时间 - private String createTime; + // todo + +// private String createTime; //构建方式 private int runWay; diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/dao/EnvDao.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/dao/EnvDao.java index b927720..51f2281 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/dao/EnvDao.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/dao/EnvDao.java @@ -1,9 +1,17 @@ package cd.casic.module.process.process.setting.dao; +import cd.casic.ci.commons.bean.process.setting.Env; +import cd.casic.ci.commons.bean.process.setting.EnvQuery; +import cd.casic.framework.commons.pojo.PageResult; import cd.casic.framework.mybatis.core.mapper.BaseMapperX; import cd.casic.module.process.process.setting.dataobject.EnvDo; import org.apache.ibatis.annotations.Mapper; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + /** * @author by mianbin * @Classname EnvDao @@ -12,4 +20,28 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface EnvDao extends BaseMapperX { -} + public String creatEnv(Env env); + + public void updateEnv(Env env); + + + public void deleteEnv(String groupId); + + + public Env findOneEnv(String groupId); + + + public List findAllEnv(); + + + public List findEnvList(EnvQuery envQuery); + + + public PageResult findEnvPage(EnvQuery envQuery); + + + public List findAllEnvList(List idList); + + + public Integer findEnvNumber(); +} \ No newline at end of file diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/AuthThirdServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/AuthThirdServiceImpl.java index f8251d2..2879b25 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/AuthThirdServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/AuthThirdServiceImpl.java @@ -75,48 +75,73 @@ public class AuthThirdServiceImpl implements AuthThirdService { @Override public List findAuthServerList(AuthThirdQuery thirdQuery) { - List authThirdEntityList = authServerDao.findAuthServerList(thirdQuery); - List authThirds = BeanMapper.mapList(authThirdEntityList, AuthThird.class); - return authThirds; + return null; } @Override public PageResult findAuthServerPage(AuthThirdQuery thirdQuery) { - Pagination authThirdEntityPage = authServerDao.findAuthServerPage(thirdQuery); - - List dataList = authThirdEntityPage.getDataList(); - if (Objects.isNull(dataList)) { - return PaginationBuilder.build(authThirdEntityPage, Collections.emptyList()); - } - List authThirds = BeanMapper.mapList(dataList, AuthThird.class); - return PaginationBuilder.build(authThirdEntityPage, authThirds); + return null; } - /** - * 查询所有流水线授权 - * - * @return 流水线授权列表 - */ @Override public List findAllAuthServer() { - List allAuthServer = authServerDao.findAllAuthServer(); - if (Objects.isNull(allAuthServer)) { - return Collections.emptyList(); - } - List authThirds = BeanMapper.mapList(allAuthServer, AuthThird.class); - return authThirds; + return null; } @Override public List findAllAuthServerList(List idList) { - List allAuthServerList = authServerDao.findAllAuthServerList(idList); - return BeanMapper.mapList(allAuthServerList, AuthThird.class); + return null; } @Override public Integer findAuthServerNumber() { - return authServerDao.findAuthServerNumber(); + return null; } +//TODO 暂时简单处理 +// @Override +// public List findAuthServerList(AuthThirdQuery thirdQuery) { +// List authThirdEntityList = authServerDao.findAuthServerList(thirdQuery); +// List authThirds = BeanMapper.mapList(authThirdEntityList, AuthThird.class); +// return authThirds; +// } +// +// @Override +// public PageResult findAuthServerPage(AuthThirdQuery thirdQuery) { +// Pagination authThirdEntityPage = authServerDao.findAuthServerPage(thirdQuery); +// +// List dataList = authThirdEntityPage.getDataList(); +// if (Objects.isNull(dataList)) { +// return PaginationBuilder.build(authThirdEntityPage, Collections.emptyList()); +// } +// List authThirds = BeanMapper.mapList(dataList, AuthThird.class); +// return PaginationBuilder.build(authThirdEntityPage, authThirds); +// } +// +// /** +// * 查询所有流水线授权 +// * +// * @return 流水线授权列表 +// */ +// @Override +// public List findAllAuthServer() { +// List allAuthServer = authServerDao.findAllAuthServer(); +// if (Objects.isNull(allAuthServer)) { +// return Collections.emptyList(); +// } +// List authThirds = BeanMapper.mapList(allAuthServer, AuthThird.class); +// return authThirds; +// } +// +// @Override +// public List findAllAuthServerList(List idList) { +// List allAuthServerList = authServerDao.findAllAuthServerList(idList); +// return BeanMapper.mapList(allAuthServerList, AuthThird.class); +// } +// +// @Override +// public Integer findAuthServerNumber() { +// return authServerDao.findAuthServerNumber(); +// } } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/CacheServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/CacheServiceImpl.java index fc50bc5..8c448ff 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/CacheServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/CacheServiceImpl.java @@ -4,6 +4,7 @@ package cd.casic.module.process.process.setting.impl; import cd.casic.ci.commons.bean.process.setting.Cache; import cd.casic.module.process.process.setting.CacheService; import cd.casic.module.process.process.setting.dao.CacheDao; +import cd.casic.module.process.support.home.PipelineVersionService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -28,8 +29,10 @@ public class CacheServiceImpl implements CacheService { @Override public String createCathe(Cache cache){ - CacheEntity cacheEntity = BeanMapper.map(cache, CacheEntity.class); - return cacheDao.createCathe(cacheEntity); +// TODO 待迁移 +// CacheEntity cacheEntity = BeanMapper.map(cache, CacheEntity.class); +// return cacheDao.createCathe(cacheEntity); + return null; } @Override @@ -43,39 +46,44 @@ public class CacheServiceImpl implements CacheService { if (cache.getLogCache() == 0){ cache.setLogCache(oneCathe.getLogCache()); } - CacheEntity cacheEntity = BeanMapper.map(cache, CacheEntity.class); - cacheDao.updateCathe(cacheEntity); + // TODO 同上 +// CacheEntity cacheEntity = BeanMapper.map(cache, CacheEntity.class); +// cacheDao.updateCathe(cacheEntity); } @Override public void deleteCathe(String cacheId){ - cacheDao.deleteCathe(cacheId); + // TODO +// cacheDao.deleteCathe(cacheId); } @Override public Cache findCathe(String cacheId){ - CacheEntity cacheEntity = cacheDao.findCathe(cacheId); - return BeanMapper.map(cacheEntity, Cache.class); + // TODO 待迁移 +// CacheEntity cacheEntity = cacheDao.findCathe(cacheId); +// return BeanMapper.map(cacheEntity, Cache.class); + return null; } @Override public List findAllCathe(){ - List cacheEntityList = cacheDao.findAllCathe(); - if (Objects.isNull(cacheEntityList)){ - return Collections.emptyList(); - } - List caches = BeanMapper.mapList(cacheEntityList, Cache.class); - Cache cache = caches.get(0); - if (versionService.isVip()){ - return caches; - }else { - cache.setArtifactCache(DEFAULT_CLEAN_CACHE_DAY); - cache.setLogCache(DEFAULT_CLEAN_CACHE_DAY); - updateCathe(cache); - } + // TODO +// List cacheEntityList = cacheDao.findAllCathe(); +// if (Objects.isNull(cacheEntityList)){ +// return Collections.emptyList(); +// } +// List caches = BeanMapper.mapList(cacheEntityList, Cache.class); +// Cache cache = caches.get(0); +// if (versionService.isVip()){ +// return caches; +// }else { +// cache.setArtifactCache(DEFAULT_CLEAN_CACHE_DAY); +// cache.setLogCache(DEFAULT_CLEAN_CACHE_DAY); +// updateCathe(cache); +// } List cacheList = new ArrayList<>(); - cacheList.add(cache); +// cacheList.add(cache); return cacheList; } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/EnvServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/EnvServiceImpl.java index 64facdc..d37a4fd 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/EnvServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/EnvServiceImpl.java @@ -4,6 +4,7 @@ package cd.casic.module.process.process.setting.impl; import cd.casic.ci.commons.bean.process.setting.Env; import cd.casic.ci.commons.bean.process.setting.EnvQuery; import cd.casic.ci.commons.bean.utils.PipelineUtil; +import cd.casic.framework.commons.pojo.PageResult; import cd.casic.module.process.process.setting.EnvService; import cd.casic.module.process.process.setting.dao.EnvDao; import org.springframework.beans.factory.annotation.Autowired; @@ -51,10 +52,11 @@ public class EnvServiceImpl implements EnvService { } @Override - public Pagination findEnvPage(EnvQuery envQuery) { - Pagination envPage = envDao.findEnvPage(envQuery); - List dataList = envPage.getDataList(); - return PaginationBuilder.build(envPage,dataList); + public PageResult findEnvPage(EnvQuery envQuery) { +// Pagination envPage = envDao.findEnvPage(envQuery); +// List dataList = envPage.getDataList(); +// return PaginationBuilder.build(envPage,dataList); + return null; } @Override diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/GroupServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/GroupServiceImpl.java index 6dbd76f..0636cb3 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/GroupServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/GroupServiceImpl.java @@ -3,6 +3,7 @@ package cd.casic.module.process.process.setting.impl; import cd.casic.ci.commons.bean.process.setting.Group; import cd.casic.ci.commons.bean.process.setting.GroupQuery; import cd.casic.ci.commons.bean.utils.PipelineUtil; +import cd.casic.framework.commons.pojo.PageResult; import cd.casic.module.process.process.setting.GroupService; import cd.casic.module.process.process.setting.dao.GroupDao; import org.springframework.beans.factory.annotation.Autowired; @@ -16,57 +17,91 @@ public class GroupServiceImpl implements GroupService { @Autowired GroupDao groupDao; +// TODO 暂时简单处理 +// @Override +// public String createGroup(Group group) { +// group.setCreateTime(PipelineUtil.date(1)); +// return groupDao.creatGroup(group); +// } +// +// @Override +// public void updateGroup(Group group) { +// groupDao.updateGroup(group); +// } +// +// @Override +// public void deleteGroup(String groupId) { +// groupDao.deleteGroup(groupId); +// } +// +// @Override +// public Group findOneGroup(String groupId) { +// Group group = groupDao.findOneGroup(groupId); +// return group; +// } +// +// @Override +// public List findAllGroup() { +// return groupDao.findAllGroup(); +// } +// +// @Override +// public List findGroupList(GroupQuery groupQuery) { +// List groupList = groupDao.findGroupList(groupQuery); +// return groupList; +// } @Override public String createGroup(Group group) { - group.setCreateTime(PipelineUtil.date(1)); - return groupDao.creatGroup(group); + return null; } @Override public void updateGroup(Group group) { - groupDao.updateGroup(group); + } @Override public void deleteGroup(String groupId) { - groupDao.deleteGroup(groupId); + } @Override public Group findOneGroup(String groupId) { - Group group = groupDao.findOneGroup(groupId); - return group; + return null; } @Override public List findAllGroup() { - return groupDao.findAllGroup(); + return null; } @Override public List findGroupList(GroupQuery groupQuery) { - List groupList = groupDao.findGroupList(groupQuery); - return groupList; + return null; } @Override - public Pagination findGroupPage(GroupQuery groupQuery) { - Pagination groupPage = groupDao.findGroupPage(groupQuery); - List dataList = groupPage.getDataList(); - return PaginationBuilder.build(groupPage,dataList); + public PageResult findGroupPage(GroupQuery groupQuery) { +// PageResult groupPage = groupDao.findGroupPage(groupQuery); +// List dataList = groupPage.getDataList(); +// return PaginationBuilder.build(groupPage,dataList); + //TODO + return null; } @Override public List findAllGroupList(List idList) { - List groupList = groupDao.findAllGroupList(idList); - return groupList; +// List groupList = groupDao.findAllGroupList(idList); +// return groupList; + return null; } @Override public Integer findGroupNumber() { - return groupDao.findGroupNumber(); +// return groupDao.findGroupNumber(); + return null; } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/ResourcesServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/ResourcesServiceImpl.java index fc64989..7ae3e9f 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/ResourcesServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/ResourcesServiceImpl.java @@ -10,6 +10,7 @@ import cd.casic.ci.commons.bean.utils.PipelineUtil; import cd.casic.module.process.process.definition.dao.PipelineDao; import cd.casic.module.process.process.setting.ResourcesService; import cd.casic.module.process.process.setting.dao.ResourcesDao; +import cd.casic.module.process.support.util.PipelineUtilService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -33,31 +34,31 @@ public class ResourcesServiceImpl implements ResourcesService { @Override public void instanceResources(int time){ - - if (time == 0){ - time = 1; - } - String date = PipelineUtil.date(2); - Time dataTime = TimeConfig.findDataTime(date); - String beginTime = dataTime.getMonthBeginTime(); - String endTime = dataTime.getMonthEndTime(); - Resources resources = resourcesDao.findResources(beginTime,endTime); - if (Objects.nonNull(resources)){ - int structureNumber = resources.getUseSceNumber(); - resources.setUseSceNumber(structureNumber+time); - resources.setMonth(dataTime.getMonth()); - updateResources(resources); - }else { - resources = new Resources(); - resources.setUseSceNumber(time); - resources.setMonth(dataTime.getMonth()); - resources.setBeginTime(beginTime); - resources.setEndTime(endTime); - String resourcesId = createResources(resources); - if (Objects.isNull(resourcesId)){ - throw new ApplicationException("创建资源信息失败!"); - } - } +//TODO +// if (time == 0){ +// time = 1; +// } +// String date = PipelineUtil.date(2); +// Time dataTime = TimeConfig.findDataTime(date); +// String beginTime = dataTime.getMonthBeginTime(); +// String endTime = dataTime.getMonthEndTime(); +// Resources resources = resourcesDao.findResources(beginTime,endTime); +// if (Objects.nonNull(resources)){ +// int structureNumber = resources.getUseSceNumber(); +// resources.setUseSceNumber(structureNumber+time); +// resources.setMonth(dataTime.getMonth()); +// updateResources(resources); +// }else { +// resources = new Resources(); +// resources.setUseSceNumber(time); +// resources.setMonth(dataTime.getMonth()); +// resources.setBeginTime(beginTime); +// resources.setEndTime(endTime); +// String resourcesId = createResources(resources); +// if (Objects.isNull(resourcesId)){ +// throw new ApplicationException("创建资源信息失败!"); +// } +// } } @Override @@ -82,43 +83,50 @@ public class ResourcesServiceImpl implements ResourcesService { @Override public String createResources(Resources resources){ - return resourcesDao.createResources(resources); +// return resourcesDao.createResources(resources); + return null; } @Override public void updateResources(Resources resources){ - resourcesDao.updateResources(resources); +// resourcesDao.updateResources(resources); } @Override public void deleteResources(String resourcesId){ - resourcesDao.deleteResources(resourcesId); +// resourcesDao.deleteResources(resourcesId); } @Override public Resources findOneResources(String resourcesId){ - return resourcesDao.findOneResources(resourcesId); +// return resourcesDao.findOneResources(resourcesId); + return null; + } @Override public List findAllResources(){ - List allResources = resourcesDao.findAllResources(); - if (allResources == null || allResources.isEmpty()){ - return Collections.emptyList(); - } - return resourcesDao.findAllResources(); +// List allResources = resourcesDao.findAllResources(); +// if (allResources == null || allResources.isEmpty()){ +// return Collections.emptyList(); +// } +// return resourcesDao.findAllResources(); + return null; + } @Override public Resources findResourcesList(){ - PipelineQuery pipelineQuery = new PipelineQuery(); - pipelineQuery.setPipelineState(2); - List pipelineList = pipelineDao.findPipelineList(pipelineQuery); - int number = pipelineList.size(); +// PipelineQuery pipelineQuery = new PipelineQuery(); +// pipelineQuery.setPipelineState(2); +// List pipelineList = pipelineDao.findPipelineList(pipelineQuery); +// int number = pipelineList.size(); +// +// Resources resources = notVipResources(number); +// resources.setVersion(1); +// return resources; + return null; - Resources resources = notVipResources(number); - resources.setVersion(1); - return resources; } private static final int notVipExecNumber = 2; @@ -169,69 +177,73 @@ public class ResourcesServiceImpl implements ResourcesService { @Override public ResourcesDetails findResourcesDetails(String type){ - ResourcesDetails resourcesDetails = new ResourcesDetails(); - - switch(type) { - case "disk" ->{ - String codeAddress = utilService.instanceAddress(1); - String logAddress = utilService.instanceAddress(2); - resourcesDetails.setArtifactCache(findDirSize(logAddress)+""); - resourcesDetails.setSourceCache(findDirSize(codeAddress)+""); - } - case "run" ->{ - PipelineQuery pipelineQuery = new PipelineQuery(); - pipelineQuery.setPipelineState(2); - List list = new ArrayList<>(); - List pipelineList = pipelineDao.findPipelineList(pipelineQuery); - if (pipelineList.isEmpty()){ - resourcesDetails.setList(list); - break; - } - for (PipelineEntity pipelineEntity : pipelineList) { - list.add(pipelineEntity.getName()); - } - resourcesDetails.setList(list); - } - } - return resourcesDetails; +// ResourcesDetails resourcesDetails = new ResourcesDetails(); +// +// switch(type) { +// case "disk" ->{ +// String codeAddress = utilService.instanceAddress(1); +// String logAddress = utilService.instanceAddress(2); +// resourcesDetails.setArtifactCache(findDirSize(logAddress)+""); +// resourcesDetails.setSourceCache(findDirSize(codeAddress)+""); +// } +// case "run" ->{ +// PipelineQuery pipelineQuery = new PipelineQuery(); +// pipelineQuery.setPipelineState(2); +// List list = new ArrayList<>(); +// List pipelineList = pipelineDao.findPipelineList(pipelineQuery); +// if (pipelineList.isEmpty()){ +// resourcesDetails.setList(list); +// break; +// } +// for (PipelineEntity pipelineEntity : pipelineList) { +// list.add(pipelineEntity.getName()); +// } +// resourcesDetails.setList(list); +// } +// } +// return resourcesDetails; + return null; } - public double findDirSize(String dir){ - File file = new File(dir); - if (!file.exists()){ - return 0; - } - long bytes = FileUtils.sizeOfDirectory(file); - return Math.round((float) (((bytes / 1024) / 1024) * 100) /1024)/100.0 ; + public Double findDirSize(String dir){ +// File file = new File(dir); +// if (!file.exists()){ +// return 0; +// } +// long bytes = FileUtils.sizeOfDirectory(file); +// return Math.round((float) (((bytes / 1024) / 1024) * 100) /1024)/100.0 ; + return null; } /** * 获取文件大小 * @return 文件大小,保留两位小数点 */ - public double getSize() { - String codeAddress = utilService.instanceAddress(1); - String logAddress = utilService.instanceAddress(2); - File codeFile = new File(codeAddress); + public Double getSize() { +// String codeAddress = utilService.instanceAddress(1); +// String logAddress = utilService.instanceAddress(2); +// File codeFile = new File(codeAddress); +// +// if (!codeFile.exists()){ +// return 0; +// } +// +// +// +// long codeBytes = FileUtils.sizeOfDirectory(codeFile); +// +// double codeSize = Math.round((float) (((codeBytes / 1024) / 1024) * 100) /1024)/100.0 ; +// +// File logFile = new File(logAddress); +// if (!logFile.exists()){ +// return codeSize; +// } +// +// long logBytes = FileUtils.sizeOfDirectory(logFile); +// double logSize = Math.round((float) (((logBytes / 1024) / 1024) * 100) /1024)/100.0 ; +// return codeSize + logSize; + return null; - if (!codeFile.exists()){ - return 0; - } - - - - long codeBytes = FileUtils.sizeOfDirectory(codeFile); - - double codeSize = Math.round((float) (((codeBytes / 1024) / 1024) * 100) /1024)/100.0 ; - - File logFile = new File(logAddress); - if (!logFile.exists()){ - return codeSize; - } - - long logBytes = FileUtils.sizeOfDirectory(logFile); - double logSize = Math.round((float) (((logBytes / 1024) / 1024) * 100) /1024)/100.0 ; - return codeSize + logSize; } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/ScmServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/ScmServiceImpl.java index 76ec5bc..c44c1e2 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/ScmServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/ScmServiceImpl.java @@ -3,6 +3,7 @@ package cd.casic.module.process.process.setting.impl; import cd.casic.ci.commons.bean.process.setting.Scm; import cd.casic.ci.commons.bean.process.setting.ScmQuery; +import cd.casic.framework.commons.pojo.PageResult; import cd.casic.module.process.process.setting.ScmService; import cd.casic.module.process.process.setting.dao.ScmDao; import org.springframework.beans.factory.annotation.Autowired; @@ -22,84 +23,91 @@ public class ScmServiceImpl implements ScmService { @Override public String createPipelineScm(Scm scm) { - String scmType = scm.getScmType(); - String scmAddress = scm.getScmAddress(); - String jdkAddress = PipelineUtil.validFile(scmAddress, scmType); - - ScmEntity scmEntity = BeanMapper.map(scm, ScmEntity.class); - return scmDao.createPipelineScm(scmEntity); +// String scmType = scm.getScmType(); +// String scmAddress = scm.getScmAddress(); +// String jdkAddress = PipelineUtil.validFile(scmAddress, scmType); +// +// ScmEntity scmEntity = BeanMapper.map(scm, ScmEntity.class); +// return scmDao.createPipelineScm(scmEntity); + return null; } //删除 @Override public void deletePipelineScm(String pathId) { - scmDao.deletePipelineScm(pathId); +// scmDao.deletePipelineScm(pathId); } //更新 @Override public void updatePipelineScm(Scm scm) { - String scmType = scm.getScmType(); - String scmAddress = scm.getScmAddress(); - PipelineUtil.validFile(scmAddress, scmType); - if (scmType.equals(TASK_TOOL_TYPE_NODEJS)) { - PipelineUtil.validFile(scmAddress, TASK_TOOL_TYPE_NPM); - } - - if (scm.getScmId()==null || findOnePipelineScm(scm.getScmId())==null){ - createPipelineScm(scm); - return; - } - scmDao.updatePipelineScm(BeanMapper.map(scm, ScmEntity.class)); +// String scmType = scm.getScmType(); +// String scmAddress = scm.getScmAddress(); +// PipelineUtil.validFile(scmAddress, scmType); +// if (scmType.equals(TASK_TOOL_TYPE_NODEJS)) { +// PipelineUtil.validFile(scmAddress, TASK_TOOL_TYPE_NPM); +// } +// +// if (scm.getScmId()==null || findOnePipelineScm(scm.getScmId())==null){ +// createPipelineScm(scm); +// return; +// } +// scmDao.updatePipelineScm(BeanMapper.map(scm, ScmEntity.class)); } //查询 @Override public Scm findOnePipelineScm(String pathId) { - ScmEntity scmEntity = scmDao.findOnePipelineScm(pathId); - return BeanMapper.map(scmEntity, Scm.class); +// ScmEntity scmEntity = scmDao.findOnePipelineScm(pathId); +// return BeanMapper.map(scmEntity, Scm.class); + return null; } //查询所有 @Override public List findAllPipelineScm() { - List scmEntityList = scmDao.findAllPipelineScm(); - // scmEntityList.sort(Comparator.comparing(ScmEntity::getCreateTime)); - scmEntityList.sort(Comparator.comparing(ScmEntity::getScmType)); - return BeanMapper.mapList(scmEntityList, Scm.class); +// List scmEntityList = scmDao.findAllPipelineScm(); +// // scmEntityList.sort(Comparator.comparing(ScmEntity::getCreateTime)); +// scmEntityList.sort(Comparator.comparing(ScmEntity::getScmType)); +// return BeanMapper.mapList(scmEntityList, Scm.class); + return null; } @Override public List findPipelineScmList(List idList) { - List scmEntityList = scmDao.findPipelineScmList(idList); - return BeanMapper.mapList(scmEntityList, Scm.class); +// List scmEntityList = scmDao.findPipelineScmList(idList); +// return BeanMapper.mapList(scmEntityList, Scm.class); + return null; } @Override public List findPipelineScmList(ScmQuery scmQuery) { - List scmEntityList = scmDao.findPipelineScmList(scmQuery); - if (Objects.isNull(scmEntityList) || scmEntityList.isEmpty()) { - return Collections.emptyList(); - } - return BeanMapper.mapList(scmEntityList, Scm.class); +// List scmEntityList = scmDao.findPipelineScmList(scmQuery); +// if (Objects.isNull(scmEntityList) || scmEntityList.isEmpty()) { +// return Collections.emptyList(); +// } +// return BeanMapper.mapList(scmEntityList, Scm.class); + return null; } - @Override - public Pagination findPipelineScmPage(ScmQuery scmQuery) { - Pagination scmEntityPage = scmDao.findPipelineScmPage(scmQuery); - List scmEntityList = scmEntityPage.getDataList(); - if (Objects.isNull(scmEntityList) || scmEntityList.isEmpty()) { - return PaginationBuilder.build(scmEntityPage, Collections.emptyList()); - } - List scmList = BeanMapper.mapList(scmEntityList, Scm.class); - return PaginationBuilder.build(scmEntityPage, scmList); +// @Override + public PageResult findPipelineScmPage(ScmQuery scmQuery) { +// Pagination scmEntityPage = scmDao.findPipelineScmPage(scmQuery); +// List scmEntityList = scmEntityPage.getDataList(); +// if (Objects.isNull(scmEntityList) || scmEntityList.isEmpty()) { +// return PaginationBuilder.build(scmEntityPage, Collections.emptyList()); +// } +// List scmList = BeanMapper.mapList(scmEntityList, Scm.class); +// return PaginationBuilder.build(scmEntityPage, scmList); + return null; } @Override public Integer findScmNumber() { - return scmDao.findScmNumber(); +// return scmDao.findScmNumber(); + return null; } } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/SystemMassageServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/SystemMassageServiceImpl.java index 54209f9..0dd3afe 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/SystemMassageServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/setting/impl/SystemMassageServiceImpl.java @@ -2,6 +2,7 @@ package cd.casic.module.process.process.setting.impl; import cd.casic.ci.commons.bean.process.setting.SystemMassage; import cd.casic.module.process.process.setting.SystemMassageService; +import cd.casic.module.process.support.util.PipelineUtilService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/stage/dataobject/StageDo.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/stage/dataobject/StageDo.java index a2cedb1..9b8824c 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/stage/dataobject/StageDo.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/process/stage/dataobject/StageDo.java @@ -27,8 +27,8 @@ public class StageDo extends BaseDO { //阶段名称 private String stageName; - //创建配置时间 - private String createTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + //创建配置时间 TODO 和超类冲突 +// private String createTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); //流水线 private String pipelineId; diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/agent/service/AgentService.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/agent/service/AgentService.java new file mode 100644 index 0000000..20f54d4 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/agent/service/AgentService.java @@ -0,0 +1,76 @@ +package cd.casic.module.process.support.agent.service; + + + + + +import cd.casic.ci.commons.bean.work.agent.model.Agent; +import cd.casic.ci.commons.bean.work.agent.AgentQuery; +import cd.casic.framework.commons.pojo.PageResult; + +import java.util.List; + +public interface AgentService { + + /** + * 初始化默认环境 + * @param agent 环境 + */ + void initAgent(Agent agent) ; + + /** + * 创建环境 + * @param agent 环境信息 + * @return ID + */ + String createAgent(Agent agent) ; + + /** + * 更新环境 + * @param agent 环境信息 + */ + void updateAgent(Agent agent); + + /** + * 获取默认执行环境 + * @return 执行环境 + */ + Agent findDefaultAgent(); + + /** + * 更新默认的执行环境 + * @param id 更新ID + */ + void updateDefaultAgent(String id); + + /** + * 删除环境 + * @param id 环境ID + */ + void deleteAgent(String id); + + /** + * 查询流水线执行环境 + * @param id 环境ID + * @return 环境 + */ + Agent findAgent(String id); + + /** + * 条件查询环流水线执行环境 + * @param agentQuery 条件 + * @return 执行环境列表 + */ + List findAgentList(AgentQuery agentQuery) ; + + /** + * 分页条件查询环流水线执行环境 + * @param agentQuery 条件 + * @return 执行环境列表 + */ + PageResult findAgentPage(AgentQuery agentQuery); + + + + +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/disk/model/Disk.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/disk/model/Disk.java new file mode 100644 index 0000000..3ce7f9c --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/disk/model/Disk.java @@ -0,0 +1,70 @@ +package cd.casic.module.process.support.disk.model; + +public class Disk { + + private String name; + + private String dirSize; + + private String diskSize; + + private String userSize; + + private String path; + + private String filePath; + + public String getFilePath() { + return filePath; + } + + public Disk setFilePath(String filePath) { + this.filePath = filePath; + return this; + } + + public String getPath() { + return path; + } + + public Disk setPath(String path) { + this.path = path; + return this; + } + + public String getName() { + return name; + } + + public Disk setName(String name) { + this.name = name; + return this; + } + + public String getDirSize() { + return dirSize; + } + + public Disk setDirSize(String dirSize) { + this.dirSize = dirSize; + return this; + } + + public String getDiskSize() { + return diskSize; + } + + public Disk setDiskSize(String diskSize) { + this.diskSize = diskSize; + return this; + } + + public String getUserSize() { + return userSize; + } + + public Disk setUserSize(String userSize) { + this.userSize = userSize; + return this; + } +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/disk/service/DiskService.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/disk/service/DiskService.java new file mode 100644 index 0000000..7b812a4 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/disk/service/DiskService.java @@ -0,0 +1,24 @@ +package cd.casic.module.process.support.disk.service; + + + +import cd.casic.module.process.support.disk.model.Disk; + +import java.util.List; + +public interface DiskService { + + + Boolean deleteDisk(String pipelineId); + + + void validationStorageSpace(); + + + List findDiskList(); + + + void cleanDisk(String fileList); + + +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/home/PipelineVersionService.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/home/PipelineVersionService.java new file mode 100644 index 0000000..d2860f9 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/home/PipelineVersionService.java @@ -0,0 +1,12 @@ +package cd.casic.module.process.support.home; + +public interface PipelineVersionService { + + /** + * 获取当前系统版本 + * @return 系统版本 false.免费 true.付费 + */ + Boolean isVip(); + + +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/util/PipelineUtilService.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/util/PipelineUtilService.java new file mode 100644 index 0000000..8211ad1 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/util/PipelineUtilService.java @@ -0,0 +1,43 @@ +package cd.casic.module.process.support.util; + +import cd.casic.framework.commons.exception.ServiceException; + + +public interface PipelineUtilService { + + /** + * 获取当前用户存储空间地址 + * @param type 获取类型 1.源文件 2.日志文件 + * @return 地址 + */ + String instanceAddress(int type); + + + /** + * 获取流水线默认位置 + * @param pipelineId 流水线id + * @param type 获取类型 1.源文件 2.日志文件 + * @return 地址 + */ + String findPipelineDefaultAddress(String pipelineId,int type); + + /** + * 配置指定位置文件 + * @param pipelineId 流水线id + * @param regex 匹配规则 + * @return 文件地址 + */ + String findFile(String pipelineId,String fileDir, String regex) throws ServiceException; + + + /** + * 获取Java安装位置 + * @return Java安装位置 + */ + String findJavaPath(); + + + + + +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/util/util/PipelineFinal.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/util/util/PipelineFinal.java new file mode 100644 index 0000000..9fa04dc --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/util/util/PipelineFinal.java @@ -0,0 +1,220 @@ +package cd.casic.module.process.support.util.util; + +public class PipelineFinal { + + /** + * 项目名称 + */ + public static final String appName = "arbess"; + + /** + * DEFAULT + */ + public static final String DEFAULT = "default"; + + /** + * 流水线文件系统 + */ + public static final String MATFLOW_WORKSPACE = "/source"; + + public static final String MATFLOW_LOGS = "/artifact"; + + + /** + * 流水线运行状态 + */ + //流水线运行状态 + public static final String RUN_SUCCESS = "success"; + + public static final String RUN_ERROR = "error"; + + public static final String RUN_WAIT = "wait"; + + public static final String RUN_HALT = "halt"; + + public static final String RUN_RUN = "run"; + + public static final String RUN_SUSPEND = "suspend"; + + + /** + * 系统编码 + */ + //字节编码 + public static final String UTF_8 = "UTF-8"; + + public static final String GBK = "GBK"; + + + /** + * 消息 + */ + //消息发送类型 + public static final String MES_PIPELINE_RUN = "PIPELINE_RUN"; + + //消息发送方式 + public static final String MES_SEND_SITE = "site"; + public static final String MES_SEND_EMAIL = "email"; + public static final String MES_SEND_DINGDING = "dingding"; + public static final String MES_SEND_WECHAT = "qywechat"; + public static final String MES_SEND_SMS = "sms"; + + //消息通知方案 + public static final String MES_UPDATE = "MF_MES_TYPE_UPDATE"; + public static final String MES_DELETE = "MF_MES_TYPE_DELETE"; + public static final String MES_CREATE = "MF_MES_TYPE_CREATE"; + public static final String MES_RUN = "MF_MES_TYPE_RUN"; + + + // 日志类型 + public static final String LOG_TYPE_CREATE = "MF_LOG_TYPE_CREATE"; + + public static final String LOG_TYPE_DELETE = "MF_LOG_TYPE_DELETE"; + + public static final String LOG_TYPE_UPDATE = "MF_LOG_TYPE_UPDATE"; + + public static final String LOG_TYPE_RUN = "MF_LOG_TYPE_RUN"; + + + public static final String CREATE_LINK = "/pipeline/${pipelineId}/config"; + + public static final String DELETE_LINK = "/pipeline/${pipelineId}/delete"; + + public static final String UPDATE_LINK = "/pipeline/${pipelineId}/set/info"; + + public static final String RUN_LINK = "/pipeline/${pipelineId}/history/${instanceId}"; + + + /** + * 构建产物信息 + */ + // 默认制品地址 + public static final String PROJECT_DEFAULT_ADDRESS = "${PROJECT_DEFAULT_ADDRESS}"; + + public static final String DEFAULT_ARTIFACT_ADDRESS = "DEFAULT_ARTIFACT_ADDRESS"; + + // 默认制品 + public static final String DEFAULT_ARTIFACT_NAME = "DEFAULT_ARTIFACT_NAME"; + + // Docker制品 + public static final String DEFAULT_ARTIFACT_DOCKER = "DEFAULT_ARTIFACT_DOCKER"; + + // Docker名称 + public static final String DEFAULT_ARTIFACT_DOCKER_NAME = "DEFAULT_ARTIFACT_DOCKER_NAME"; + + + // 默认源码位置 + public static final String DEFAULT_CODE_ADDRESS = "${DEFAULT_CODE_ADDRESS}"; + + public static final String DEFAULT_TYPE = "string"; + + /** + * 默认命令 + */ + public static final String TEST_DEFAULT_ORDER = "mvn test"; + public static final String MAVEN_DEFAULT_ORDER = "mvn clean package"; + public static final String NODE_DEFAULT_ORDER = "npm install"; + public static final String DOCKER_DEFAULT_ORDER = "docker image build -t default ."; + + /** + * 文件信息 + */ + public static final String FILE_TEMP_PREFIX = "temp"; + public static final String FILE_TYPE_TXT = ".txt"; + public static final String FILE_TYPE_SH = ".sh"; + public static final String FILE_TYPE_BAT = ".bat"; + + /** + * 系统任务类型 + */ + + // 源码应用类型 + public static final String TASK_TYPE_CODE = "code"; + public static final String TASK_CODE_GIT = "git"; + public static final String TASK_CODE_GITLAB = "gitlab"; + public static final String TASK_CODE_GITHUB = "github"; + public static final String TASK_CODE_GITEE = "gitee"; + public static final String TASK_CODE_SVN = "svn"; + public static final String TASK_CODE_XCODE = "gitpuk"; + public static final String TASK_CODE_DEFAULT_BRANCH = "master"; + + + // 构建应用类型 + public static final String TASK_TYPE_BUILD = "build"; + public static final String TASK_BUILD_MAVEN = "maven"; + public static final String TASK_BUILD_NODEJS = "nodejs"; + + public static final String TASK_BUILD_DOCKER = "build_docker"; + + + // 测试应用类型 + public static final String TASK_TYPE_TEST = "test"; + public static final String TASK_TEST_MAVENTEST = "maventest"; + public static final String TASK_TEST_TESTON = "testhubo"; + + + // 部署应用类型 + public static final String TASK_TYPE_DEPLOY = "deploy"; + public static final String TASK_DEPLOY_LINUX = "liunx"; + public static final String TASK_DEPLOY_DOCKER = "docker"; + public static final String TASK_DEPLOY_K8S = "k8s"; + + + // 推送制品应用类型 + public static final String TASK_TYPE_ARTIFACT = "artifact"; + public static final String TASK_ARTIFACT_MAVEN = "artifact_maven"; + public static final String TASK_ARTIFACT_NODEJS = "artifact_nodejs"; + public static final String TASK_ARTIFACT_DOCKER = "artifact_docker"; + + + // 制品拉取应用类型 + public static final String TASK_TYPE_PULL = "pull"; + public static final String TASK_PULL_MAVEN = "pull_maven"; + public static final String TASK_PULL_NODEJS = "pull_nodejs"; + public static final String TASK_PULL_DOCKER = "pull_docker"; + + // 制品推送应用方式 + public static final String TASK_ARTIFACT_XPACK = "hadess"; + public static final String TASK_ARTIFACT_SSH = "ssh"; + public static final String TASK_ARTIFACT_NEXUS = "nexus"; + + // 代码扫描应用类型 + public static final String TASK_TYPE_CODESCAN = "codescan"; + public static final String TASK_CODESCAN_SONAR = "sonar"; + public static final String TASK_CODESCAN_SPOTBUGS = "spotbugs"; + + // 消息应用类型 + public static final String TASK_TYPE_MESSAGE = "message"; + public static final String TASK_MESSAGE_MSG = "message"; + + // 脚本应用类型 + public static final String TASK_TYPE_SCRIPT = "script"; + public static final String TASK_SCRIPT_SHELL = "shell"; + public static final String TASK_SCRIPT_BAT = "bat"; + + + //触发器 + public static final String TRIGGER_SCHEDULED = "scheduled"; + + + public static final String SIZE_TYPE_MB = "MB"; + + public static final int DEFAULT_SIZE = 2; + + + public static final String SIZE_TYPE_GB = "GB"; + + + public static final Integer DEFAULT_CLEAN_CACHE_DAY = 7; + + + + + + + + + + + +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/task/build/model/TaskBuildProduct.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/task/build/model/TaskBuildProduct.java new file mode 100644 index 0000000..40b50c3 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/task/build/model/TaskBuildProduct.java @@ -0,0 +1,75 @@ +package cd.casic.module.process.task.build.model; + + + +// TODO +//@ApiModel +//@Join +//@Mapper +public class TaskBuildProduct { + + + //@ApiProperty(name = "taskId",desc = "id") + private String id; + + //地址 + //@ApiProperty(name = "type",desc = "类型") + private String type; + + //@ApiProperty(name = "key",desc = "key") + private String key; + + //@ApiProperty(name = "value",desc = "值") + private String value; + + //分支 + //@ApiProperty(name = "instanceId",desc = "实例id") + private String instanceId; + + public TaskBuildProduct() { + } + + public TaskBuildProduct(String instanceId) { + this.instanceId = instanceId; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getInstanceId() { + return instanceId; + } + + public void setInstanceId(String instanceId) { + this.instanceId = instanceId; + } +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/task/build/model/TaskBuildProductQuery.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/task/build/model/TaskBuildProductQuery.java new file mode 100644 index 0000000..f57e52e --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/task/build/model/TaskBuildProductQuery.java @@ -0,0 +1,56 @@ +package cd.casic.module.process.task.build.model; + + + +public class TaskBuildProductQuery { + + //地址 + //@ApiProperty(name = "type",desc = "类型") + private String type; + + //@ApiProperty(name = "key",desc = "key") + private String key; + + //@ApiProperty(name = "value",desc = "值") + private String value; + + //分支 + //@ApiProperty(name = "instanceId",desc = "实例id") + private String instanceId; + + public String getType() { + return type; + } + + public TaskBuildProductQuery setType(String type) { + this.type = type; + return this; + } + + public String getKey() { + return key; + } + + public TaskBuildProductQuery setKey(String key) { + this.key = key; + return this; + } + + public String getValue() { + return value; + } + + public TaskBuildProductQuery setValue(String value) { + this.value = value; + return this; + } + + public String getInstanceId() { + return instanceId; + } + + public TaskBuildProductQuery setInstanceId(String instanceId) { + this.instanceId = instanceId; + return this; + } +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/task/build/service/TaskBuildProductService.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/task/build/service/TaskBuildProductService.java new file mode 100644 index 0000000..73f104e --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/task/build/service/TaskBuildProductService.java @@ -0,0 +1,36 @@ +package cd.casic.module.process.task.build.service; + + + +import cd.casic.module.process.task.build.model.TaskBuildProduct; +import cd.casic.module.process.task.build.model.TaskBuildProductQuery; + +import java.util.List; + +public interface TaskBuildProductService { + + + String createBuildProduct(TaskBuildProduct taskBuildProduct); + + + void updateBuildProduct(TaskBuildProduct taskBuildProduct); + + + void deleteBuildProduct(String id); + + + TaskBuildProduct findOneBuildProduct(String id); + + + List findAllBuildProduct(); + + List findBuildProductList(TaskBuildProductQuery taskBuildProductQuery); + + + String replace(String instanceId,String strings); + + + + + +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/toolkit/join/JoinOperation.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/toolkit/join/JoinOperation.java new file mode 100644 index 0000000..671c8bf --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/toolkit/join/JoinOperation.java @@ -0,0 +1,11 @@ +package cd.casic.module.process.toolkit.join; + +import java.util.List; + +public interface JoinOperation { + void joinQuery(T var1); + + void joinQuery(List var1); + + void joinQuery(List var1, String[] var2); +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/toolkit/join/JoinTemplate.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/toolkit/join/JoinTemplate.java new file mode 100644 index 0000000..4599e3a --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/toolkit/join/JoinTemplate.java @@ -0,0 +1,11 @@ +package cd.casic.module.process.toolkit.join; + +import java.util.List; + +public interface JoinTemplate extends JoinOperation{ + void joinQuery(T data); + + void joinQuery(List dataList); + + void joinQuery(List dataList, String[] includeFields); +}