|
|
|
@ -17,11 +17,14 @@
|
|
|
|
|
|
|
|
|
|
package org.apache.dolphinscheduler.server.worker.task.shell; |
|
|
|
|
|
|
|
|
|
import static java.util.Calendar.DAY_OF_MONTH; |
|
|
|
|
|
|
|
|
|
import org.apache.dolphinscheduler.common.Constants; |
|
|
|
|
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; |
|
|
|
@ -38,6 +41,7 @@ import java.nio.file.StandardOpenOption;
|
|
|
|
|
import java.nio.file.attribute.FileAttribute; |
|
|
|
|
import java.nio.file.attribute.PosixFilePermission; |
|
|
|
|
import java.nio.file.attribute.PosixFilePermissions; |
|
|
|
|
import java.util.HashMap; |
|
|
|
|
import java.util.Map; |
|
|
|
|
import java.util.Set; |
|
|
|
|
|
|
|
|
@ -136,7 +140,20 @@ public class ShellTask extends AbstractTask {
|
|
|
|
|
CommandType.of(taskExecutionContext.getCmdTypeIfComplement()), |
|
|
|
|
taskExecutionContext.getScheduleTime()); |
|
|
|
|
// replace variable TIME with $[YYYYmmddd...] in shell file when history run job and batch complement job
|
|
|
|
|
if (taskExecutionContext.getScheduleTime() != null) { |
|
|
|
|
if (null == paramsMap) { |
|
|
|
|
paramsMap = new HashMap<>(); |
|
|
|
|
} |
|
|
|
|
String dateTime = DateUtils.format(DateUtils.add(taskExecutionContext.getScheduleTime(), DAY_OF_MONTH, 1), Constants.PARAMETER_FORMAT_TIME); |
|
|
|
|
Property p = new Property(); |
|
|
|
|
p.setValue(dateTime); |
|
|
|
|
p.setProp(Constants.PARAMETER_DATETIME); |
|
|
|
|
paramsMap.put(Constants.PARAMETER_DATETIME, p); |
|
|
|
|
} |
|
|
|
|
if (null != paramsMap) { |
|
|
|
|
script = ParameterUtils.convertParameterPlaceholders(script, ParamUtils.convert(paramsMap)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
shellParameters.setRawScript(script); |
|
|
|
|
|
|
|
|
|
logger.info("raw script : {}", shellParameters.getRawScript()); |
|
|
|
|