流水线状态查询方法添加
This commit is contained in:
parent
aa9f19350e
commit
8bca5d8713
@ -1,10 +0,0 @@
|
|||||||
package cd.casic.ci.common.pipeline.resp.context;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
@Data
|
|
||||||
public class RunContextResp {
|
|
||||||
private String id;
|
|
||||||
private Integer state;
|
|
||||||
}
|
|
@ -0,0 +1,17 @@
|
|||||||
|
package cd.casic.ci.common.pipeline.resp.context;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
/**
|
||||||
|
* 单节点上下文状态返回对象
|
||||||
|
* */
|
||||||
|
@Data
|
||||||
|
public class SingletonRunContextResp {
|
||||||
|
/**
|
||||||
|
* 流水线元素的id(pipeline、stage、task)
|
||||||
|
* */
|
||||||
|
private String id;
|
||||||
|
/**
|
||||||
|
* 状态 详见 ContextStateEnum
|
||||||
|
* */
|
||||||
|
private Integer state;
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
package cd.casic.ci.common.pipeline.resp.context;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
public class TreeRunContextResp extends SingletonRunContextResp{
|
||||||
|
private Map<String,TreeRunContextResp> child;
|
||||||
|
}
|
@ -4,6 +4,7 @@ import cd.casic.ci.common.pipeline.req.pipeline.PipelineCreateReq;
|
|||||||
import cd.casic.ci.common.pipeline.req.pipeline.PipelineQueryReq;
|
import cd.casic.ci.common.pipeline.req.pipeline.PipelineQueryReq;
|
||||||
import cd.casic.ci.common.pipeline.req.pipeline.PipelineReq;
|
import cd.casic.ci.common.pipeline.req.pipeline.PipelineReq;
|
||||||
import cd.casic.ci.common.pipeline.req.pipeline.PipelineUpdateReq;
|
import cd.casic.ci.common.pipeline.req.pipeline.PipelineUpdateReq;
|
||||||
|
import cd.casic.ci.common.pipeline.resp.context.SingletonRunContextResp;
|
||||||
import cd.casic.ci.common.pipeline.resp.pipeline.PipelineFindResp;
|
import cd.casic.ci.common.pipeline.resp.pipeline.PipelineFindResp;
|
||||||
import cd.casic.ci.common.pipeline.utils.PageResult;
|
import cd.casic.ci.common.pipeline.utils.PageResult;
|
||||||
import cd.casic.ci.process.process.dataObject.pipeline.PipPipeline;
|
import cd.casic.ci.process.process.dataObject.pipeline.PipPipeline;
|
||||||
@ -11,6 +12,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author HopeLi
|
* @author HopeLi
|
||||||
@ -33,4 +35,6 @@ public interface PipelineService extends IService<PipPipeline> {
|
|||||||
void pipelineClone(@Valid PipelineReq req);
|
void pipelineClone(@Valid PipelineReq req);
|
||||||
|
|
||||||
PipelineFindResp findPipelineById(@Valid PipelineQueryReq pipelineQueryReq);
|
PipelineFindResp findPipelineById(@Valid PipelineQueryReq pipelineQueryReq);
|
||||||
|
|
||||||
|
Map<String, SingletonRunContextResp> getPipelineRunState(String pipelineId);
|
||||||
}
|
}
|
||||||
|
@ -4,9 +4,14 @@ import cd.casic.ci.common.pipeline.req.pipeline.PipelineCreateReq;
|
|||||||
import cd.casic.ci.common.pipeline.req.pipeline.PipelineQueryReq;
|
import cd.casic.ci.common.pipeline.req.pipeline.PipelineQueryReq;
|
||||||
import cd.casic.ci.common.pipeline.req.pipeline.PipelineReq;
|
import cd.casic.ci.common.pipeline.req.pipeline.PipelineReq;
|
||||||
import cd.casic.ci.common.pipeline.req.pipeline.PipelineUpdateReq;
|
import cd.casic.ci.common.pipeline.req.pipeline.PipelineUpdateReq;
|
||||||
|
import cd.casic.ci.common.pipeline.resp.context.SingletonRunContextResp;
|
||||||
|
import cd.casic.ci.common.pipeline.resp.context.TreeRunContextResp;
|
||||||
import cd.casic.ci.common.pipeline.resp.pipeline.PipelineFindResp;
|
import cd.casic.ci.common.pipeline.resp.pipeline.PipelineFindResp;
|
||||||
import cd.casic.ci.common.pipeline.resp.stage.StageResp;
|
import cd.casic.ci.common.pipeline.resp.stage.StageResp;
|
||||||
import cd.casic.ci.common.pipeline.utils.PageResult;
|
import cd.casic.ci.common.pipeline.utils.PageResult;
|
||||||
|
import cd.casic.ci.process.engine.manager.RunContextManager;
|
||||||
|
import cd.casic.ci.process.engine.runContext.BaseRunContext;
|
||||||
|
import cd.casic.ci.process.engine.runContext.PipelineRunContext;
|
||||||
import cd.casic.ci.process.process.converter.PipelineConverter;
|
import cd.casic.ci.process.process.converter.PipelineConverter;
|
||||||
import cd.casic.ci.process.process.dal.pipeline.PipResourceDao;
|
import cd.casic.ci.process.process.dal.pipeline.PipResourceDao;
|
||||||
import cd.casic.ci.process.process.dal.pipeline.PipStageDao;
|
import cd.casic.ci.process.process.dal.pipeline.PipStageDao;
|
||||||
@ -38,9 +43,7 @@ import org.springframework.util.CollectionUtils;
|
|||||||
import org.springframework.util.ObjectUtils;
|
import org.springframework.util.ObjectUtils;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author HopeLi
|
* @author HopeLi
|
||||||
@ -75,6 +78,8 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private AdminUserServiceImpl adminUserService;
|
private AdminUserServiceImpl adminUserService;
|
||||||
|
@Resource
|
||||||
|
private RunContextManager contextManager;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@ -519,4 +524,38 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
|
|||||||
|
|
||||||
return resp;
|
return resp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, SingletonRunContextResp> getPipelineRunState(String pipelineId) {
|
||||||
|
BaseRunContext context = contextManager.getContext(pipelineId);
|
||||||
|
if (context instanceof PipelineRunContext pipelineRunContext) {
|
||||||
|
TreeRunContextResp pipeline = new TreeRunContextResp();
|
||||||
|
pipeline.setId(pipelineRunContext.getContextDef().getId());
|
||||||
|
pipeline.setState(pipelineRunContext.getState().get());
|
||||||
|
Map<String,TreeRunContextResp> secondStageStateMap = new HashMap<>(pipelineRunContext.getChildContext().size());
|
||||||
|
Map<String, BaseRunContext> childContext = pipelineRunContext.getChildContext();
|
||||||
|
pipeline.setChild(secondStageStateMap);
|
||||||
|
for (Map.Entry<String, BaseRunContext> secondEntry : childContext.entrySet()) {
|
||||||
|
BaseRunContext value = secondEntry.getValue();
|
||||||
|
String key = secondEntry.getKey();
|
||||||
|
TreeRunContextResp secondStage = new TreeRunContextResp();
|
||||||
|
secondStageStateMap.put(key,secondStage);
|
||||||
|
secondStage.setId(key);
|
||||||
|
secondStage.setState(value.getState().get());
|
||||||
|
Map<String, BaseRunContext> taskIdContextMap = value.getChildContext();
|
||||||
|
Map<String,TreeRunContextResp> taskStateMap = new HashMap<>(taskIdContextMap.size());
|
||||||
|
secondStage.setChild(taskStateMap);
|
||||||
|
for (Map.Entry<String, BaseRunContext> taskEntry : taskIdContextMap.entrySet()) {
|
||||||
|
BaseRunContext taskContext = taskEntry.getValue();
|
||||||
|
String taskId = taskEntry.getKey();
|
||||||
|
TreeRunContextResp taskState = new TreeRunContextResp();
|
||||||
|
taskState.setId(taskId);
|
||||||
|
taskState.setState(taskContext.getState().get());
|
||||||
|
taskStateMap.put(taskId,taskState);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return new HashMap<>();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@ package cd.casic.ci.process.process.service.stage;
|
|||||||
|
|
||||||
import cd.casic.ci.common.pipeline.req.stage.StageCreateReq;
|
import cd.casic.ci.common.pipeline.req.stage.StageCreateReq;
|
||||||
import cd.casic.ci.common.pipeline.req.stage.StageUpdateReq;
|
import cd.casic.ci.common.pipeline.req.stage.StageUpdateReq;
|
||||||
import cd.casic.ci.common.pipeline.resp.context.RunContextResp;
|
import cd.casic.ci.common.pipeline.resp.context.SingletonRunContextResp;
|
||||||
import cd.casic.ci.common.pipeline.resp.stage.StageResp;
|
import cd.casic.ci.common.pipeline.resp.stage.StageResp;
|
||||||
import cd.casic.ci.process.process.dataObject.stage.PipStage;
|
import cd.casic.ci.process.process.dataObject.stage.PipStage;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
@ -85,5 +85,5 @@ public interface StageService extends IService<PipStage> {
|
|||||||
|
|
||||||
void copyStage(@NotEmpty String stageId);
|
void copyStage(@NotEmpty String stageId);
|
||||||
void deleteFirstStage(String stageId);
|
void deleteFirstStage(String stageId);
|
||||||
Map<String, RunContextResp> getStageRunState(@PathVariable String stageId);
|
Map<String, SingletonRunContextResp> getStageRunState(@PathVariable String stageId);
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@ package cd.casic.ci.process.process.service.stage.impl;
|
|||||||
import cd.casic.ci.common.pipeline.req.stage.StageCreateReq;
|
import cd.casic.ci.common.pipeline.req.stage.StageCreateReq;
|
||||||
import cd.casic.ci.common.pipeline.req.stage.StageUpdateReq;
|
import cd.casic.ci.common.pipeline.req.stage.StageUpdateReq;
|
||||||
import cd.casic.ci.common.pipeline.req.task.TaskCreateReq;
|
import cd.casic.ci.common.pipeline.req.task.TaskCreateReq;
|
||||||
import cd.casic.ci.common.pipeline.resp.context.RunContextResp;
|
import cd.casic.ci.common.pipeline.resp.context.SingletonRunContextResp;
|
||||||
import cd.casic.ci.common.pipeline.resp.stage.StageResp;
|
import cd.casic.ci.common.pipeline.resp.stage.StageResp;
|
||||||
import cd.casic.ci.process.engine.manager.RunContextManager;
|
import cd.casic.ci.process.engine.manager.RunContextManager;
|
||||||
import cd.casic.ci.process.engine.runContext.BaseRunContext;
|
import cd.casic.ci.process.engine.runContext.BaseRunContext;
|
||||||
@ -18,7 +18,6 @@ import cd.casic.framework.commons.exception.enums.GlobalErrorCodeConstants;
|
|||||||
import cd.casic.framework.commons.util.object.BeanUtils;
|
import cd.casic.framework.commons.util.object.BeanUtils;
|
||||||
import cd.casic.framework.commons.util.util.WebFrameworkUtils;
|
import cd.casic.framework.commons.util.util.WebFrameworkUtils;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
@ -409,9 +408,9 @@ public class StageServiceImpl extends ServiceImpl<PipStageDao, PipStage> impleme
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, RunContextResp> getStageRunState(String stageId) {
|
public Map<String, SingletonRunContextResp> getStageRunState(String stageId) {
|
||||||
PipStage byId = getById(stageId);
|
PipStage byId = getById(stageId);
|
||||||
Map<String, RunContextResp> result = new HashMap<>();
|
Map<String, SingletonRunContextResp> result = new HashMap<>();
|
||||||
if (byId==null||"-1".equals(byId.getParentId())) {
|
if (byId==null||"-1".equals(byId.getParentId())) {
|
||||||
log.error("传入stageId非阶段id");
|
log.error("传入stageId非阶段id");
|
||||||
return result;
|
return result;
|
||||||
@ -428,7 +427,7 @@ public class StageServiceImpl extends ServiceImpl<PipStageDao, PipStage> impleme
|
|||||||
}
|
}
|
||||||
String taskId = taskValue.getId();
|
String taskId = taskValue.getId();
|
||||||
int state = context.getState().get();
|
int state = context.getState().get();
|
||||||
RunContextResp runContextResp = new RunContextResp();
|
SingletonRunContextResp runContextResp = new SingletonRunContextResp();
|
||||||
runContextResp.setState(state);
|
runContextResp.setState(state);
|
||||||
runContextResp.setId(taskId);
|
runContextResp.setId(taskId);
|
||||||
result.put(taskId,runContextResp);
|
result.put(taskId,runContextResp);
|
||||||
|
@ -4,6 +4,7 @@ import cd.casic.ci.common.pipeline.req.pipeline.PipelineCreateReq;
|
|||||||
import cd.casic.ci.common.pipeline.req.pipeline.PipelineQueryReq;
|
import cd.casic.ci.common.pipeline.req.pipeline.PipelineQueryReq;
|
||||||
import cd.casic.ci.common.pipeline.req.pipeline.PipelineReq;
|
import cd.casic.ci.common.pipeline.req.pipeline.PipelineReq;
|
||||||
import cd.casic.ci.common.pipeline.req.pipeline.PipelineUpdateReq;
|
import cd.casic.ci.common.pipeline.req.pipeline.PipelineUpdateReq;
|
||||||
|
import cd.casic.ci.common.pipeline.resp.context.SingletonRunContextResp;
|
||||||
import cd.casic.ci.common.pipeline.resp.pipeline.PipelineFindResp;
|
import cd.casic.ci.common.pipeline.resp.pipeline.PipelineFindResp;
|
||||||
import cd.casic.ci.common.pipeline.utils.PageResult;
|
import cd.casic.ci.common.pipeline.utils.PageResult;
|
||||||
import cd.casic.ci.process.engine.executor.PipelineExecutor;
|
import cd.casic.ci.process.engine.executor.PipelineExecutor;
|
||||||
@ -14,12 +15,10 @@ import jakarta.annotation.Resource;
|
|||||||
import jakarta.annotation.security.PermitAll;
|
import jakarta.annotation.security.PermitAll;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ClassName PipelineController
|
* @ClassName PipelineController
|
||||||
@ -105,4 +104,8 @@ public class PipelineController {
|
|||||||
PipelineRunContext execute = pipelineExecutor.execute(pipelineId);
|
PipelineRunContext execute = pipelineExecutor.execute(pipelineId);
|
||||||
return CommonResult.success(execute);
|
return CommonResult.success(execute);
|
||||||
}
|
}
|
||||||
|
@PostMapping("/getStageRunState/{pipelineId}")
|
||||||
|
public CommonResult<Map<String, SingletonRunContextResp>> getPipelineRunState(@PathVariable String pipelineId){
|
||||||
|
return CommonResult.success(pipelineService.getPipelineRunState(pipelineId));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
package cd.casic.server.controller;
|
package cd.casic.server.controller;
|
||||||
|
|
||||||
import cd.casic.ci.common.pipeline.container.Stage;
|
|
||||||
import cd.casic.ci.common.pipeline.req.stage.StageCreateReq;
|
import cd.casic.ci.common.pipeline.req.stage.StageCreateReq;
|
||||||
import cd.casic.ci.common.pipeline.req.stage.StageUpdateReq;
|
import cd.casic.ci.common.pipeline.req.stage.StageUpdateReq;
|
||||||
import cd.casic.ci.common.pipeline.resp.context.RunContextResp;
|
import cd.casic.ci.common.pipeline.resp.context.SingletonRunContextResp;
|
||||||
import cd.casic.ci.common.pipeline.resp.stage.StageResp;
|
import cd.casic.ci.common.pipeline.resp.stage.StageResp;
|
||||||
import cd.casic.ci.process.process.service.stage.StageService;
|
import cd.casic.ci.process.process.service.stage.StageService;
|
||||||
import cd.casic.framework.commons.pojo.CommonResult;
|
import cd.casic.framework.commons.pojo.CommonResult;
|
||||||
@ -97,7 +96,7 @@ public class StageController {
|
|||||||
return CommonResult.success();
|
return CommonResult.success();
|
||||||
}
|
}
|
||||||
@PostMapping("/getStageRunState/{stageId}")
|
@PostMapping("/getStageRunState/{stageId}")
|
||||||
public CommonResult<Map<String, RunContextResp> > getStageRunState(@PathVariable String stageId){
|
public CommonResult<Map<String, SingletonRunContextResp> > getStageRunState(@PathVariable String stageId){
|
||||||
return CommonResult.success(stageService.getStageRunState(stageId));
|
return CommonResult.success(stageService.getStageRunState(stageId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user