You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2016/08/30 09:36:06 UTC

[42/50] jclouds git commit: Connect container to list of networks in options

Connect container to list of networks in options


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/f2ce5679
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/f2ce5679
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/f2ce5679

Branch: refs/heads/master
Commit: f2ce5679cc2dd61faf5d43484e0b638f5c496db5
Parents: 7a979ba
Author: Andrew Donald Kennedy <an...@cloudsoftcorp.com>
Authored: Sat Jul 2 14:20:00 2016 +0100
Committer: Ignasi Barrera <na...@apache.org>
Committed: Mon Aug 1 11:42:26 2016 +0200

----------------------------------------------------------------------
 .../docker/compute/options/DockerTemplateOptions.java  |  8 ++++++--
 .../compute/strategy/DockerComputeServiceAdapter.java  | 13 ++++++++++++-
 2 files changed, 18 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/f2ce5679/apis/docker/src/main/java/org/jclouds/docker/compute/options/DockerTemplateOptions.java
----------------------------------------------------------------------
diff --git a/apis/docker/src/main/java/org/jclouds/docker/compute/options/DockerTemplateOptions.java b/apis/docker/src/main/java/org/jclouds/docker/compute/options/DockerTemplateOptions.java
index 1ff4b44..109d469 100644
--- a/apis/docker/src/main/java/org/jclouds/docker/compute/options/DockerTemplateOptions.java
+++ b/apis/docker/src/main/java/org/jclouds/docker/compute/options/DockerTemplateOptions.java
@@ -164,7 +164,7 @@ public class DockerTemplateOptions extends TemplateOptions implements Cloneable
    @Override
    public int hashCode() {
       return Objects.hashCode(super.hashCode(), volumes, hostname, dns, memory, entrypoint, commands, cpuShares, env,
-            portBindings, extraHosts, volumesFrom, privileged, openStdin, configBuilder);
+            portBindings, networkMode, extraHosts, volumesFrom, privileged, openStdin, configBuilder);
    }
 
    @Override
@@ -264,7 +264,11 @@ public class DockerTemplateOptions extends TemplateOptions implements Cloneable
    }
 
    /**
-    * Sets the networking mode for the container. Supported values are: bridge, host, and container:[name|id]
+    * Sets the networking mode for the container.
+    * <p>
+    * Supported values are: {@code bridge}, {@code none}, {@code host},
+    * {@code networkname}, {@code networkid} or {@code container:[name|id]}
+    *
     * @param networkMode
     * @return this instance
     */

http://git-wip-us.apache.org/repos/asf/jclouds/blob/f2ce5679/apis/docker/src/main/java/org/jclouds/docker/compute/strategy/DockerComputeServiceAdapter.java
----------------------------------------------------------------------
diff --git a/apis/docker/src/main/java/org/jclouds/docker/compute/strategy/DockerComputeServiceAdapter.java b/apis/docker/src/main/java/org/jclouds/docker/compute/strategy/DockerComputeServiceAdapter.java
index 9ce63e5..8130838 100644
--- a/apis/docker/src/main/java/org/jclouds/docker/compute/strategy/DockerComputeServiceAdapter.java
+++ b/apis/docker/src/main/java/org/jclouds/docker/compute/strategy/DockerComputeServiceAdapter.java
@@ -32,6 +32,7 @@ import com.google.common.base.Predicate;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
@@ -182,7 +183,6 @@ public class DockerComputeServiceAdapter implements
          hostConfigBuilder = HostConfig.builder().fromHostConfig(containerConfig.hostConfig());
          hostConfigBuilder.portBindings(portBindings);
          containerConfigBuilder.hostConfig(hostConfigBuilder.build());
-
       } else {
          containerConfigBuilder.image(imageId);
       }
@@ -193,9 +193,20 @@ public class DockerComputeServiceAdapter implements
       Container container = api.getContainerApi().createContainer(name, containerConfig);
       logger.trace("<< container(%s)", container.id());
 
+      if (templateOptions.getNetworks() != null) {
+          logger.debug(">> connecting container(%s) to networks(%s)", container.id(), Iterables.toString(templateOptions.getNetworks()));
+          for (String networkIdOrName : templateOptions.getNetworks()) {
+              api.getNetworkApi().connectContainerToNetwork(networkIdOrName, container.id());
+          }
+          logger.trace("<< connected(%s)", container.id());
+      }
+
       HostConfig hostConfig = containerConfig.hostConfig();
 
+      logger.debug(">> starting container(%s) with hostConfig(%s)", container.id(), hostConfig);
       api.getContainerApi().startContainer(container.id(), hostConfig);
+      logger.trace("<< started(%s)", container.id());
+
       container = api.getContainerApi().inspectContainer(container.id());
       if (container.state().exitCode() != 0) {
          destroyNode(container.id());