You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by an...@apache.org on 2014/10/17 13:39:53 UTC
[6/8] 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/a543b8d5
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs/tree/a543b8d5
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs/diff/a543b8d5
Branch: refs/heads/master
Commit: a543b8d58e57b060116186006ba5c939e9bc93a0
Parents: 911d5c5
Author: Andrew Kennedy <an...@cloudsoftcorp.com>
Authored: Sat Oct 11 17:01:32 2014 +0100
Committer: Andrew Kennedy <an...@cloudsoftcorp.com>
Committed: Sat Oct 11 18:18:11 2014 +0100
----------------------------------------------------------------------
.../compute/options/DockerTemplateOptions.java | 48 ++++++++++++++------
.../strategy/DockerComputeServiceAdapter.java | 4 ++
.../java/org/jclouds/docker/domain/Config.java | 15 +++---
3 files changed, 47 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/a543b8d5/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 36029da..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
@@ -16,7 +16,6 @@
*/
package org.jclouds.docker.compute.options;
-import com.google.common.base.MoreObjects;
import com.google.common.base.Objects;
import com.google.common.base.Optional;
import com.google.common.collect.ImmutableList;
@@ -54,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() {
@@ -83,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());
+ }
}
}
@@ -100,23 +103,25 @@ 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
public String toString() {
- return MoreObjects.toStringHelper(this)
+ return Objects.toStringHelper(this)
.add("dns", dns)
.add("hostname", hostname)
.add("memory", memory)
.add("cpuShares", cpuShares)
.add("commands", commands)
.add("volumes", volumes)
+ .add("env", env)
.toString();
}
@@ -158,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;
}
@@ -174,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)
@@ -229,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/a543b8d5/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/a543b8d5/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;