|
|
@ -17,14 +17,10 @@ |
|
|
|
|
|
|
|
|
|
|
|
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.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; |
|
|
@ -34,6 +30,8 @@ import org.apache.dolphinscheduler.server.worker.task.AbstractTask; |
|
|
|
import org.apache.dolphinscheduler.server.worker.task.CommandExecuteResult; |
|
|
|
import org.apache.dolphinscheduler.server.worker.task.CommandExecuteResult; |
|
|
|
import org.apache.dolphinscheduler.server.worker.task.ShellCommandExecutor; |
|
|
|
import org.apache.dolphinscheduler.server.worker.task.ShellCommandExecutor; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import org.apache.commons.collections.MapUtils; |
|
|
|
|
|
|
|
|
|
|
|
import java.io.File; |
|
|
|
import java.io.File; |
|
|
|
import java.nio.file.Files; |
|
|
|
import java.nio.file.Files; |
|
|
|
import java.nio.file.Path; |
|
|
|
import java.nio.file.Path; |
|
|
@ -41,7 +39,6 @@ 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.Date; |
|
|
|
|
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Set; |
|
|
|
import java.util.Set; |
|
|
@ -164,21 +161,11 @@ public class ShellTask extends AbstractTask { |
|
|
|
private String parseScript(String script) { |
|
|
|
private String parseScript(String script) { |
|
|
|
// combining local and global parameters
|
|
|
|
// combining local and global parameters
|
|
|
|
Map<String, Property> paramsMap = ParamUtils.convert(taskExecutionContext,getParameters()); |
|
|
|
Map<String, Property> paramsMap = ParamUtils.convert(taskExecutionContext,getParameters()); |
|
|
|
|
|
|
|
if (MapUtils.isEmpty(paramsMap)) { |
|
|
|
// replace variable TIME with $[YYYYmmddd...] in shell file when history run job and batch complement job
|
|
|
|
paramsMap = new HashMap<>(); |
|
|
|
if (taskExecutionContext.getScheduleTime() != null) { |
|
|
|
} |
|
|
|
if (paramsMap == null) { |
|
|
|
if (MapUtils.isNotEmpty(taskExecutionContext.getParamsMap())) { |
|
|
|
paramsMap = new HashMap<>(); |
|
|
|
paramsMap.putAll(taskExecutionContext.getParamsMap()); |
|
|
|
} |
|
|
|
|
|
|
|
Date date = taskExecutionContext.getScheduleTime(); |
|
|
|
|
|
|
|
if (CommandType.COMPLEMENT_DATA.getCode() == taskExecutionContext.getCmdTypeIfComplement()) { |
|
|
|
|
|
|
|
date = DateUtils.add(taskExecutionContext.getScheduleTime(), DAY_OF_MONTH, 1); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
String dateTime = DateUtils.format(date, Constants.PARAMETER_FORMAT_TIME); |
|
|
|
|
|
|
|
Property p = new Property(); |
|
|
|
|
|
|
|
p.setValue(dateTime); |
|
|
|
|
|
|
|
p.setProp(Constants.PARAMETER_DATETIME); |
|
|
|
|
|
|
|
paramsMap.put(Constants.PARAMETER_DATETIME, p); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
return ParameterUtils.convertParameterPlaceholders(script, ParamUtils.convert(paramsMap)); |
|
|
|
return ParameterUtils.convertParameterPlaceholders(script, ParamUtils.convert(paramsMap)); |
|
|
|
} |
|
|
|
} |
|
|
|