Skip to content

Commit

Permalink
feat(core, script): rename DockerTaskRunner to Docker and ProcessTask…
Browse files Browse the repository at this point in the history
…Runner to Process

Fixes #3729
  • Loading branch information
loicmathieu committed May 15, 2024
1 parent 5cee7fa commit 8497665
Show file tree
Hide file tree
Showing 8 changed files with 31 additions and 31 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
- id: shell
type: io.kestra.plugin.scripts.shell.Commands
taskRunner:
type: io.kestra.core.models.tasks.runners.types.ProcessTaskRunner
type: io.kestra.plugin.core.runner.Process
commands:
- echo "Hello World\"""",
full = true
Expand All @@ -75,30 +75,30 @@
outputFiles:
- out.txt
taskRunner:
type: io.kestra.core.models.tasks.runners.types.ProcessTaskRunner
type: io.kestra.plugin.core.runner.Process
commands:
- cp {{workingDir}}/data.txt {{workingDir}}/out.txt""",
full = true
)
},
beta = true // all task runners are beta for now, but this one is stable as it was the one used before
)
public class ProcessTaskRunner extends TaskRunner {
public class Process extends TaskRunner {

@Override
public RunnerResult run(RunContext runContext, TaskCommands taskCommands, List<String> filesToUpload, List<String> filesToDownload) throws Exception {
Logger logger = runContext.logger();
AbstractLogConsumer defaultLogConsumer = taskCommands.getLogConsumer();

ProcessBuilder processBuilder = new ProcessBuilder();
java.lang.ProcessBuilder processBuilder = new java.lang.ProcessBuilder();

Map<String, String> environment = processBuilder.environment();
environment.putAll(this.env(runContext, taskCommands));

processBuilder.directory(taskCommands.getWorkingDirectory().toFile());
processBuilder.command(taskCommands.getCommands());

Process process = processBuilder.start();
java.lang.Process process = processBuilder.start();
long pid = process.pid();
logger.debug("Starting command with pid {} [{}]", pid, String.join(" ", taskCommands.getCommands()));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import io.kestra.core.Helpers;
import io.kestra.core.models.tasks.runners.TaskRunner;
import io.kestra.plugin.core.runner.ProcessTaskRunner;
import io.kestra.plugin.core.runner.Process;
import io.kestra.core.models.tasks.Task;
import io.kestra.core.models.triggers.AbstractTrigger;
import io.kestra.plugin.core.trigger.Schedule;
Expand Down Expand Up @@ -114,7 +114,7 @@ void taskRunner() throws URISyntaxException {
PluginScanner pluginScanner = new PluginScanner(ClassPluginDocumentationTest.class.getClassLoader());
RegisteredPlugin scan = pluginScanner.scan();

ClassPluginDocumentation<? extends TaskRunner> doc = ClassPluginDocumentation.of(jsonSchemaGenerator, scan, ProcessTaskRunner.class, null);
ClassPluginDocumentation<? extends TaskRunner> doc = ClassPluginDocumentation.of(jsonSchemaGenerator, scan, Process.class, null);

assertThat((Map<?, ?>) doc.getPropertiesSchema().get("properties"), anEmptyMap());
assertThat(doc.getCls(), is("io.kestra.plugin.core.runner.ProcessTaskRunner"));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package io.kestra.core.docs;

import io.kestra.core.models.tasks.runners.TaskRunner;
import io.kestra.plugin.core.runner.ProcessTaskRunner;
import io.kestra.plugin.core.runner.Process;
import io.kestra.core.models.tasks.Task;
import io.kestra.core.plugins.PluginScanner;
import io.kestra.core.plugins.RegisteredPlugin;
Expand Down Expand Up @@ -163,13 +163,13 @@ void pluginDoc() throws Exception {
void taskRunner() throws IOException {
PluginScanner pluginScanner = new PluginScanner(ClassPluginDocumentationTest.class.getClassLoader());
RegisteredPlugin scan = pluginScanner.scan();
Class<ProcessTaskRunner> processTaskRunner = scan.findClass(ProcessTaskRunner.class.getName()).orElseThrow();
Class<Process> processTaskRunner = scan.findClass(Process.class.getName()).orElseThrow();

ClassPluginDocumentation<? extends TaskRunner> doc = ClassPluginDocumentation.of(jsonSchemaGenerator, scan, processTaskRunner, TaskRunner.class);

String render = DocumentationGenerator.render(doc);

assertThat(render, containsString("title: ProcessTaskRunner"));
assertThat(render, containsString("title: Process"));
assertThat(render, containsString("Task runner that executes a task as a subprocess on the Kestra host."));
assertThat(render, containsString("This plugin is currently in beta"));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

import io.kestra.core.models.tasks.runners.AbstractTaskRunnerTest;
import io.kestra.core.models.tasks.runners.TaskRunner;
import io.kestra.plugin.core.runner.ProcessTaskRunner;
import io.kestra.plugin.core.runner.Process;

class ProcessTaskRunnerTest extends AbstractTaskRunnerTest {
class ProcessTest extends AbstractTaskRunnerTest {

@Override
protected TaskRunner taskRunner() {
return new ProcessTaskRunner();
return new Process();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import io.kestra.core.exceptions.IllegalVariableEvaluationException;
import io.kestra.core.models.tasks.runners.DefaultLogConsumer;
import io.kestra.core.models.tasks.runners.*;
import io.kestra.plugin.core.runner.ProcessTaskRunner;
import io.kestra.plugin.core.runner.Process;
import io.kestra.core.models.tasks.NamespaceFiles;
import io.kestra.core.runners.FilesService;
import io.kestra.core.runners.NamespaceFilesService;
Expand All @@ -12,7 +12,7 @@
import io.kestra.plugin.scripts.exec.scripts.models.DockerOptions;
import io.kestra.plugin.scripts.exec.scripts.models.RunnerType;
import io.kestra.plugin.scripts.exec.scripts.models.ScriptOutput;
import io.kestra.plugin.scripts.runner.docker.DockerTaskRunner;
import io.kestra.plugin.scripts.runner.docker.Docker;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.With;
Expand Down Expand Up @@ -175,8 +175,8 @@ public ScriptOutput run() throws Exception {
public TaskRunner getTaskRunner() {
if (taskRunner == null) {
taskRunner = switch (runnerType) {
case DOCKER -> DockerTaskRunner.from(this.dockerOptions);
case PROCESS -> new ProcessTaskRunner();
case DOCKER -> Docker.from(this.dockerOptions);
case PROCESS -> new Process();
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,15 +90,15 @@
- out.txt
containerImage: centos
taskRunner:
type: io.kestra.plugin.scripts.runner.docker.DockerTaskRunner
type: io.kestra.plugin.scripts.runner.docker.Docker
commands:
- cp {{workingDir}}/data.txt {{workingDir}}/out.txt""",
full = true
)
},
beta = true // all task runners are beta for now, but this one is stable as it was the one used before
)
public class DockerTaskRunner extends TaskRunner {
public class Docker extends TaskRunner {
private static final ReadableBytesTypeConverter READABLE_BYTES_TYPE_CONVERTER = new ReadableBytesTypeConverter();
public static final Pattern NEWLINE_PATTERN = Pattern.compile("([^\\r\\n]+)[\\r\\n]+");

Expand Down Expand Up @@ -200,13 +200,13 @@ public class DockerTaskRunner extends TaskRunner {
)
@PluginProperty(dynamic = true)
private String shmSize;
public static DockerTaskRunner from(DockerOptions dockerOptions) {

public static Docker from(DockerOptions dockerOptions) {
if (dockerOptions == null) {
return DockerTaskRunner.builder().build();
return Docker.builder().build();
}

return DockerTaskRunner.builder()
return Docker.builder()
.host(dockerOptions.getHost())
.config(dockerOptions.getConfig())
.credentials(dockerOptions.getCredentials())
Expand Down Expand Up @@ -258,10 +258,10 @@ public RunnerResult run(RunContext runContext, TaskCommands taskCommands, List<S
exec.getId(),
String.join(" ", taskCommands.getCommands())
);

// register the runnable to be used for killing the container.
onKill(() -> kill(dockerClient, exec.getId(), logger));

AtomicBoolean ended = new AtomicBoolean(false);

try {
Expand Down Expand Up @@ -413,7 +413,7 @@ private CreateContainerCmd configure(TaskCommands taskCommands, DockerClient doc

Path workingDirectory = taskCommands.getWorkingDirectory();
String image = runContext.render(this.image, additionalVars);

CreateContainerCmd container = dockerClient.createContainerCmd(image);
addMetadata(runContext, container);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
import io.kestra.core.models.tasks.runners.TaskRunner;


class DockerTaskRunnerTest extends AbstractTaskRunnerTest {
class DockerTest extends AbstractTaskRunnerTest {
@Override
protected TaskRunner taskRunner() {
return DockerTaskRunner.builder().image("centos").build();
return Docker.builder().image("centos").build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import io.kestra.core.utils.TestsUtils;
import io.kestra.plugin.scripts.exec.scripts.models.DockerOptions;
import io.kestra.plugin.scripts.exec.scripts.runners.CommandsWrapper;
import io.kestra.plugin.scripts.runner.docker.DockerTaskRunner;
import io.kestra.plugin.scripts.runner.docker.Docker;
import io.micronaut.context.ApplicationContext;
import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
import jakarta.inject.Inject;
Expand Down Expand Up @@ -50,7 +50,7 @@ public String getType() {
"echo \"::{\\\"outputs\\\":{\\\"someOutput\\\":\\\"" + outputValue + "\\\"}}::\"\n" +
"echo -n another line"
));
RunnerResult run = DockerTaskRunner.from(DockerOptions.builder().image("alpine").build()).run(
RunnerResult run = Docker.from(DockerOptions.builder().image("alpine").build()).run(
runContext,
taskCommands,
Collections.emptyList(),
Expand Down Expand Up @@ -86,7 +86,7 @@ public String getType() {
"echo " + outputValue +
"echo -n another line"
));
RunnerResult run = DockerTaskRunner.from(DockerOptions.builder().image("alpine").build()).run(
RunnerResult run = Docker.from(DockerOptions.builder().image("alpine").build()).run(
runContext,
taskCommands,
Collections.emptyList(),
Expand Down

0 comments on commit 8497665

Please sign in to comment.