diff --git a/src/main/java/neatlogic/module/autoexec/job/node/UpdateNodesByParamsHandler.java b/src/main/java/neatlogic/module/autoexec/job/node/UpdateNodesByParamsHandler.java index 0f2abc2127f0fa63c20a138d4d94cb32d6930e0d..056201c6af70c230ae672f24640431cc34e736fa 100644 --- a/src/main/java/neatlogic/module/autoexec/job/node/UpdateNodesByParamsHandler.java +++ b/src/main/java/neatlogic/module/autoexec/job/node/UpdateNodesByParamsHandler.java @@ -22,6 +22,7 @@ import com.alibaba.fastjson.JSONObject; import neatlogic.framework.autoexec.dto.AutoexecParamVo; import neatlogic.framework.autoexec.dto.combop.AutoexecCombopExecuteNodeConfigVo; import neatlogic.framework.autoexec.dto.job.AutoexecJobVo; +import neatlogic.framework.autoexec.exception.job.JobParamNodeNullException; import neatlogic.framework.autoexec.job.node.IUpdateNodes; import neatlogic.framework.cmdb.crossover.IResourceCrossoverMapper; import neatlogic.framework.cmdb.dto.resourcecenter.ResourceSearchVo; @@ -75,6 +76,9 @@ public class UpdateNodesByParamsHandler implements IUpdateNodes { if (CollectionUtils.isNotEmpty(runTimeParamList)) { List paramObjList = runTimeParamList.stream().filter(p -> paramList.contains(p.getKey())).collect(Collectors.toList()); paramObjList.forEach(p -> { + if (!(p.getValue() instanceof JSONArray) || CollectionUtils.isEmpty((JSONArray) p.getValue())) { + throw new JobParamNodeNullException(p.getKey()); + } if (p.getValue() instanceof JSONArray) { JSONArray valueArray = (JSONArray) p.getValue(); for (int i = 0; i < valueArray.size(); i++) { diff --git a/src/main/java/neatlogic/module/autoexec/job/source/action/AutoexecJobSourceTypeHandler.java b/src/main/java/neatlogic/module/autoexec/job/source/action/AutoexecJobSourceTypeHandler.java index 30af69c7df68d26376ed50b126245db86de14222..37f6f156b88697d7e1fc402461de50f918a5e96f 100644 --- a/src/main/java/neatlogic/module/autoexec/job/source/action/AutoexecJobSourceTypeHandler.java +++ b/src/main/java/neatlogic/module/autoexec/job/source/action/AutoexecJobSourceTypeHandler.java @@ -17,7 +17,6 @@ import neatlogic.framework.autoexec.dto.job.*; import neatlogic.framework.autoexec.exception.*; import neatlogic.framework.autoexec.exception.job.JobParamNullException; import neatlogic.framework.autoexec.exception.job.JobParamRunnerGroupNullException; -import neatlogic.framework.autoexec.exception.job.JobParamRunnerGroupTagNullException; import neatlogic.framework.autoexec.job.source.type.AutoexecJobSourceTypeHandlerBase; import neatlogic.framework.autoexec.util.AutoexecUtil; import neatlogic.framework.common.util.IpUtil; @@ -285,7 +284,8 @@ public class AutoexecJobSourceTypeHandler extends AutoexecJobSourceTypeHandlerBa } } } catch (JobParamNullException e) { - throw new JobParamRunnerGroupTagNullException(jobPhaseVo.getName(), combopPhaseExecuteConfigVo.getExecuteConfig().getRunnerGroupTag().getValue()); + //作业执行器组标签非必填 +// throw new JobParamRunnerGroupTagNullException(jobPhaseVo.getName(), combopPhaseExecuteConfigVo.getExecuteConfig().getRunnerGroupTag().getValue()); } } //其次获取创建作业时声明的执行器组标签 @@ -301,7 +301,8 @@ public class AutoexecJobSourceTypeHandler extends AutoexecJobSourceTypeHandlerBa throw new AutoexecRunnerGroupTagInvalidException(runnerGroupTagStr); } } catch (JobParamNullException e) { - throw new JobParamRunnerGroupTagNullException(jobPhaseVo.getName(), runnerGroupTagParam.getValue()); + //作业执行器组标签非必填 +// throw new JobParamRunnerGroupTagNullException(jobPhaseVo.getName(), runnerGroupTagParam.getValue()); } } diff --git a/src/main/java/neatlogic/module/autoexec/service/AutoexecJobServiceImpl.java b/src/main/java/neatlogic/module/autoexec/service/AutoexecJobServiceImpl.java index 387d97388a6003150b0b7533e249e08a43f4b5c8..a8a4459f0d7afca3c84dcdbd50ca0d24fcc81f19 100644 --- a/src/main/java/neatlogic/module/autoexec/service/AutoexecJobServiceImpl.java +++ b/src/main/java/neatlogic/module/autoexec/service/AutoexecJobServiceImpl.java @@ -36,6 +36,7 @@ import neatlogic.framework.autoexec.dto.script.AutoexecScriptVersionVo; import neatlogic.framework.autoexec.dto.script.AutoexecScriptVo; import neatlogic.framework.autoexec.exception.*; import neatlogic.framework.autoexec.exception.job.AutoexecJobTargetOrRunnerNotFoundException; +import neatlogic.framework.autoexec.exception.job.JobParamNodeNullException; import neatlogic.framework.autoexec.exception.job.JobParamNullException; import neatlogic.framework.autoexec.exception.job.JobParamUserNameNullException; import neatlogic.framework.autoexec.job.action.core.AutoexecJobActionHandlerFactory; @@ -665,7 +666,11 @@ public class AutoexecJobServiceImpl implements AutoexecJobService, IAutoexecJobC isGroupConfig = executeConfigVo.getExecuteNodeConfig() != null && !executeConfigVo.getExecuteNodeConfig().isNull(); if (isGroupConfig) { jobVo.setNodeFrom(AutoexecJobPhaseNodeFrom.GROUP.getValue()); - isHasNode = getJobNodeList(executeConfigVo, jobVo, userName, protocolId, updateTime); + try { + isHasNode = getJobNodeList(executeConfigVo, jobVo, userName, protocolId, updateTime); + } catch (JobParamNodeNullException ex) { + throw new JobParamNodeNullException(jobGroupVo.getSort(), ex.getMessage()); + } } String parallelPolicyTmp = executeConfigVo.getParallelPolicy(); //兼容老数据不存在policy @@ -712,7 +717,11 @@ public class AutoexecJobServiceImpl implements AutoexecJobService, IAutoexecJobC isPhaseConfig = executeConfigVo.getExecuteNodeConfig() != null && !executeConfigVo.getExecuteNodeConfig().isNull(); if (isPhaseConfig) { jobVo.setNodeFrom(AutoexecJobPhaseNodeFrom.PHASE.getValue()); - isHasNode = getJobNodeList(executeConfigVo, jobVo, userName, protocolId, updateTime); + try { + isHasNode = getJobNodeList(executeConfigVo, jobVo, userName, protocolId, updateTime); + } catch (JobParamNodeNullException ex) { + throw new JobParamNodeNullException(jobPhase.getName(), ex.getMessage()); + } } String parallelPolicyTmp = executeConfigVo.getParallelPolicy(); //兼容老数据不存在policy @@ -733,7 +742,11 @@ public class AutoexecJobServiceImpl implements AutoexecJobService, IAutoexecJobC //如果阶段没有设置执行目标,则使用全局执行目标 if (!isPhaseConfig && !isGroupConfig) { jobVo.setNodeFrom(AutoexecJobPhaseNodeFrom.JOB.getValue()); - isHasNode = getJobNodeList(combopExecuteConfigVo, jobVo, userName, protocolId, updateTime); + try { + isHasNode = getJobNodeList(combopExecuteConfigVo, jobVo, userName, protocolId, updateTime); + } catch (JobParamNodeNullException ex) { + throw new JobParamNodeNullException(ex.getMessage(), 1); + } } //如果都找不到执行节点 if (!isHasNode) {