@Override public TaskListener getListener() { return inner.getListener(); }
@Override public TaskListener getListener() { return inner.getListener(); }
@Override public Proc launch(ProcStarter starter) throws IOException { AtomicBoolean processAlive = new AtomicBoolean(false); CountDownLatch processStarted = new CountDownLatch(1); CountDownLatch processFinished = new CountDownLatch(1); ExecWatch execWatch = kubernetes.exec(name, containerName, processAlive, processStarted, processFinished, launcher.getListener().getLogger(), getCommands(starter) ); return new PodExecProc(name, processAlive, processFinished, execWatch); }
private String[] getPrefix() { String[] tp = prefix.clone(); if(tp.length > 0){ tp[0] = CoverityUtils.getCovBuild(decorated.getListener(), node); } return tp; }
/** * Who is executing this {@link DockerClient} instance. * * @return a {@link String} containing the <strong>uid:gid</strong>. */ public String whoAmI() throws IOException, InterruptedException { ByteArrayOutputStream userId = new ByteArrayOutputStream(); launcher.launch().cmds("id", "-u").quiet(true).stdout(userId).start().joinWithTimeout(CLIENT_TIMEOUT, TimeUnit.SECONDS, launcher.getListener()); ByteArrayOutputStream groupId = new ByteArrayOutputStream(); launcher.launch().cmds("id", "-g").quiet(true).stdout(groupId).start().joinWithTimeout(CLIENT_TIMEOUT, TimeUnit.SECONDS, launcher.getListener()); final String charsetName = Charset.defaultCharset().name(); return String.format("%s:%s", userId.toString(charsetName).trim(), groupId.toString(charsetName).trim()); }
@Override public String createVolume(TaskListener listener) throws IOException, InterruptedException { ArgumentListBuilder args = new ArgumentListBuilder() .add("volume", "create"); ByteArrayOutputStream out = new ByteArrayOutputStream(); Launcher launcher = new Launcher.LocalLauncher(listener); int status = launchDockerCLI(launcher, args) .stdout(out).stderr(launcher.getListener().getLogger()).join(); final String volume = out.toString(UTF_8).trim(); if (status != 0) { throw new IOException("Failed to create docker volume"); } return volume; }
@Override public String createVolume(TaskListener listener) throws IOException, InterruptedException { ArgumentListBuilder args = new ArgumentListBuilder() .add("volume", "create"); ByteArrayOutputStream out = new ByteArrayOutputStream(); Launcher launcher = new Launcher.LocalLauncher(listener); int status = launchDockerCLI(launcher, args) .stdout(out).stderr(launcher.getListener().getLogger()).join(); final String volume = out.toString(UTF_8).trim(); if (status != 0) { throw new IOException("Failed to create docker volume"); } return volume; }
@Override public String serverVersion(TaskListener listener) throws IOException, InterruptedException { ArgumentListBuilder args = new ArgumentListBuilder() .add("version", "-f", "{{.Server.Version}}"); ByteArrayOutputStream out = new ByteArrayOutputStream(); Launcher launcher = new Launcher.LocalLauncher(listener); int status = launchDockerCLI(launcher, args) .stdout(out).stderr(launcher.getListener().getLogger()).join(); final String version = out.toString(UTF_8).trim(); if (status != 0) { throw new IOException("Failed to connect to docker API"); } return version; }
@Override public String serverVersion(TaskListener listener) throws IOException, InterruptedException { ArgumentListBuilder args = new ArgumentListBuilder() .add("version", "-f", "{{.Server.Version}}"); ByteArrayOutputStream out = new ByteArrayOutputStream(); Launcher launcher = new Launcher.LocalLauncher(listener); int status = launchDockerCLI(launcher, args) .stdout(out).stderr(launcher.getListener().getLogger()).join(); final String version = out.toString(UTF_8).trim(); if (status != 0) { throw new IOException("Failed to connect to docker API"); } return version; }
@Override public boolean hasContainer(TaskListener listener, String id) throws IOException, InterruptedException { if (StringUtils.isEmpty(id)) { return false; } ArgumentListBuilder args = new ArgumentListBuilder() .add("inspect", "-f", "'{{.Id}}'", id); ByteArrayOutputStream out = new ByteArrayOutputStream(); Launcher launcher = new Launcher.LocalLauncher(listener); int status = launchDockerCLI(launcher, args) .stdout(out).stderr(launcher.getListener().getLogger()).join(); return status == 0; }
protected void getFileContent(Launcher launcher, String containerId, String filename, OutputStream outputStream) throws IOException, InterruptedException { ArgumentListBuilder args = new ArgumentListBuilder() .add("cp", containerId + ":" + filename, "-"); ByteArrayOutputStream out = new ByteArrayOutputStream(); int status = launchDockerCLI(launcher, args) .stdout(out).stderr(launcher.getListener().getLogger()).join(); if (status != 0) { throw new IOException("Failed to get file"); } TarInputStream tar = new TarInputStream(new ByteArrayInputStream(out.toByteArray())); tar.getNextEntry(); tar.copyEntryContents(outputStream); tar.close(); }
@Override public boolean hasVolume(TaskListener listener, String name) throws IOException, InterruptedException { if (StringUtils.isEmpty(name)) { return false; } ArgumentListBuilder args = new ArgumentListBuilder() .add("volume", "inspect", "-f", "'{{.Name}}'", name); ByteArrayOutputStream out = new ByteArrayOutputStream(); Launcher launcher = new Launcher.LocalLauncher(listener); int status = launchDockerCLI(launcher, args) .stdout(out).stderr(launcher.getListener().getLogger()).join(); return status == 0; }
protected void getFileContent(Launcher launcher, String containerId, String filename, OutputStream outputStream) throws IOException, InterruptedException { ArgumentListBuilder args = new ArgumentListBuilder() .add("cp", containerId + ":" + filename, "-"); ByteArrayOutputStream out = new ByteArrayOutputStream(); int status = launchDockerCLI(launcher, args) .stdout(out).stderr(launcher.getListener().getLogger()).join(); if (status != 0) { throw new IOException("Failed to get file"); } TarInputStream tar = new TarInputStream(new ByteArrayInputStream(out.toByteArray())); tar.getNextEntry(); tar.copyEntryContents(outputStream); tar.close(); }
@Override public void pullImage(TaskListener listener, String image) throws IOException, InterruptedException { ArgumentListBuilder args = new ArgumentListBuilder() .add("pull") .add(image); Launcher launcher = new Launcher.LocalLauncher(listener); int status = launchDockerCLI(launcher, args) .stdout(launcher.getListener().getLogger()).join(); if (status != 0) { throw new IOException("Failed to pull image " + image); } }
public ClearTool createClearTool(AbstractBuild<?, ?> build, Launcher launcher) { BuildVariableResolver variableResolver = new BuildVariableResolver(build); ClearToolLauncher clearToolLauncher = createClearToolLauncher(launcher.getListener(), build.getWorkspace(), launcher); return createClearTool(variableResolver, clearToolLauncher); }
@Override public void pullImage(TaskListener listener, String image) throws IOException, InterruptedException { ArgumentListBuilder args = new ArgumentListBuilder() .add("pull") .add(image); Launcher launcher = new Launcher.LocalLauncher(listener); int status = launchDockerCLI(launcher, args) .stdout(launcher.getListener().getLogger()).join(); if (status != 0) { throw new IOException("Failed to pull image " + image); } }
@Override public void removeContainer(TaskListener listener, Container instance) throws IOException, InterruptedException { ArgumentListBuilder args = new ArgumentListBuilder() .add("rm", "-f", instance.getId()); ByteArrayOutputStream out = new ByteArrayOutputStream(); Launcher launcher = new Launcher.LocalLauncher(listener); int status = launchDockerCLI(launcher, args) .stdout(out).stderr(launcher.getListener().getLogger()).join(); if (status != 0) { throw new IOException("Failed to remove container " + instance.getId()); } }
@Override public void removeContainer(TaskListener listener, Container instance) throws IOException, InterruptedException { ArgumentListBuilder args = new ArgumentListBuilder() .add("rm", "-f", instance.getId()); ByteArrayOutputStream out = new ByteArrayOutputStream(); Launcher launcher = new Launcher.LocalLauncher(listener); int status = launchDockerCLI(launcher, args) .stdout(out).stderr(launcher.getListener().getLogger()).join(); if (status != 0) { throw new IOException("Failed to remove container " + instance.getId()); } }
@Override public boolean checkImageExists(TaskListener listener, String image) throws IOException, InterruptedException { ArgumentListBuilder args = new ArgumentListBuilder() .add("inspect") .add("-f", "'{{.Id}}'") .add(image); ByteArrayOutputStream out = new ByteArrayOutputStream(); Launcher launcher = new Launcher.LocalLauncher(listener); return launchDockerCLI(launcher, args) .stdout(out).stderr(launcher.getListener().getLogger()).join() == 0; }
@Override public boolean checkImageExists(TaskListener listener, String image) throws IOException, InterruptedException { ArgumentListBuilder args = new ArgumentListBuilder() .add("inspect") .add("-f", "'{{.Id}}'") .add(image); ByteArrayOutputStream out = new ByteArrayOutputStream(); Launcher launcher = new Launcher.LocalLauncher(listener); return launchDockerCLI(launcher, args) .stdout(out).stderr(launcher.getListener().getLogger()).join() == 0; }