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;