@Test public void testBuildImageFromDockerfile() throws IOException, InterruptedException, URISyntaxException { removeImageIfExists(IMAGE_TEST_TAG); BuildOptions options = BuildOptions.Builder.tag(IMAGE_TEST_TAG).verbose(false).nocache(true); InputStream buildImageStream = api().build(tarredDockerfile(), options); String buildStream = consumeStream(buildImageStream); try { Iterable<String> splitted = Splitter.on("\n").split(buildStream.replace("\r", "").trim()); String lastStreamedLine = Iterables.getLast(splitted).trim(); String rawImageId = Iterables.getLast(Splitter.on("Successfully built ").split(lastStreamedLine)); imageId = rawImageId.substring(0, 11); assertNotNull(imageId); } finally { removeImageIfExists(IMAGE_TEST_TAG); } }
@Test public void testExecCreate() { exec = api().execCreate(container.id(), ExecCreateParams.builder() .cmd(ImmutableList.<String> of("/bin/sh", "-c", "echo -n Standard >&1 && echo -n Error >&2 && exit 2")) .attachStderr(true).attachStdout(true).build()); assertNotNull(exec); assertNotNull(exec.id()); }
@Test(dependsOnMethods = "testExecStart") public void testExecInspect() throws IOException { ExecInspect execInspect = api().execInspect(exec.id()); assertNotNull(execInspect); assertEquals(execInspect.id(), exec.id()); assertEquals(execInspect.running(), false); assertEquals(execInspect.exitCode(), 2); }
@Test public void testVersion() { assertNotNull(api().getVersion().apiVersion()); assertNotNull(api().getVersion().version()); assertNotNull(api().getVersion().gitCommit()); assertNotNull(api().getVersion().goVersion()); assertNotNull(api().getVersion().kernelVersion()); assertNotNull(api().getVersion().arch()); assertNotNull(api().getVersion().os()); }
@Test public void testInfo() { assertNotNull(api().getInfo()); }
DockerInputStream inputStream = null; try { inputStream = new DockerInputStream(api().execStart(exec.id(), startParams)); assertNotNull(inputStream); ByteArrayOutputStream baosOut = new ByteArrayOutputStream();
public void testGetVersion() throws Exception { MockWebServer server = mockWebServer(new MockResponse().setBody(payloadFromResource("/version.json"))); MiscApi api = api(DockerApi.class, server.getUrl("/").toString()).getMiscApi(); try { assertEquals(api.getVersion(), new VersionParseTest().expected()); assertSent(server, "GET", "/version"); } finally { server.shutdown(); } }
public void testGetInfo() throws Exception { MockWebServer server = mockWebServer(new MockResponse().setBody(payloadFromResource("/info.json"))); MiscApi api = api(DockerApi.class, server.getUrl("/").toString()).getMiscApi(); try { assertEquals(api.getInfo(), new InfoParseTest().expected()); assertSent(server, "GET", "/info"); } finally { server.shutdown(); } }
public void testExecStart() throws Exception { MockWebServer server = mockWebServer(new MockResponse().setBody(payloadFromResource("/exec.start"))); MiscApi api = api(DockerApi.class, server.getUrl("/").toString(), new DockerParserModule()).getMiscApi(); DockerInputStream dis = null; try { final String execId = "dbf45d296388032ebb9872edb75847f6655a72b4e9ab0d99ae1c75589c4ca957"; final ExecStartParams startParams = ExecStartParams.builder().detach(false).build(); dis = new DockerInputStream(api.execStart(execId, startParams)); final StdStreamData msg1 = dis.readStdStreamData(); assertFalse(msg1.isTruncated()); assertEquals(msg1.getPayload(), "Standard".getBytes(StandardCharsets.UTF_8)); assertEquals(msg1.getType(), StdStreamType.OUT); final StdStreamData msg2 = dis.readStdStreamData(); assertFalse(msg2.isTruncated()); assertEquals(msg2.getPayload(), "Error".getBytes(StandardCharsets.UTF_8)); assertEquals(msg2.getType(), StdStreamType.ERR); assertNull(dis.readStdStreamData()); assertSent(server, "POST", "/exec/" + execId + "/start"); } finally { if (dis != null) { dis.close(); } server.shutdown(); } }
public void testBuildContainerUsingPayload() throws Exception { MockWebServer server = mockWebServer(new MockResponse().setResponseCode(200)); MiscApi api = api(DockerApi.class, server.getUrl("/").toString()).getMiscApi(); File file = File.createTempFile("docker", "tmp"); FileInputStream data = new FileInputStream(file); Payload payload = Payloads.newInputStreamPayload(data); payload.getContentMetadata().setContentLength(file.length()); try { api.build(payload); RecordedRequest request = assertSent(server, "POST", "/build"); assertDockerBuildHttpHeaders(request); } finally { server.shutdown(); } }
public void testExecInspect() throws IOException, InterruptedException { MockWebServer server = mockWebServer(new MockResponse().setBody(payloadFromResource("/execInspect.json"))); MiscApi api = api(DockerApi.class, server.getUrl("/").toString(), new DockerParserModule()).getMiscApi(); final String expectedExecId = "fda1cf8064863fc0667c691c69793fdb7d0bd4a1fabb8250536abe5203e4208a"; ExecInspect execInspect = api.execInspect(expectedExecId); assertNotNull(execInspect); assertEquals(execInspect.id(), expectedExecId); assertEquals(execInspect.running(), false); assertEquals(execInspect.exitCode(), 2); assertSent(server, "GET", "/exec/" + expectedExecId + "/json"); }
public void testExecCreate() throws Exception { MockWebServer server = mockWebServer(new MockResponse().setBody(payloadFromResource("/exec.json"))); MiscApi api = api(DockerApi.class, server.getUrl("/").toString(), new DockerParserModule()).getMiscApi(); try { final String containerId = "a40d212a0a379de00426a1da2a8fd3fd20d5f74fd7c2dd42f6c93a6b1b0e6974"; final ExecCreateParams execParams = ExecCreateParams.builder() .cmd(ImmutableList.<String> of("/bin/sh", "-c", "echo -n Standard >&1 && echo -n Error >&2")) .attachStderr(true).attachStdout(true).build(); final Exec expectedExec = Exec.create("dbf45d296388032ebb9872edb75847f6655a72b4e9ab0d99ae1c75589c4ca957"); assertEquals(api.execCreate(containerId, execParams), expectedExec); assertSent(server, "POST", "/containers/" + containerId + "/exec"); } finally { server.shutdown(); } }
public void testBuildContainer() throws Exception { MockWebServer server = mockWebServer(new MockResponse().setResponseCode(200)); MiscApi api = api(DockerApi.class, server.getUrl("/").toString()).getMiscApi(); try { api.build(tarredDockerfile()); RecordedRequest request = assertSent(server, "POST", "/build"); assertDockerBuildHttpHeaders(request); } finally { server.shutdown(); } }
/** * Build a new image with 2 tags on it in the test preparation phase. * * @see org.jclouds.apis.BaseContextLiveTest#setupContext() */ @Override @BeforeClass(groups = { "integration", "live" }) public void setupContext() { super.setupContext(); final String tag = toTag(IMAGE_REPOSITORY, IMAGE_TAG_1); removeImageIfExists(api(), tag); removeImageIfExists(api(), toTag(IMAGE_REPOSITORY, IMAGE_TAG_2)); BuildOptions options = BuildOptions.Builder.tag(tag).verbose(false).nocache(false); InputStream buildImageStream; try { buildImageStream = api().getMiscApi().build(BaseDockerApiLiveTest.tarredDockerfile(), options); consumeStreamSilently(buildImageStream); } catch (IOException e) { throw new RuntimeException("Error occured during building Docker image.", e); } image = api().getImageApi().inspectImage(tag); api().getImageApi().tagImage(image.id(), IMAGE_REPOSITORY, IMAGE_TAG_2, true); }