From ac71e731a7da745073a772371a3de0f78f9ba329 Mon Sep 17 00:00:00 2001 From: Kirs Date: Tue, 15 Dec 2020 16:26:41 +0800 Subject: [PATCH] cherry pick #4288 to 1.3.4-pre (#4229) * cherry pick #4288 to 1.3.4-pre * remove unused import --- .../common/utils/ParameterUtils.java | 18 ++++++------------ .../server/worker/task/shell/ShellTask.java | 16 +--------------- 2 files changed, 7 insertions(+), 27 deletions(-) diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/ParameterUtils.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/ParameterUtils.java index 1227b4e04e..49746cd36a 100644 --- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/ParameterUtils.java +++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/ParameterUtils.java @@ -61,29 +61,23 @@ public class ParameterUtils { * @return convert parameters place holders */ public static String convertParameterPlaceholders(String parameterString, Map parameterMap) { - if (StringUtils.isEmpty(parameterString) || parameterMap == null) { + if (StringUtils.isEmpty(parameterString)) { return parameterString; } - - //Get current time, schedule execute time - String cronTimeStr = parameterMap.get(Constants.PARAMETER_DATETIME); - Date cronTime; - - if (StringUtils.isNotEmpty(cronTimeStr)) { + if (parameterMap != null && !parameterMap.isEmpty()) { + //Get current time, schedule execute time + String cronTimeStr = parameterMap.get(Constants.PARAMETER_DATETIME); cronTime = DateUtils.parse(cronTimeStr, Constants.PARAMETER_FORMAT_TIME); + // replace variable ${} form,refers to the replacement of system variables and custom variables + parameterString = PlaceholderUtils.replacePlaceholders(parameterString, parameterMap, true); } else { cronTime = new Date(); } - - // replace variable ${} form,refers to the replacement of system variables and custom variables - parameterString = PlaceholderUtils.replacePlaceholders(parameterString, parameterMap, true); - // replace time $[...] form, eg. $[yyyyMMdd] if (cronTime != null) { return dateTemplateParse(parameterString, cronTime); } - return parameterString; } diff --git a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/shell/ShellTask.java b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/shell/ShellTask.java index 075be60690..929003c3d4 100644 --- a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/shell/ShellTask.java +++ b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/shell/ShellTask.java @@ -22,7 +22,6 @@ import org.apache.dolphinscheduler.common.enums.CommandType; import org.apache.dolphinscheduler.common.process.Property; import org.apache.dolphinscheduler.common.task.AbstractParameters; import org.apache.dolphinscheduler.common.task.shell.ShellParameters; -import org.apache.dolphinscheduler.common.utils.DateUtils; import org.apache.dolphinscheduler.common.utils.JSONUtils; import org.apache.dolphinscheduler.common.utils.OSUtils; import org.apache.dolphinscheduler.common.utils.ParameterUtils; @@ -135,21 +134,8 @@ public class ShellTask extends AbstractTask { shellParameters.getLocalParametersMap(), CommandType.of(taskExecutionContext.getCmdTypeIfComplement()), taskExecutionContext.getScheduleTime()); - if (paramsMap != null){ - script = ParameterUtils.convertParameterPlaceholders(script, ParamUtils.convert(paramsMap)); - } - // new // replace variable TIME with $[YYYYmmddd...] in shell file when history run job and batch complement job - if (paramsMap != null) { - if (taskExecutionContext.getScheduleTime() != null) { - String dateTime = DateUtils.format(taskExecutionContext.getScheduleTime(), Constants.PARAMETER_FORMAT_TIME); - Property p = new Property(); - p.setValue(dateTime); - p.setProp(Constants.PARAMETER_SHECDULE_TIME); - paramsMap.put(Constants.PARAMETER_SHECDULE_TIME, p); - } - script = ParameterUtils.convertParameterPlaceholders2(script, ParamUtils.convert(paramsMap)); - } + script = ParameterUtils.convertParameterPlaceholders(script, ParamUtils.convert(paramsMap)); shellParameters.setRawScript(script);