From b728f95ceef79ee0402677e5c8e2dcac2ab26df4 Mon Sep 17 00:00:00 2001 From: Julien WITTOUCK Date: Thu, 19 Dec 2019 19:29:42 +0100 Subject: [PATCH 1/3] :white_check_mark: : add simple integration test for DockerRunner --- .../io/codeka/gaia/runner/DockerRunnerIT.kt | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/test/java/io/codeka/gaia/runner/DockerRunnerIT.kt diff --git a/src/test/java/io/codeka/gaia/runner/DockerRunnerIT.kt b/src/test/java/io/codeka/gaia/runner/DockerRunnerIT.kt new file mode 100644 index 000000000..5d6913107 --- /dev/null +++ b/src/test/java/io/codeka/gaia/runner/DockerRunnerIT.kt @@ -0,0 +1,43 @@ +package io.codeka.gaia.runner + +import io.codeka.gaia.runner.config.DockerConfig +import io.codeka.gaia.settings.bo.Settings +import io.codeka.gaia.stacks.bo.Job +import io.codeka.gaia.stacks.workflow.JobWorkflow +import org.junit.Assert +import org.junit.jupiter.api.Test +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.boot.context.properties.EnableConfigurationProperties +import org.springframework.boot.test.context.SpringBootTest +import org.springframework.test.context.TestPropertySource + +@SpringBootTest(classes = [DockerRunner::class, DockerConfig::class, Settings::class, HttpHijackWorkaround::class]) +@EnableConfigurationProperties +@TestPropertySource(properties = ["gaia.dockerDaemonUrl=unix:///var/run/docker.sock"]) +class DockerRunnerIT { + + @Autowired + private lateinit var dockerRunner: DockerRunner + + @Test + fun `runContainerForJob() should work with a simple script`() { + val script = "echo 'Hello World'" + + val job = Job() + job.cliVersion = "0.12.18" + val jobWorkflow = JobWorkflow(job) + + Assert.assertEquals(0, dockerRunner.runContainerForJob(jobWorkflow, script).toLong()) + } + + @Test + fun `runContainerForJob() should return the script exit code`() { + val script = "exit 5" + + val job = Job() + job.cliVersion = "0.12.18" + val jobWorkflow = JobWorkflow(job) + + Assert.assertEquals(5, dockerRunner.runContainerForJob(jobWorkflow, script).toLong()) + } +} \ No newline at end of file From 8d403963b1e62e9fdfcb42d8320f69761afaff91 Mon Sep 17 00:00:00 2001 From: Julien WITTOUCK Date: Thu, 19 Dec 2019 19:30:48 +0100 Subject: [PATCH 2/3] :loud_sound: : log error when a job fails --- src/main/java/io/codeka/gaia/runner/DockerRunner.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/io/codeka/gaia/runner/DockerRunner.java b/src/main/java/io/codeka/gaia/runner/DockerRunner.java index 165551d69..98d208295 100644 --- a/src/main/java/io/codeka/gaia/runner/DockerRunner.java +++ b/src/main/java/io/codeka/gaia/runner/DockerRunner.java @@ -89,8 +89,10 @@ int runContainerForJob(JobWorkflow jobWorkflow, String script) { return Math.toIntExact(containerExit.statusCode()); } catch (InterruptedException e) { Thread.currentThread().interrupt(); + LOG.error("Interrupted Exception", e); return 99; } catch (DockerException | IOException | StackRunnerException e) { + LOG.error("Exception when running job", e); return 99; } } From 0801e9bbe958dac2b31dbb9d57f2fdebf5f090a5 Mon Sep 17 00:00:00 2001 From: Julien WITTOUCK Date: Thu, 19 Dec 2019 19:31:26 +0100 Subject: [PATCH 3/3] :pushpin: : fixes jersey.version to 2.27 as other versions doesn't work resolves #193 --- pom.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index db6b1a474..e6abdc2bf 100644 --- a/pom.xml +++ b/pom.xml @@ -41,6 +41,7 @@ 11 + 2.27 5.5.2 1.3.61 1.12.4 @@ -147,7 +148,7 @@ org.glassfish.jersey.inject jersey-hk2 - 2.29.1 + ${jersey.version}