|
|
@ -16,12 +16,14 @@ |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
package org.apache.dolphinscheduler.server.worker.task.shell; |
|
|
|
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.Constants; |
|
|
|
import org.apache.dolphinscheduler.common.enums.CommandType; |
|
|
|
import org.apache.dolphinscheduler.common.enums.CommandType; |
|
|
|
import org.apache.dolphinscheduler.common.process.Property; |
|
|
|
import org.apache.dolphinscheduler.common.process.Property; |
|
|
|
import org.apache.dolphinscheduler.common.task.AbstractParameters; |
|
|
|
import org.apache.dolphinscheduler.common.task.AbstractParameters; |
|
|
|
import org.apache.dolphinscheduler.common.task.shell.ShellParameters; |
|
|
|
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.JSONUtils; |
|
|
|
import org.apache.dolphinscheduler.common.utils.OSUtils; |
|
|
|
import org.apache.dolphinscheduler.common.utils.OSUtils; |
|
|
|
import org.apache.dolphinscheduler.common.utils.ParameterUtils; |
|
|
|
import org.apache.dolphinscheduler.common.utils.ParameterUtils; |
|
|
@ -39,6 +41,7 @@ import java.nio.file.StandardOpenOption; |
|
|
|
import java.nio.file.attribute.FileAttribute; |
|
|
|
import java.nio.file.attribute.FileAttribute; |
|
|
|
import java.nio.file.attribute.PosixFilePermission; |
|
|
|
import java.nio.file.attribute.PosixFilePermission; |
|
|
|
import java.nio.file.attribute.PosixFilePermissions; |
|
|
|
import java.nio.file.attribute.PosixFilePermissions; |
|
|
|
|
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Set; |
|
|
|
import java.util.Set; |
|
|
|
|
|
|
|
|
|
|
@ -130,11 +133,21 @@ public class ShellTask extends AbstractTask { |
|
|
|
* combining local and global parameters |
|
|
|
* combining local and global parameters |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
Map<String, Property> paramsMap = ParamUtils.convert(ParamUtils.getUserDefParamsMap(taskExecutionContext.getDefinedParams()), |
|
|
|
Map<String, Property> paramsMap = ParamUtils.convert(ParamUtils.getUserDefParamsMap(taskExecutionContext.getDefinedParams()), |
|
|
|
taskExecutionContext.getDefinedParams(), |
|
|
|
taskExecutionContext.getDefinedParams(), |
|
|
|
shellParameters.getLocalParametersMap(), |
|
|
|
shellParameters.getLocalParametersMap(), |
|
|
|
CommandType.of(taskExecutionContext.getCmdTypeIfComplement()), |
|
|
|
CommandType.of(taskExecutionContext.getCmdTypeIfComplement()), |
|
|
|
taskExecutionContext.getScheduleTime()); |
|
|
|
taskExecutionContext.getScheduleTime()); |
|
|
|
// replace variable TIME with $[YYYYmmddd...] in shell file when history run job and batch complement job
|
|
|
|
// 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); |
|
|
|
|
|
|
|
} |
|
|
|
script = ParameterUtils.convertParameterPlaceholders(script, ParamUtils.convert(paramsMap)); |
|
|
|
script = ParameterUtils.convertParameterPlaceholders(script, ParamUtils.convert(paramsMap)); |
|
|
|
|
|
|
|
|
|
|
|
shellParameters.setRawScript(script); |
|
|
|
shellParameters.setRawScript(script); |
|
|
|