This commit is contained in:
Zoltan Kiss 2019-10-04 13:58:58 +01:00
parent 6ae9151012
commit 612ec201eb
2 changed files with 6 additions and 9 deletions

View File

@ -106,12 +106,12 @@ class KubesTest extends DefaultTask {
project.logger.lifecycle("scheduled pod: " + podName) project.logger.lifecycle("scheduled pod: " + podName)
File outputFile = Files.createTempFile("container", ".log").toFile() File outputFile = Files.createTempFile("container", ".log").toFile()
attachStatusListenerToPod(client, namespace, podName) attachStatusListenerToPod(client, namespace, podName)
schedulePodForDeleteOnShutdown(podName, client, createdPod) schedulePodForDeleteOnShutdown(client, createdPod)
waitForPodToStart(podName, client, namespace) waitForPodToStart(podName, client, namespace)
def stdOutOs = new PipedOutputStream() def stdOutOs = new PipedOutputStream()
def stdOutIs = new PipedInputStream(4096) def stdOutIs = new PipedInputStream(4096)
ByteArrayOutputStream errChannelStream = new ByteArrayOutputStream(); ByteArrayOutputStream errChannelStream = new ByteArrayOutputStream();
KubePodResult result = new KubePodResult(createdPod, null, outputFile) KubePodResult result = new KubePodResult(createdPod, outputFile)
CompletableFuture<KubePodResult> waiter = new CompletableFuture<>() CompletableFuture<KubePodResult> waiter = new CompletableFuture<>()
ExecListener execListener = buildExecListenerForPod(podName, errChannelStream, waiter, result) ExecListener execListener = buildExecListenerForPod(podName, errChannelStream, waiter, result)
stdOutIs.connect(stdOutOs) stdOutIs.connect(stdOutOs)
@ -209,10 +209,10 @@ class KubesTest extends DefaultTask {
} }
} }
void schedulePodForDeleteOnShutdown(String podName, client, Pod createdPod) { void schedulePodForDeleteOnShutdown(client, Pod createdPod) {
project.logger.info("attaching shutdown hook for pod ${podName}") project.logger.info("attaching shutdown hook for pod ${createdPod.metadata.name}")
Runtime.getRuntime().addShutdownHook({ Runtime.getRuntime().addShutdownHook({
println "Deleting pod: " + podName println "Deleting pod: " + createdPod.metadata.name
client.pods().delete(createdPod) client.pods().delete(createdPod)
}) })
} }

View File

@ -5,19 +5,16 @@ import io.fabric8.kubernetes.api.model.Pod;
import java.io.File; import java.io.File;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.concurrent.CompletableFuture;
public class KubePodResult { public class KubePodResult {
private final Pod createdPod; private final Pod createdPod;
private final CompletableFuture<Void> waiter;
private volatile Integer resultCode = 255; private volatile Integer resultCode = 255;
private final File output; private final File output;
private volatile Collection<File> binaryResults = Collections.emptyList(); private volatile Collection<File> binaryResults = Collections.emptyList();
KubePodResult(Pod createdPod, CompletableFuture<Void> waiter, File output) { KubePodResult(Pod createdPod, File output) {
this.createdPod = createdPod; this.createdPod = createdPod;
this.waiter = waiter;
this.output = output; this.output = output;
} }