You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ra...@apache.org on 2014/09/01 12:40:03 UTC
[48/51] [partial] Fixing STRATOS-765 - upgrade to JClouds 1.8.0
http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/domain/State.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/domain/State.java b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/domain/State.java
deleted file mode 100644
index 7207a86..0000000
--- a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/domain/State.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.docker.domain;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import java.beans.ConstructorProperties;
-
-import com.google.common.base.Objects;
-import com.google.gson.annotations.SerializedName;
-
-/**
- * @author Andrea Turli
- */
-public class State {
- @SerializedName("Pid")
- private final int pid;
- @SerializedName("Running")
- private final boolean running;
- @SerializedName("ExitCode")
- private final int exitCode;
- @SerializedName("StartedAt")
- private final String startedAt;
- @SerializedName("FinishedAt")
- private final String finishedAt;
- @SerializedName("Ghost")
- private final boolean ghost;
-
- @ConstructorProperties({ "Pid", "Running", "ExitCode", "StartedAt", "FinishedAt", "Ghost" })
- public State(int pid, boolean running, int exitCode, String startedAt, String finishedAt, boolean ghost) {
- this.pid = checkNotNull(pid, "pid");
- this.running = checkNotNull(running, "running");
- this.exitCode = checkNotNull(exitCode, "exitCode");
- this.startedAt = checkNotNull(startedAt, "startedAt");
- this.finishedAt = checkNotNull(finishedAt, "finishedAt");
- this.ghost = checkNotNull(ghost, "ghost");
- }
-
- public int getPid() {
- return pid;
- }
-
- public boolean isRunning() {
- return running;
- }
-
- public int getExitCode() {
- return exitCode;
- }
-
- public String getStartedAt() {
- return startedAt;
- }
-
- public String getFinishedAt() {
- return finishedAt;
- }
-
- public boolean isGhost() {
- return ghost;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
- State that = (State) o;
-
- return Objects.equal(this.pid, that.pid) &&
- Objects.equal(this.running, that.running) &&
- Objects.equal(this.exitCode, that.exitCode) &&
- Objects.equal(this.startedAt, that.startedAt) &&
- Objects.equal(this.finishedAt, that.finishedAt) &&
- Objects.equal(this.ghost, that.ghost);
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(pid, running, exitCode, startedAt, finishedAt, ghost);
- }
-
- @Override
- public String toString() {
- return Objects.toStringHelper(this)
- .add("pid", pid)
- .add("running", running)
- .add("exitCode", exitCode)
- .add("startedAt", startedAt)
- .add("finishedAt", finishedAt)
- .add("ghost", ghost)
- .toString();
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public Builder toBuilder() {
- return builder().fromState(this);
- }
-
- public static final class Builder {
-
- private int pid;
- private boolean running;
- private int exitCode;
- private String startedAt;
- private String finishedAt;
- private boolean ghost;
-
- public Builder pid(int pid) {
- this.pid = pid;
- return this;
- }
-
- public Builder running(boolean running) {
- this.running = running;
- return this;
- }
-
- public Builder exitCode(int exitCode) {
- this.exitCode = exitCode;
- return this;
- }
-
- public Builder startedAt(String startedAt) {
- this.startedAt = startedAt;
- return this;
- }
-
- public Builder finishedAt(String finishedAt) {
- this.finishedAt = finishedAt;
- return this;
- }
-
- public Builder ghost(boolean ghost) {
- this.ghost = ghost;
- return this;
- }
-
- public State build() {
- return new State(pid, running, exitCode, startedAt, finishedAt, ghost);
- }
-
- public Builder fromState(State in) {
- return this
- .pid(in.getPid())
- .running(in.isRunning())
- .exitCode(in.getExitCode())
- .startedAt(in.getStartedAt())
- .finishedAt(in.getFinishedAt())
- .ghost(in.isGhost());
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/domain/Version.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/domain/Version.java b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/domain/Version.java
deleted file mode 100644
index 1b6984e..0000000
--- a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/domain/Version.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.docker.domain;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import java.beans.ConstructorProperties;
-
-import com.google.common.base.Objects;
-import com.google.gson.annotations.SerializedName;
-
-/**
- * @author Andrea Turli
- */
-public class Version {
- @SerializedName("Arch")
- private final String arch;
- @SerializedName("GitCommit")
- private final String gitCommit;
- @SerializedName("GoVersion")
- private final String goVersion;
- @SerializedName("KernelVersion")
- private final String kernelVersion;
- @SerializedName("Os")
- private final String os;
- @SerializedName("Version")
- private final String version;
-
- @ConstructorProperties({ "Arch", "GitCommit", "GoVersion", "KernelVersion", "Os", "Version" })
- public Version(String arch, String gitCommit, String goVersion, String kernelVersion, String os, String version) {
- this.arch = checkNotNull(arch, "arch");
- this.gitCommit = checkNotNull(gitCommit, "gitCommit");
- this.goVersion = checkNotNull(goVersion, "goVersion");
- this.kernelVersion = checkNotNull(kernelVersion, "kernelVersion");
- this.os = checkNotNull(os, "os");
- this.version = checkNotNull(version, "version");
- }
-
- public String getArch() {
- return arch;
- }
-
- public String getGitCommit() {
- return gitCommit;
- }
-
- public String getGoVersion() {
- return goVersion;
- }
-
- public String getKernelVersion() {
- return kernelVersion;
- }
-
- public String getOs() {
- return os;
- }
-
- public String getVersion() {
- return version;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
- Version that = (Version) o;
-
- return Objects.equal(this.arch, that.arch) &&
- Objects.equal(this.gitCommit, that.gitCommit) &&
- Objects.equal(this.goVersion, that.goVersion) &&
- Objects.equal(this.kernelVersion, that.kernelVersion) &&
- Objects.equal(this.os, that.os) &&
- Objects.equal(this.version, that.version);
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(arch, gitCommit, goVersion, kernelVersion, os, version);
- }
-
- @Override
- public String toString() {
- return Objects.toStringHelper(this)
- .add("arch", arch)
- .add("gitCommit", gitCommit)
- .add("goVersion", goVersion)
- .add("kernelVersion", kernelVersion)
- .add("os", os)
- .add("version", version)
- .toString();
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public Builder toBuilder() {
- return builder().fromVersion(this);
- }
-
- public static final class Builder {
-
- private String arch;
- private String gitCommit;
- private String goVersion;
- private String kernelVersion;
- private String os;
- private String version;
-
- public Builder arch(String arch) {
- this.arch = arch;
- return this;
- }
-
- public Builder gitCommit(String gitCommit) {
- this.gitCommit = gitCommit;
- return this;
- }
-
- public Builder goVersion(String goVersion) {
- this.goVersion = goVersion;
- return this;
- }
-
- public Builder kernelVersion(String kernelVersion) {
- this.kernelVersion = kernelVersion;
- return this;
- }
-
- public Builder os(String os) {
- this.os = os;
- return this;
- }
-
- public Builder version(String version) {
- this.version = version;
- return this;
- }
-
- public Version build() {
- return new Version(arch, gitCommit, goVersion, kernelVersion, os, version);
- }
-
- public Builder fromVersion(Version in) {
- return this
- .arch(in.getArch())
- .gitCommit(in.getGitCommit())
- .goVersion(in.getGoVersion())
- .kernelVersion(in.getKernelVersion())
- .os(in.getOs())
- .version(in.getVersion());
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/handlers/DockerErrorHandler.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/handlers/DockerErrorHandler.java b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/handlers/DockerErrorHandler.java
deleted file mode 100644
index 964a958..0000000
--- a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/handlers/DockerErrorHandler.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.docker.handlers;
-
-import com.google.common.base.Throwables;
-import com.google.common.io.Closeables;
-import org.jclouds.http.HttpCommand;
-import org.jclouds.http.HttpErrorHandler;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.http.HttpResponseException;
-import org.jclouds.logging.Logger;
-import org.jclouds.rest.AuthorizationException;
-import org.jclouds.rest.ResourceNotFoundException;
-import org.jclouds.util.Strings2;
-
-import javax.annotation.Resource;
-import java.io.IOException;
-
-/**
- * This will parse and set an appropriate exception on the command object.
- * <p/>
- * <p/>
- * Errors are returned with an appropriate HTTP status code, an X-Elastic- Error header specifying
- * the error type, and a text description in the HTTP body.
- *
- * @author Andrea Turli
- */
-public class DockerErrorHandler implements HttpErrorHandler {
- @Resource
- protected Logger logger = Logger.NULL;
-
- public void handleError(HttpCommand command, HttpResponse response) {
- // it is important to always read fully and close streams
- String message = parseMessage(response);
- Exception exception = message != null ? new HttpResponseException(command, response, message)
- : new HttpResponseException(command, response);
- try {
- message = message != null ? message : String.format("%s -> %s", command.getCurrentRequest().getRequestLine(),
- response.getStatusLine());
- switch (response.getStatusCode()) {
- case 400:
- if ((command.getCurrentRequest().getEndpoint().getPath().endsWith("/info"))
- || (message != null && message.indexOf("could not be found") != -1))
- exception = new ResourceNotFoundException(message, exception);
- else if (message != null && message.indexOf("currently in use") != -1)
- exception = new IllegalStateException(message, exception);
- else
- exception = new IllegalArgumentException(message, exception);
- break;
- case 401:
- exception = new AuthorizationException(message, exception);
- break;
- case 402:
- exception = new IllegalStateException(message, exception);
- break;
- case 404:
- if (!command.getCurrentRequest().getMethod().equals("DELETE")) {
- exception = new ResourceNotFoundException(message, exception);
- }
- break;
- case 405:
- exception = new IllegalArgumentException(message, exception);
- break;
- case 409:
- exception = new IllegalStateException(message, exception);
- break;
- }
- } finally {
- try {
- Closeables.close(response.getPayload(), true);
- } catch (IOException e) {
- // This code will never be reached
- throw Throwables.propagate(e);
- }
- command.setException(exception);
- }
- }
-
- public String parseMessage(HttpResponse response) {
- if (response.getPayload() == null)
- return null;
- try {
- return Strings2.toString(response.getPayload());
- } catch (IOException e) {
- throw Throwables.propagate(e);
- } finally {
- try {
- response.getPayload().getInput().close();
- } catch (IOException e) {
- throw Throwables.propagate(e);
- }
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/BuildOptions.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/BuildOptions.java b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/BuildOptions.java
deleted file mode 100644
index 8a8bc05..0000000
--- a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/BuildOptions.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.docker.options;
-
-import org.jclouds.http.options.BaseHttpRequestOptions;
-
-/**
- * Options to customize image builder.
- *
- * @author Andrea Turli
- */
-public class BuildOptions extends BaseHttpRequestOptions {
-
- public static final BuildOptions NONE = new BuildOptions();
-
- public BuildOptions tag(String tag) {
- this.queryParameters.put("tag", tag);
- return this;
- }
-
- public BuildOptions verbose(Boolean verbose) {
- this.queryParameters.put("verbose", verbose.toString());
- return this;
- }
-
- public BuildOptions nocache(Boolean nocache) {
- this.queryParameters.put("nocache", nocache.toString());
- return this;
- }
-
- public static class Builder {
-
- /**
- * @see BuildOptions#tag
- */
- public static BuildOptions tag(String tag) {
- BuildOptions options = new BuildOptions();
- return options.tag(tag);
- }
-
- /**
- * @see BuildOptions#verbose(Boolean)
- */
- public static BuildOptions verbose(Boolean verbose) {
- BuildOptions options = new BuildOptions();
- return options.verbose(verbose);
- }
-
- /**
- * @see BuildOptions#nocache(Boolean)
- */
- public static BuildOptions nocache(Boolean nocache) {
- BuildOptions options = new BuildOptions();
- return options.nocache(nocache);
- }
-
- }
-
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/CommitOptions.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/CommitOptions.java b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/CommitOptions.java
deleted file mode 100644
index 7f058d4..0000000
--- a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/CommitOptions.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.docker.options;
-
-import org.jclouds.http.options.BaseHttpRequestOptions;
-
-/**
- * Options to customize image commit.
- *
- * @author Andrea Turli
- */
-public class CommitOptions extends BaseHttpRequestOptions {
-
- public static final CommitOptions NONE = new CommitOptions();
-
- public CommitOptions containerId(String containerId) {
- this.queryParameters.put("containerId", containerId);
- return this;
- }
-
- public CommitOptions repository(String repository) {
- this.queryParameters.put("repository", repository);
- return this;
- }
-
- public CommitOptions tag(String tag) {
- this.queryParameters.put("tag", tag);
- return this;
- }
-
- public CommitOptions message(String message) {
- this.queryParameters.put("message", message);
- return this;
- }
-
- public CommitOptions author(String author) {
- this.queryParameters.put("author", author);
- return this;
- }
-
- public CommitOptions run(String run) {
- this.queryParameters.put("run", run);
- return this;
- }
-
- public static class Builder {
-
- /**
- * @see CommitOptions#containerId
- */
- public static CommitOptions containerId(String containerId) {
- CommitOptions options = new CommitOptions();
- return options.containerId(containerId);
- }
-
- /**
- * @see CommitOptions#repository
- */
- public static CommitOptions repository(String repository) {
- CommitOptions options = new CommitOptions();
- return options.repository(repository);
- }
-
- /**
- * @see CommitOptions#tag
- */
- public static CommitOptions tag(String tag) {
- CommitOptions options = new CommitOptions();
- return options.tag(tag);
- }
-
- /**
- * @see CommitOptions#message
- */
- public static CommitOptions message(String message) {
- CommitOptions options = new CommitOptions();
- return options.message(message);
- }
-
- /**
- * @see CommitOptions#author
- */
- public static CommitOptions author(String author) {
- CommitOptions options = new CommitOptions();
- return options.author(author);
- }
-
- /**
- * @see CommitOptions#run
- */
- public static CommitOptions run(String run) {
- CommitOptions options = new CommitOptions();
- return options.run(run);
- }
-
- }
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/CreateImageOptions.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/CreateImageOptions.java b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/CreateImageOptions.java
deleted file mode 100644
index 5ff65af..0000000
--- a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/CreateImageOptions.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.docker.options;
-
-import org.jclouds.http.options.BaseHttpRequestOptions;
-
-/**
- * Options to customize container creation.
- *
- * @author Andrea Turli
- */
-public class CreateImageOptions extends BaseHttpRequestOptions {
-
- /*
- private final String fromImage;
- private final String fromSrc;
- private final String repo;
- private final String tag;
- private final String registry;
-
- public CreateImageOptions(String fromImage, String fromSrc, String repo, String tag, String registry) {
- this.fromImage = fromImage;
- this.fromSrc = fromSrc;
- this.repo = repo;
- this.tag = tag;
- this.registry = registry;
-
- if (fromImage != null) {
- queryParameters.put("fromImage", fromImage);
- }
- if (fromSrc != null) {
- queryParameters.put("fromSrc", fromSrc);
- }
- if (repo != null) {
- queryParameters.put("repo", repo);
- }
- if (tag != null) {
- queryParameters.put("tag", tag);
- }
- if (registry != null) {
- queryParameters.put("registry", registry);
- }
- }
- */
-
- public static final CreateImageOptions NONE = new CreateImageOptions();
-
- public CreateImageOptions fromImage(String fromImage) {
- this.queryParameters.put("fromImage", fromImage);
- return this;
- }
-
- public CreateImageOptions fromSrc(String fromSrc) {
- this.queryParameters.put("fromSrc", fromSrc);
- return this;
- }
-
- public CreateImageOptions repo(String repo) {
- this.queryParameters.put("repo", repo);
- return this;
- }
-
- public CreateImageOptions tag(String tag) {
- this.queryParameters.put("tag", tag);
- return this;
- }
-
- public CreateImageOptions registry(String registry) {
- this.queryParameters.put("registry", registry);
- return this;
- }
-
- public static class Builder {
- /**
- * @see CreateImageOptions#fromImage
- */
- public static CreateImageOptions fromImage(String fromImage) {
- CreateImageOptions options = new CreateImageOptions();
- return options.fromImage(fromImage);
- }
-
- /**
- * @see CreateImageOptions#fromSrc
- */
- public static CreateImageOptions fromSrc(String fromSrc) {
- CreateImageOptions options = new CreateImageOptions();
- return options.fromSrc(fromSrc);
- }
-
- /**
- * @see CreateImageOptions#repo
- */
- public static CreateImageOptions repo(String repo) {
- CreateImageOptions options = new CreateImageOptions();
- return options.repo(repo);
- }
-
- /**
- * @see CreateImageOptions#tag
- */
- public static CreateImageOptions tag(String tag) {
- CreateImageOptions options = new CreateImageOptions();
- return options.tag(tag);
- }
-
- /**
- * @see CreateImageOptions#registry
- */
- public static CreateImageOptions registry(String registry) {
- CreateImageOptions options = new CreateImageOptions();
- return options.registry(registry);
- }
-
- }
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/DeleteImageOptions.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/DeleteImageOptions.java b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/DeleteImageOptions.java
deleted file mode 100644
index 767dc7d..0000000
--- a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/DeleteImageOptions.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.docker.options;
-
-import org.jclouds.http.options.BaseHttpRequestOptions;
-
-/**
- * Options to customize image deletion.
- *
- * @author Andrea Turli
- */
-public class DeleteImageOptions extends BaseHttpRequestOptions {
-
- public static final DeleteImageOptions NONE = new DeleteImageOptions();
-
- public DeleteImageOptions force(Boolean force) {
- this.queryParameters.put("force", force.toString());
- return this;
- }
-
- public static class Builder {
-
- /**
- * @see DeleteImageOptions#force
- */
- public static DeleteImageOptions force(Boolean force) {
- DeleteImageOptions options = new DeleteImageOptions();
- return options.force(force);
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/ListContainerOptions.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/ListContainerOptions.java b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/ListContainerOptions.java
deleted file mode 100644
index 6e9f129..0000000
--- a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/ListContainerOptions.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.docker.options;
-
-import org.jclouds.http.options.BaseHttpRequestOptions;
-
-/**
- * @author Andrea Turli
- */
-public class ListContainerOptions extends BaseHttpRequestOptions {
-
- public static final ListContainerOptions NONE = new ListContainerOptions();
-
- public ListContainerOptions all(Boolean all) {
- this.queryParameters.put("all", all.toString());
- return this;
- }
-
- public ListContainerOptions limit(Integer limit) {
- this.queryParameters.put("limit", limit.toString());
- return this;
- }
-
- public ListContainerOptions since(Integer since) {
- this.queryParameters.put("since", since.toString());
- return this;
- }
-
- public ListContainerOptions before(Integer before) {
- this.queryParameters.put("before", before.toString());
- return this;
- }
-
- public ListContainerOptions size(Integer size) {
- this.queryParameters.put("size", size.toString());
- return this;
- }
-
- public static class Builder {
-
- /**
- * @see ListContainerOptions#all
- */
- public static ListContainerOptions all(Boolean all) {
- ListContainerOptions options = new ListContainerOptions();
- return options.all(all);
- }
-
- /**
- * @see ListContainerOptions#limit(Integer)
- */
- public static ListContainerOptions limit(Integer limit) {
- ListContainerOptions options = new ListContainerOptions();
- return options.limit(limit);
- }
-
- /**
- * @see ListContainerOptions#since(Integer)
- */
- public static ListContainerOptions since(Integer since) {
- ListContainerOptions options = new ListContainerOptions();
- return options.since(since);
- }
-
- /**
- * @see ListContainerOptions#before(Integer)
- */
- public static ListContainerOptions before(Integer before) {
- ListContainerOptions options = new ListContainerOptions();
- return options.before(before);
- }
-
- /**
- * @see ListContainerOptions#limit(Integer)
- */
- public static ListContainerOptions size(Integer size) {
- ListContainerOptions options = new ListContainerOptions();
- return options.size(size);
- }
-
- }
-
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/ListImageOptions.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/ListImageOptions.java b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/ListImageOptions.java
deleted file mode 100644
index 510fae2..0000000
--- a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/ListImageOptions.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.docker.options;
-
-import org.jclouds.http.options.BaseHttpRequestOptions;
-
-/**
- * @author Andrea Turli
- */
-public class ListImageOptions extends BaseHttpRequestOptions {
-
- public static final ListImageOptions NONE = new ListImageOptions();
-
- public ListImageOptions all(Boolean all) {
- this.queryParameters.put("all", all.toString());
- return this;
- }
-
- public static class Builder {
- /**
- * @see ListImageOptions#all
- */
- public static ListImageOptions all(Boolean all) {
- ListImageOptions options = new ListImageOptions();
- return options.all(all);
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/RemoveContainerOptions.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/RemoveContainerOptions.java b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/RemoveContainerOptions.java
deleted file mode 100644
index 636b352..0000000
--- a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/options/RemoveContainerOptions.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.docker.options;
-
-import org.jclouds.http.options.BaseHttpRequestOptions;
-
-/**
- * Options to customize container removal.
- *
- * @author Andrea Turli
- */
-public class RemoveContainerOptions extends BaseHttpRequestOptions {
-
- public static final RemoveContainerOptions NONE = new RemoveContainerOptions();
-
- public RemoveContainerOptions verbose(Boolean verbose) {
- this.queryParameters.put("verbose", verbose.toString());
- return this;
- }
-
- public RemoveContainerOptions force(Boolean force) {
- this.queryParameters.put("force", force.toString());
- return this;
- }
-
- public static class Builder {
- /**
- * @see RemoveContainerOptions#verbose
- */
- public static RemoveContainerOptions verbose(Boolean verbose) {
- RemoveContainerOptions options = new RemoveContainerOptions();
- return options.verbose(verbose);
- }
-
- /**
- * @see RemoveContainerOptions#force
- */
- public static RemoveContainerOptions force(Boolean force) {
- RemoveContainerOptions options = new RemoveContainerOptions();
- return options.force(force);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata
deleted file mode 100644
index ca1a6cb..0000000
--- a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata
+++ /dev/null
@@ -1 +0,0 @@
-org.jclouds.docker.DockerApiMetadata
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/resources/centos/Dockerfile
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/resources/centos/Dockerfile b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/resources/centos/Dockerfile
deleted file mode 100644
index 1318715..0000000
--- a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/resources/centos/Dockerfile
+++ /dev/null
@@ -1,29 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-FROM centos:6.4
-MAINTAINER Andrea Turli <an...@gmail.com>
-
-# RUN yum -y groupinstall 'Development Tools'
-RUN yum -y install openssh-server openssh-clients
-
-RUN chkconfig sshd on
-RUN service sshd start
-RUN echo 'root:password' | chpasswd
-
-EXPOSE 22
-CMD ["/usr/sbin/sshd", "-D"]
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/resources/ubuntu/Dockerfile
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/resources/ubuntu/Dockerfile b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/resources/ubuntu/Dockerfile
deleted file mode 100644
index fe21ef4..0000000
--- a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/resources/ubuntu/Dockerfile
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-FROM ubuntu:12.04
-MAINTAINER Andrea Turli <an...@gmail.com>
-
-RUN apt-get update
-RUN apt-get install -y openssh-server
-
-RUN mkdir /var/run/sshd
-RUN /usr/sbin/sshd
-
-RUN echo 'root:password' | chpasswd
-
-EXPOSE 22
-CMD ["/usr/sbin/sshd", "-D"]
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/DockerApiMetadataTest.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/DockerApiMetadataTest.java b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/DockerApiMetadataTest.java
deleted file mode 100644
index a8e325b..0000000
--- a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/DockerApiMetadataTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.docker;
-
-import org.jclouds.apis.ApiMetadata;
-import org.jclouds.apis.Apis;
-import org.jclouds.compute.internal.BaseComputeServiceApiMetadataTest;
-import org.testng.annotations.Test;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-
-/**
- * Unit tests for the {@link DockerApiMetadata} class.
- *
- * @author Andrea Turli
- */
-@Test(groups = "unit", testName = "AbiquoApiMetadataTest")
-public class DockerApiMetadataTest extends BaseComputeServiceApiMetadataTest {
-
- public DockerApiMetadataTest() {
- super(new DockerApiMetadata());
- }
-
- public void testDockerApiRegistered() {
- ApiMetadata api = Apis.withId("docker");
-
- assertNotNull(api);
- assertTrue(api instanceof DockerApiMetadata);
- assertEquals(api.getId(), "docker");
- }
-
-}
-
http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/BaseDockerApiLiveTest.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/BaseDockerApiLiveTest.java b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/BaseDockerApiLiveTest.java
deleted file mode 100644
index cfafe41..0000000
--- a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/BaseDockerApiLiveTest.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.docker.compute;
-
-import com.google.common.base.Charsets;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.io.CharStreams;
-import com.google.common.io.Closeables;
-import com.google.common.io.Files;
-import com.google.common.io.Resources;
-import com.google.inject.Module;
-import org.jclouds.Constants;
-import org.jclouds.apis.BaseApiLiveTest;
-import org.jclouds.docker.DockerApi;
-import org.jclouds.docker.compute.features.internal.Archives;
-import org.jclouds.io.Payload;
-import org.jclouds.io.Payloads;
-import org.jclouds.sshj.config.SshjSshClientModule;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import javax.ws.rs.core.MediaType;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.URL;
-import java.util.Properties;
-
-/**
- * @author Andrea Turli
- */
-@Test(groups = "live", singleThreaded = true)
-public class BaseDockerApiLiveTest extends BaseApiLiveTest<DockerApi> {
-
- public BaseDockerApiLiveTest() {
- provider = "docker";
- }
-
- @Override
- protected Iterable<Module> setupModules() {
- return ImmutableSet.<Module>of(getLoggingModule(), new SshjSshClientModule());
- }
-
- @Override
- protected Properties setupProperties() {
- Properties overrides = new Properties();
- overrides.setProperty(Constants.PROPERTY_MAX_RETRIES, "15");
- overrides.setProperty("jclouds.ssh.retry-auth", "true");
- endpoint = setIfTestSystemPropertyPresent(overrides, provider + ".endpoint");
- return overrides;
- }
-
- protected String consumeStream(InputStream stream, boolean swallowIOException) {
- String result = null;
- try {
- result = CharStreams.toString(new InputStreamReader(stream, Charsets.UTF_8));
- Closeables.close(stream, swallowIOException);
- } catch (IOException e) {
- Assert.fail();
- }
- return result;
- }
-
- protected Payload createPayload() throws IOException {
- String folderPath = System.getProperty("user.dir") + "/docker/src/test/resources";
- File parentDir = new File(folderPath + "/archive");
- parentDir.mkdirs();
- URL url = Resources.getResource("Dockerfile");
- String content = Resources.toString(url, Charsets.UTF_8);
- final File dockerfile = new File(parentDir.getAbsolutePath() + File.separator + "Dockerfile");
- Files.write(content.getBytes(), dockerfile);
- File archive = Archives.tar(parentDir, folderPath + "/archive/archive.tar");
- FileInputStream data = new FileInputStream(archive);
- Payload payload = Payloads.newInputStreamPayload(data);
- payload.getContentMetadata().setContentLength(data.getChannel().size());
- payload.getContentMetadata().setContentType(MediaType.TEXT_PLAIN);
- return payload;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/DockerComputeServiceAdapterLiveTest.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/DockerComputeServiceAdapterLiveTest.java b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/DockerComputeServiceAdapterLiveTest.java
deleted file mode 100644
index 9ae95aa..0000000
--- a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/DockerComputeServiceAdapterLiveTest.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.docker.compute;
-
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
-import com.google.common.net.HostAndPort;
-import com.google.inject.Injector;
-import com.google.inject.Module;
-import org.jclouds.compute.ComputeServiceAdapter.NodeAndInitialCredentials;
-import org.jclouds.compute.domain.ExecResponse;
-import org.jclouds.compute.domain.Hardware;
-import org.jclouds.compute.domain.OsFamily;
-import org.jclouds.compute.domain.Template;
-import org.jclouds.compute.domain.TemplateBuilder;
-import org.jclouds.compute.functions.DefaultCredentialsFromImageOrOverridingCredentials;
-import org.jclouds.compute.strategy.PrioritizeCredentialsFromTemplate;
-import org.jclouds.docker.DockerApi;
-import org.jclouds.docker.compute.strategy.DockerComputeServiceAdapter;
-import org.jclouds.docker.domain.Container;
-import org.jclouds.domain.LoginCredentials;
-import org.jclouds.ssh.SshClient;
-import org.jclouds.ssh.SshClient.Factory;
-import org.jclouds.sshj.config.SshjSshClientModule;
-import org.testng.annotations.AfterGroups;
-import org.testng.annotations.Test;
-
-import java.net.URI;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Random;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNotNull;
-
-@Test(groups = "live", singleThreaded = true, testName = "DockerComputeServiceAdapterLiveTest")
-public class DockerComputeServiceAdapterLiveTest extends BaseDockerApiLiveTest {
-
- private DockerComputeServiceAdapter adapter;
- private TemplateBuilder templateBuilder;
- private Factory sshFactory;
- private NodeAndInitialCredentials<Container> guest;
- private URI endpoint;
-
- @Override
- protected DockerApi create(Properties props, Iterable<Module> modules) {
- Injector injector = newBuilder().modules(modules).overrides(props).buildInjector();
- adapter = injector.getInstance(DockerComputeServiceAdapter.class);
- templateBuilder = injector.getInstance(TemplateBuilder.class);
- sshFactory = injector.getInstance(SshClient.Factory.class);
- endpoint = URI.create(props.getProperty("docker.endpoint"));
- return injector.getInstance(DockerApi.class);
- }
-
- @Test
- public void testListImages() {
- assertFalse(Iterables.isEmpty(adapter.listImages()), "images must not be empty");
- }
-
- private static final PrioritizeCredentialsFromTemplate prioritizeCredentialsFromTemplate = new PrioritizeCredentialsFromTemplate(
- new DefaultCredentialsFromImageOrOverridingCredentials());
-
- @Test
- public void testCreateNodeWithGroupEncodedIntoNameThenStoreCredentials() {
- String group = "foo";
- String name = "container-" + new Random().nextInt();
-
- Template template = templateBuilder.smallest().osFamily(OsFamily.UBUNTU).os64Bit(true)
- .osDescriptionMatches("jclouds/ubuntu:latest").build();
-
- guest = adapter.createNodeWithGroupEncodedIntoName(group, name, template);
- assertEquals(guest.getNodeId(), guest.getNode().getId() + "");
- doConnectViaSsh(guest.getNode(), prioritizeCredentialsFromTemplate.apply(template, guest.getCredentials()));
- }
-
- protected void doConnectViaSsh(Container guest, LoginCredentials creds) {
- // todo this is an hack as I'm using host-only IF
- Map<String, List<Map<String, String>>> portBindings = guest.getHostConfig().getPortBindings();
- int loginPort = Integer.parseInt(portBindings.get("22/tcp").get(0).get("HostPort"));
- SshClient ssh = sshFactory.create(HostAndPort.fromParts(endpoint.getHost(), loginPort), creds);
- try {
- ssh.connect();
- ExecResponse hello = ssh.exec("echo hello");
- assertEquals(hello.getOutput().trim(), "hello");
- System.err.println(ssh.exec("mount").getOutput());
- System.err.println(ssh.exec("uname -a").getOutput());
- } finally {
- if (ssh != null)
- ssh.disconnect();
- }
- }
-
- @Test
- public void testListHardwareProfiles() {
- Iterable<Hardware> profiles = adapter.listHardwareProfiles();
- assertFalse(Iterables.isEmpty(profiles));
-
- for (Hardware profile : profiles) {
- assertNotNull(profile);
- }
- }
-
- @AfterGroups(groups = "live")
- protected void tearDown() {
- if (guest != null) {
- adapter.destroyNode(guest.getNode().getId() + "");
- }
- super.tearDown();
- }
-
- @Override
- protected Iterable<Module> setupModules() {
- return ImmutableSet.<Module>of(getLoggingModule(), new SshjSshClientModule());
- }
-
- @Override
- protected Properties setupProperties() {
- Properties properties = super.setupProperties();
- properties.setProperty("jclouds.ssh.max-retries", "10");
- return properties;
- }
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/DockerExperimentLiveTest.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/DockerExperimentLiveTest.java b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/DockerExperimentLiveTest.java
deleted file mode 100644
index 1476c9f..0000000
--- a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/DockerExperimentLiveTest.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.docker.compute;
-
-import com.beust.jcommander.internal.Maps;
-import com.google.common.base.Predicate;
-import com.google.common.collect.ImmutableSet;
-import com.google.inject.Module;
-import org.jclouds.ContextBuilder;
-import org.jclouds.compute.ComputeService;
-import org.jclouds.compute.ComputeServiceContext;
-import org.jclouds.compute.RunNodesException;
-import org.jclouds.compute.domain.ExecResponse;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.domain.OsFamily;
-import org.jclouds.compute.domain.Template;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.docker.compute.options.DockerTemplateOptions;
-import org.jclouds.logging.Logger;
-import org.jclouds.logging.slf4j.config.SLF4JLoggingModule;
-import org.jclouds.scriptbuilder.domain.Statement;
-import org.jclouds.scriptbuilder.statements.login.AdminAccess;
-import org.jclouds.ssh.SshClient;
-import org.jclouds.sshj.config.SshjSshClientModule;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import javax.annotation.Resource;
-import javax.inject.Named;
-import java.io.IOException;
-import java.util.Map;
-import java.util.Set;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-
-/**
- * @author Andrea Turli
- */
-@Test(groups = "live", singleThreaded = true, testName = "DockerExperimentLiveTest")
-public class DockerExperimentLiveTest extends BaseDockerApiLiveTest {
-
- public static final String TEST_LAUNCH_CLUSTER = "jclouds";
- @Resource
- @Named(ComputeServiceConstants.COMPUTE_LOGGER)
- protected Logger logger = Logger.NULL;
-
- ComputeServiceContext context;
-
- @BeforeMethod
- public void setUp() throws IOException {
- context = ContextBuilder.newBuilder("docker")
- .overrides(super.setupProperties())
- .modules(ImmutableSet.<Module>of(new SLF4JLoggingModule(), new SshjSshClientModule()))
- .build(ComputeServiceContext.class);
- }
-
- @AfterMethod
- public void tearDown() {
- context.close();
- }
-
- @Test
- public void testLaunchUbuntuServerWithInboundPorts() throws RunNodesException {
- int numNodes = 1;
- ComputeService compute = context.getComputeService();
-
- Template template = compute.templateBuilder().smallest()
- .osFamily(OsFamily.UBUNTU).os64Bit(true)
- .osDescriptionMatches("jclouds/ubuntu:latest")
- .build();
- Statement bootInstructions = AdminAccess.standard();
-
- DockerTemplateOptions templateOptions = template.getOptions().as(DockerTemplateOptions.class);
-
- Map<String,String> volumes = Maps.newHashMap();
- volumes.put("/var/lib/docker", "/root");
- templateOptions.volumes(volumes).runScript(bootInstructions)
- .inboundPorts(22, 80, 8080);
-
- Set<? extends NodeMetadata> nodes = context.getComputeService().createNodesInGroup(TEST_LAUNCH_CLUSTER, numNodes, template);
- assertEquals(numNodes, nodes.size(), "wrong number of nodes");
- for (NodeMetadata node : nodes) {
- assertTrue(node.getGroup().equals(TEST_LAUNCH_CLUSTER));
- logger.debug("Created Node: %s", node);
- SshClient client = context.utils().sshForNode().apply(node);
- client.connect();
- ExecResponse hello = client.exec("echo hello");
- assertEquals(hello.getOutput().trim(), "hello");
- }
- context.getComputeService().destroyNodesMatching(new Predicate<NodeMetadata>() {
- @Override
- public boolean apply(NodeMetadata input) {
- return input.getGroup().contains(TEST_LAUNCH_CLUSTER);
- }
- });
- }
-
- public void testLaunchUbuntuCluster() throws RunNodesException {
- int numNodes = 1;
- ComputeService compute = context.getComputeService();
- Template template = compute.templateBuilder()
- .smallest().osFamily(OsFamily.UBUNTU)
- .os64Bit(true)
- .osDescriptionMatches("jclouds/ubuntu:latest")
- .build();
- Statement bootInstructions = AdminAccess.standard();
- template.getOptions().runScript(bootInstructions)
- .inboundPorts(22);
-
- Set<? extends NodeMetadata> nodes = context.getComputeService().createNodesInGroup(TEST_LAUNCH_CLUSTER, numNodes, template);
- assertEquals(numNodes, nodes.size(), "wrong number of nodes");
- for (NodeMetadata node : nodes) {
- assertTrue(node.getGroup().equals(TEST_LAUNCH_CLUSTER));
- logger.debug("Created Node: %s", node);
- SshClient client = context.utils().sshForNode().apply(node);
- client.connect();
- ExecResponse hello = client.exec("echo hello");
- assertEquals(hello.getOutput().trim(), "hello");
- }
- context.getComputeService().destroyNodesMatching(new Predicate<NodeMetadata>() {
- @Override
- public boolean apply(NodeMetadata input) {
- return input.getGroup().contains(TEST_LAUNCH_CLUSTER);
- }
- });
- }
-
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/features/RemoteApiLiveTest.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/features/RemoteApiLiveTest.java b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/features/RemoteApiLiveTest.java
deleted file mode 100644
index 2b48f64..0000000
--- a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/features/RemoteApiLiveTest.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.docker.compute.features;
-
-import com.google.common.base.Splitter;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Iterables;
-import com.google.common.io.Resources;
-import org.jclouds.docker.compute.BaseDockerApiLiveTest;
-import org.jclouds.docker.domain.Config;
-import org.jclouds.docker.domain.Container;
-import org.jclouds.docker.domain.Image;
-import org.jclouds.docker.options.BuildOptions;
-import org.jclouds.docker.options.CreateImageOptions;
-import org.jclouds.docker.options.DeleteImageOptions;
-import org.jclouds.rest.ResourceNotFoundException;
-import org.testng.Assert;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URISyntaxException;
-
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertNull;
-
-/**
- * @author Andrea Turli
- */
-public class RemoteApiLiveTest extends BaseDockerApiLiveTest {
-
- private static final String BUSYBOX_IMAGE = "busybox";
- private Container container = null;
- private Image image = null;
-
- @BeforeClass
- private void init() {
- setupProperties();
- CreateImageOptions options = CreateImageOptions.Builder.fromImage(BUSYBOX_IMAGE);
- InputStream createImageStream = api().createImage(options);
- consumeStream(createImageStream, false);
- }
-
- @Test
- public void testVersion() {
- Assert.assertEquals(api().getVersion().getVersion(), "0.9.0");
- }
-
- @Test(dependsOnMethods = "testVersion")
- public void testCreateImage() throws IOException, InterruptedException {
- CreateImageOptions options = CreateImageOptions.Builder.fromImage(BUSYBOX_IMAGE);
- InputStream createImageStream = api().createImage(options);
- consumeStream(createImageStream, false);
- image = api().inspectImage(BUSYBOX_IMAGE);
- assertNotNull(image);
- }
-
- @Test(dependsOnMethods = "testCreateImage")
- public void testListImages() {
- Assert.assertNotNull(api().listImages());
- }
-
- @Test(dependsOnMethods = "testListImages")
- public void testCreateContainer() throws IOException, InterruptedException {
- if(image == null) Assert.fail();
- Config config = Config.builder().imageId(image.getId())
- .cmd(ImmutableList.of("/bin/sh", "-c", "while true; do echo hello world; sleep 1; done"))
- .build();
- container = api().createContainer("testCreateContainer", config);
- assertNotNull(container);
- assertNotNull(container.getId());
- }
-
- @Test(dependsOnMethods = "testCreateContainer")
- public void testStartContainer() throws IOException, InterruptedException {
- if(container == null) Assert.fail();
- api().startContainer(container.getId());
- Assert.assertTrue(api().inspectContainer(container.getId()).getState().isRunning());
- }
-
- @Test(dependsOnMethods = "testStartContainer")
- public void testStopContainer() {
- if(container == null) Assert.fail();
- api().stopContainer(container.getId());
- Assert.assertFalse(api().inspectContainer(container.getId()).getState().isRunning());
- }
-
- @Test(dependsOnMethods = "testStopContainer", expectedExceptions = NullPointerException.class)
- public void testRemoveContainer() {
- if(container == null) Assert.fail();
- api().removeContainer(container.getId());
- Assert.assertFalse(api().inspectContainer(container.getId()).getState().isRunning());
- }
-
- @Test(dependsOnMethods = "testRemoveContainer", expectedExceptions = ResourceNotFoundException.class)
- public void testDeleteImage() {
- InputStream deleteImageStream = api().deleteImage(image.getId());
- consumeStream(deleteImageStream, false);
- assertNull(api().inspectImage(image.getId()));
- }
-
- @Test(dependsOnMethods = "testDeleteImage")
- public void testBuildImage() throws IOException, InterruptedException, URISyntaxException {
- BuildOptions options = BuildOptions.Builder.tag("testBuildImage").verbose(false).nocache(false);
- InputStream buildImageStream = api().build(new File(Resources.getResource("centos/Dockerfile").toURI()), options);
- String buildStream = consumeStream(buildImageStream, false);
- 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));
- String imageId = rawImageId.substring(0, 11);
- Image image = api().inspectImage(imageId);
- api().removeContainer(image.getContainer());
- api().deleteImage(imageId, DeleteImageOptions.Builder.force(true));
- }
-
- private RemoteApi api() {
- return api.getRemoteApi();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/features/RemoteApiMockTest.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/features/RemoteApiMockTest.java b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/features/RemoteApiMockTest.java
deleted file mode 100644
index 8fb0ffe..0000000
--- a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/features/RemoteApiMockTest.java
+++ /dev/null
@@ -1,358 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.docker.compute.features;
-
-import com.google.common.base.Charsets;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMultimap;
-import com.google.common.io.Files;
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-import org.jclouds.docker.DockerApi;
-import org.jclouds.docker.domain.Config;
-import org.jclouds.docker.domain.Container;
-import org.jclouds.docker.internal.BaseDockerMockTest;
-import org.jclouds.docker.options.BuildOptions;
-import org.jclouds.docker.options.CreateImageOptions;
-import org.jclouds.docker.options.ListContainerOptions;
-import org.jclouds.rest.ResourceNotFoundException;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Set;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertNull;
-import static org.testng.AssertJUnit.fail;
-
-/**
- * Mock tests for the {@link org.jclouds.docker.DockerApi} class.
- *
- * @author Andrea Turli
- */
-@Test(groups = "unit", testName = "RemoteApiMockTest")
-public class RemoteApiMockTest extends BaseDockerMockTest {
-
- public void testListContainers() throws Exception {
- MockWebServer server = mockWebServer();
- server.enqueue(new MockResponse().setBody(payloadFromResource("/containers.json")));
-
- DockerApi api = api(server.getUrl("/"));
- RemoteApi remoteApi = api.getRemoteApi();
-
- try {
- Set<Container> containers = remoteApi.listContainers();
- assertRequestHasCommonFields(server.takeRequest(), "/containers/json");
- assertEquals(containers.size(), 1);
- } finally {
- api.close();
- server.shutdown();
- }
- }
-
- public void testListAllContainers() throws Exception {
- MockWebServer server = mockWebServer();
- server.enqueue(new MockResponse().setBody(payloadFromResource("/containers.json")));
-
- DockerApi api = api(server.getUrl("/"));
- RemoteApi remoteApi = api.getRemoteApi();
-
- try {
- Set<Container> containers = remoteApi.listContainers(ListContainerOptions.Builder.all(true));
- assertRequestHasParameters(server.takeRequest(), "/containers/json", ImmutableMultimap.of("all",
- "true"));
- assertEquals(containers.size(), 1);
- } finally {
- api.close();
- server.shutdown();
- }
- }
-
- public void testGetContainer() throws Exception {
- MockWebServer server = mockWebServer();
- server.enqueue(new MockResponse().setBody(payloadFromResource("/container.json")));
- DockerApi api = api(server.getUrl("/"));
- RemoteApi remoteApi = api.getRemoteApi();
- String containerId = "6d35806c1bd2b25cd92bba2d2c2c5169dc2156f53ab45c2b62d76e2d2fee14a9";
- try {
- Container container = remoteApi.inspectContainer(containerId);
- assertRequestHasCommonFields(server.takeRequest(), "/containers/" + containerId + "/json");
- assertNotNull(container);
- assertNotNull(container.getConfig());
- assertNotNull(container.getHostConfig());
- assertEquals(container.getName(), "/hopeful_mclean");
- assertEquals(container.getState().isRunning(), true);
- } finally {
- api.close();
- server.shutdown();
- }
- }
-
- public void testGetNonExistingContainer() throws Exception {
- MockWebServer server = mockWebServer();
- server.enqueue(new MockResponse().setResponseCode(404));
- DockerApi api = api(server.getUrl("/"));
- RemoteApi remoteApi = api.getRemoteApi();
- String containerId = "notExisting";
- try {
- Container container = remoteApi.inspectContainer(containerId);
- assertRequestHasCommonFields(server.takeRequest(), "/containers/" + containerId + "/json");
- assertNull(container);
- } finally {
- api.close();
- server.shutdown();
- }
- }
-
- public void testCreateContainer() throws Exception {
- MockWebServer server = mockWebServer();
- server.enqueue(new MockResponse().setBody(payloadFromResource("/container-creation.json")));
-
- DockerApi api = api(server.getUrl("/"));
- RemoteApi remoteApi = api.getRemoteApi();
- Config config = Config.builder().cmd(ImmutableList.of("date"))
- .attachStdin(false)
- .attachStderr(true)
- .attachStdout(true)
- .tty(false)
- .imageId("base")
- .build();
- try {
- Container container = remoteApi.createContainer("test", config);
- assertNotNull(container);
- assertEquals(container.getId(), "c6c74153ae4b1d1633d68890a68d89c40aa5e284a1ea016cbc6ef0e634ee37b2");
- } finally {
- api.close();
- server.shutdown();
- }
- }
-
- public void testRemoveContainer() throws Exception {
- MockWebServer server = mockWebServer();
- server.enqueue(new MockResponse().setResponseCode(204));
-
- DockerApi api = api(server.getUrl("/"));
- RemoteApi remoteApi = api.getRemoteApi();
- String containerId = "6d35806c1bd2b25cd92bba2d2c2c5169dc2156f53ab45c2b62d76e2d2fee14a9";
-
- try {
- remoteApi.removeContainer(containerId);
- assertRequestHasCommonFields(server.takeRequest(), "DELETE", "/containers/"+containerId);
- } finally {
- api.close();
- server.shutdown();
- }
- }
-
- public void testRemoveNonExistingContainer() throws Exception {
- MockWebServer server = mockWebServer();
- server.enqueue(new MockResponse().setResponseCode(404));
- DockerApi api = api(server.getUrl("/"));
- RemoteApi remoteApi = api.getRemoteApi();
- String containerId = "nonExisting";
- try {
- remoteApi.removeContainer(containerId);
- } catch (ResourceNotFoundException ex) {
- // Expected exception
- assertRequestHasCommonFields(server.takeRequest(), "DELETE", "/containers/"+containerId);
- } finally {
- api.close();
- server.shutdown();
- }
- }
-
- public void testStartContainer() throws Exception {
- MockWebServer server = mockWebServer();
- server.enqueue(new MockResponse().setResponseCode(200));
- DockerApi api = api(server.getUrl("/"));
- RemoteApi remoteApi = api.getRemoteApi();
- try {
- remoteApi.startContainer("1");
- assertRequestHasCommonFields(server.takeRequest(), "POST", "/containers/1/start");
- } finally {
- api.close();
- server.shutdown();
- }
- }
-
- public void testStartNonExistingContainer() throws Exception {
- MockWebServer server = mockWebServer();
- server.enqueue(new MockResponse().setResponseCode(204));
- DockerApi api = api(server.getUrl("/"));
- RemoteApi remoteApi = api.getRemoteApi();
- try {
- try {
- remoteApi.startContainer("1");
- } catch (ResourceNotFoundException ex) {
- // Expected exception
- }
- assertRequestHasCommonFields(server.takeRequest(), "POST", "/containers/1/start");
- } finally {
- api.close();
- server.shutdown();
- }
- }
-
- public void testStopContainer() throws Exception {
- MockWebServer server = mockWebServer();
- server.enqueue(new MockResponse().setResponseCode(200));
- DockerApi api = api(server.getUrl("/"));
- RemoteApi remoteApi = api.getRemoteApi();
- try {
- remoteApi.stopContainer("1");
- assertRequestHasCommonFields(server.takeRequest(), "POST", "/containers/1/stop");
- } finally {
- api.close();
- server.shutdown();
- }
- }
-
- public void testStopNonExistingContainer() throws Exception {
- MockWebServer server = mockWebServer();
- server.enqueue(new MockResponse().setResponseCode(204));
- DockerApi api = api(server.getUrl("/"));
- RemoteApi remoteApi = api.getRemoteApi();
- try {
- remoteApi.stopContainer("1");
- } catch (ResourceNotFoundException ex) {
- // Expected exception
- assertRequestHasCommonFields(server.takeRequest(), "POST", "/containers/1/stop");
- } finally {
- api.close();
- server.shutdown();
- }
- }
-
- public void testCreateImage() throws Exception {
- MockWebServer server = mockWebServer();
- server.enqueue(new MockResponse().setResponseCode(200));
- DockerApi api = api(server.getUrl("/"));
- RemoteApi remoteApi = api.getRemoteApi();
- try {
- remoteApi.createImage(CreateImageOptions.Builder.fromImage("base"));
- assertRequestHasParameters(server.takeRequest(), "POST", "/images/create", ImmutableMultimap.of("fromImage",
- "base"));
- } finally {
- api.close();
- server.shutdown();
- }
- }
-
- public void testCreateImageFailure() throws Exception {
- MockWebServer server = mockWebServer();
- server.enqueue(new MockResponse().setResponseCode(404));
- DockerApi api = api(server.getUrl("/"));
- RemoteApi remoteApi = api.getRemoteApi();
- try {
- remoteApi.createImage(CreateImageOptions.Builder.fromImage("base"));
- assertRequestHasParameters(server.takeRequest(), "POST", "/images/create", ImmutableMultimap.of("fromImage",
- "base"));
- } catch (ResourceNotFoundException ex) {
- // Expected exception
- assertRequestHasParameters(server.takeRequest(), "POST", "/images/create", ImmutableMultimap.of("fromImage",
- "base"));
- } finally {
- api.close();
- server.shutdown();
- }
- }
-
- public void testDeleteImage() throws Exception {
- MockWebServer server = mockWebServer();
- server.enqueue(new MockResponse().setResponseCode(204));
- DockerApi api = api(server.getUrl("/"));
- RemoteApi remoteApi = api.getRemoteApi();
- try {
- remoteApi.deleteImage("1");
- assertRequestHasCommonFields(server.takeRequest(), "DELETE", "/images/1");
- } finally {
- api.close();
- server.shutdown();
- }
- }
-
- public void testDeleteNotExistingImage() throws Exception {
- MockWebServer server = mockWebServer();
- server.enqueue(new MockResponse().setResponseCode(404));
- DockerApi api = api(server.getUrl("/"));
- RemoteApi remoteApi = api.getRemoteApi();
- try {
- remoteApi.deleteImage("1");
- } catch (ResourceNotFoundException ex) {
- // Expected exception
- assertRequestHasCommonFields(server.takeRequest(), "DELETE", "/images/1");
- } finally {
- api.close();
- server.shutdown();
- }
- }
-
- public void testBuildContainer() throws Exception {
- MockWebServer server = mockWebServer();
- server.enqueue(new MockResponse().setResponseCode(200));
- DockerApi api = api(server.getUrl("/"));
- RemoteApi remoteApi = api.getRemoteApi();
- String content = new String(payloadFromResource("/Dockerfile"));
- File dockerFile = createDockerFile(content);
- try {
- remoteApi.build(dockerFile, BuildOptions.NONE);
- assertRequestHasCommonFields(server.takeRequest(), "POST", "/build");
- } finally {
- dockerFile.deleteOnExit();
- api.close();
- server.shutdown();
- }
- }
-
- public void testBuildNonexistentContainer() throws Exception {
- MockWebServer server = mockWebServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- DockerApi api = api(server.getUrl("/"));
- RemoteApi remoteApi = api.getRemoteApi();
-
- String content = new String(payloadFromResource("/Dockerfile"));
- File dockerFile = createDockerFile(content);
- try {
- try {
- remoteApi.build(dockerFile, BuildOptions.NONE);
- fail("Build container should fail on 404");
- } catch (ResourceNotFoundException ex) {
- // Expected exception
- }
- assertRequestHasCommonFields(server.takeRequest(), "POST", "/build");
- } finally {
- dockerFile.deleteOnExit();
- api.close();
- server.shutdown();
- }
- }
-
- private File createDockerFile(String content) {
- File newTempDir = Files.createTempDir();
- File dockerFile = new File(newTempDir + "/dockerFile");
- try {
- Files.write(content, dockerFile, Charsets.UTF_8);
- } catch(IOException e) {
- Assert.fail();
- }
- return dockerFile;
- }
-}