You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ad...@apache.org on 2014/10/28 16:24:34 UTC
[6/9] git commit: Add environment config option for Docker containers
Add environment config option for Docker containers
Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs/commit/0f0d09a4
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs/tree/0f0d09a4
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs/diff/0f0d09a4
Branch: refs/heads/1.8.x
Commit: 0f0d09a4d17ca50ece3e180bb1c66e3b9a088b08
Parents: d9f5212
Author: Andrew Kennedy <an...@cloudsoftcorp.com>
Authored: Sat Oct 11 17:01:32 2014 +0100
Committer: Adrian Cole <ad...@apache.org>
Committed: Tue Oct 28 08:19:49 2014 -0700
----------------------------------------------------------------------
.../compute/options/DockerTemplateOptions.java | 45 +++++++++++++++-----
.../strategy/DockerComputeServiceAdapter.java | 4 ++
.../java/org/jclouds/docker/domain/Config.java | 15 ++++---
3 files changed, 46 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/0f0d09a4/docker/src/main/java/org/jclouds/docker/compute/options/DockerTemplateOptions.java
----------------------------------------------------------------------
diff --git a/docker/src/main/java/org/jclouds/docker/compute/options/DockerTemplateOptions.java b/docker/src/main/java/org/jclouds/docker/compute/options/DockerTemplateOptions.java
index 5e4669b..9568f33 100644
--- a/docker/src/main/java/org/jclouds/docker/compute/options/DockerTemplateOptions.java
+++ b/docker/src/main/java/org/jclouds/docker/compute/options/DockerTemplateOptions.java
@@ -53,6 +53,7 @@ public class DockerTemplateOptions extends TemplateOptions implements Cloneable
protected Optional<Integer> cpuShares = Optional.absent();
protected Optional<List<String>> commands = Optional.absent();
protected Optional<Map<String, String>> volumes = Optional.absent();
+ protected Optional<List<String>> env = Optional.absent();
@Override
public DockerTemplateOptions clone() {
@@ -82,8 +83,11 @@ public class DockerTemplateOptions extends TemplateOptions implements Cloneable
eTo.commands(commands.get());
}
if (cpuShares.isPresent()) {
- eTo.cpuShares(cpuShares.get());
- }
+ eTo.cpuShares(cpuShares.get());
+ }
+ if (env.isPresent()) {
+ eTo.env(env.get());
+ }
}
}
@@ -99,12 +103,13 @@ public class DockerTemplateOptions extends TemplateOptions implements Cloneable
equal(this.dns, that.dns) &&
equal(this.memory, that.memory) &&
equal(this.commands, that.commands) &&
- equal(this.cpuShares, that.cpuShares);
+ equal(this.cpuShares, that.cpuShares) &&
+ equal(this.env, that.env);
}
@Override
public int hashCode() {
- return Objects.hashCode(super.hashCode(), volumes, hostname, dns, memory, commands, cpuShares);
+ return Objects.hashCode(super.hashCode(), volumes, hostname, dns, memory, commands, cpuShares, env);
}
@Override
@@ -116,6 +121,7 @@ public class DockerTemplateOptions extends TemplateOptions implements Cloneable
.add("cpuShares", cpuShares)
.add("commands", commands)
.add("volumes", volumes)
+ .add("env", env)
.toString();
}
@@ -157,6 +163,11 @@ public class DockerTemplateOptions extends TemplateOptions implements Cloneable
return this;
}
+ public DockerTemplateOptions env(List<String> env) {
+ this.env = Optional.<List<String>> of(ImmutableList.copyOf(env));
+ return this;
+ }
+
public Optional<Map<String, String>> getVolumes() {
return volumes;
}
@@ -173,15 +184,19 @@ public class DockerTemplateOptions extends TemplateOptions implements Cloneable
public Optional<Integer> getCpuShares() { return cpuShares; }
+ public Optional<List<String>> getEnv() {
+ return env;
+ }
+
public static class Builder {
- /**
- * @see DockerTemplateOptions#volumes(java.util.Map)
- */
- public static DockerTemplateOptions volumes(Map<String, String> volumes) {
- DockerTemplateOptions options = new DockerTemplateOptions();
- return DockerTemplateOptions.class.cast(options.volumes(volumes));
- }
+ /**
+ * @see DockerTemplateOptions#volumes(java.util.Map)
+ */
+ public static DockerTemplateOptions volumes(Map<String, String> volumes) {
+ DockerTemplateOptions options = new DockerTemplateOptions();
+ return DockerTemplateOptions.class.cast(options.volumes(volumes));
+ }
/**
* @see DockerTemplateOptions#dns(String)
@@ -228,6 +243,14 @@ public class DockerTemplateOptions extends TemplateOptions implements Cloneable
return DockerTemplateOptions.class.cast(options.cpuShares(cpuShares));
}
+ /**
+ * @see DockerTemplateOptions#env(java.util.List)
+ */
+ public static DockerTemplateOptions env(List<String> env) {
+ DockerTemplateOptions options = new DockerTemplateOptions();
+ return DockerTemplateOptions.class.cast(options.env(env));
+ }
+
// methods that only facilitate returning the correct object type
/**
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/0f0d09a4/docker/src/main/java/org/jclouds/docker/compute/strategy/DockerComputeServiceAdapter.java
----------------------------------------------------------------------
diff --git a/docker/src/main/java/org/jclouds/docker/compute/strategy/DockerComputeServiceAdapter.java b/docker/src/main/java/org/jclouds/docker/compute/strategy/DockerComputeServiceAdapter.java
index a4bcd3a..d1c1260 100644
--- a/docker/src/main/java/org/jclouds/docker/compute/strategy/DockerComputeServiceAdapter.java
+++ b/docker/src/main/java/org/jclouds/docker/compute/strategy/DockerComputeServiceAdapter.java
@@ -108,6 +108,10 @@ public class DockerComputeServiceAdapter implements
containerConfigBuilder.cpuShares(templateOptions.getCpuShares().get());
}
+ if (templateOptions.getEnv().isPresent()) {
+ containerConfigBuilder.env(templateOptions.getEnv().get());
+ }
+
if (templateOptions.getVolumes().isPresent()) {
Map<String, Object> volumes = Maps.newLinkedHashMap();
for (String containerDir : templateOptions.getVolumes().get().values()) {
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/0f0d09a4/docker/src/main/java/org/jclouds/docker/domain/Config.java
----------------------------------------------------------------------
diff --git a/docker/src/main/java/org/jclouds/docker/domain/Config.java b/docker/src/main/java/org/jclouds/docker/domain/Config.java
index 5dd2b77..f5190fa 100644
--- a/docker/src/main/java/org/jclouds/docker/domain/Config.java
+++ b/docker/src/main/java/org/jclouds/docker/domain/Config.java
@@ -16,17 +16,18 @@
*/
package org.jclouds.docker.domain;
-import com.google.common.base.Objects;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.gson.annotations.SerializedName;
-import org.jclouds.javax.annotation.Nullable;
+import static com.google.common.base.Preconditions.checkNotNull;
import java.beans.ConstructorProperties;
import java.util.List;
import java.util.Map;
-import static com.google.common.base.Preconditions.checkNotNull;
+import org.jclouds.javax.annotation.Nullable;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+import com.google.gson.annotations.SerializedName;
public class Config {
@@ -291,10 +292,10 @@ public class Config {
private boolean attachStdout;
private boolean attachStderr;
private Map<String, ?> exposedPorts = ImmutableMap.of();
+ private List<String> env = ImmutableList.of();
private boolean tty;
private boolean openStdin;
private boolean stdinOnce;
- private List<String> env = ImmutableList.of();
private List<String> cmd = ImmutableList.of();
private List<String> dns = ImmutableList.of();
private String imageId;