http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/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/397d9926/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/397d9926/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/397d9926/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/397d9926/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;
-   }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/functions/ContainerToNodeMetadataTest.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/functions/ContainerToNodeMetadataTest.java
 
b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/functions/ContainerToNodeMetadataTest.java
deleted file mode 100644
index 3394cde..0000000
--- 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/functions/ContainerToNodeMetadataTest.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- *  work for additional information regarding copyright ownership.
- * The ASF licenses  file to You under the Apache License, Version 2.0
- * (the "License"); you may not use  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.functions;
-
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-import static org.testng.Assert.assertEquals;
-import java.util.List;
-import java.util.Map;
-
-import org.easymock.EasyMock;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.functions.GroupNamingConvention;
-import org.jclouds.docker.domain.Config;
-import org.jclouds.docker.domain.Container;
-import org.jclouds.docker.domain.HostConfig;
-import org.jclouds.docker.domain.NetworkSettings;
-import org.jclouds.docker.domain.Port;
-import org.jclouds.docker.domain.State;
-import org.jclouds.providers.ProviderMetadata;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Function;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.inject.Guice;
-
-/**
- * Unit tests for the {@link 
org.jclouds.docker.compute.functions.ContainerToNodeMetadata} class.
- * 
- * @author Andrea Turli
- */
-@Test(groups = "unit", testName = "ContainerToNodeMetadataTest")
-public class ContainerToNodeMetadataTest {
-   private ContainerToNodeMetadata function;
-
-   private Container container;
-
-   @BeforeMethod
-   public void setup() {
-      Config config = Config.builder()
-              .hostname("6d35806c1bd2")
-              .domainName("")
-              .user("")
-              .memory(0)
-              .memorySwap(0)
-              .cpuShares(0)
-              .attachStdin(false)
-              .attachStdout(false)
-              .attachStderr(false)
-              .exposedPorts(ImmutableMap.of("22/tcp", ImmutableMap.of()))
-              .tty(false)
-              .openStdin(false)
-              .stdinOnce(false)
-              .env(null)
-              .cmd(ImmutableList.of("/usr/sbin/sshd", "-D"))
-              .imageId("jclouds/ubuntu")
-              .volumesFrom("")
-              .workingDir("")
-              .entrypoint(null)
-              .networkDisabled(false)
-              .onBuild(null)
-              .build();
-      State state = State.builder()
-              .pid(3626)
-              .running(true)
-              .exitCode(0)
-              .startedAt("2014-03-24T20:28:37.537659054Z")
-              .finishedAt("0001-01-01T00:00:00Z")
-              .ghost(false)
-              .build();
-      container = Container.builder()
-              
.id("6d35806c1bd2b25cd92bba2d2c2c5169dc2156f53ab45c2b62d76e2d2fee14a9")
-              .name("/hopeful_mclean")
-              .created("2014-03-22T07:16:45.784120972Z")
-              .path("/usr/sbin/sshd")
-              .args(new String[] {"-D"})
-              .config(config)
-              .state(state)
-              
.image("af0f59f1c19eef9471c3b8c8d587c39b8f130560b54f3766931b37d76d5de4b6")
-              .networkSettings(NetworkSettings.builder()
-                      .ipAddress("172.17.0.2")
-                      .ipPrefixLen(16)
-                      .gateway("172.17.42.1")
-                      .bridge("docker0")
-                      .ports(ImmutableMap.<String, List<Map<String, 
String>>>of("22/tcp",
-                              ImmutableList.<Map<String, 
String>>of(ImmutableMap.of("HostIp", "0.0.0.0", "HostPort",
-                                      "49199"))))
-                      .build())
-              .resolvConfPath("/etc/resolv.conf")
-              .driver("aufs")
-              .execDriver("native-0.1")
-              .volumes(ImmutableMap.<String, String>of())
-              .volumesRw(ImmutableMap.<String, Boolean>of())
-              .command("")
-              .status("")
-              .hostConfig(HostConfig.builder().publishAllPorts(true).build())
-              .ports(ImmutableList.<Port>of())
-              .build();
-      ProviderMetadata providerMetadata = 
EasyMock.createMock(ProviderMetadata.class);
-      
expect(providerMetadata.getEndpoint()).andReturn("http://127.0.0.1:4243";);
-      replay(providerMetadata);
-
-      GroupNamingConvention.Factory namingConvention = 
Guice.createInjector().getInstance(GroupNamingConvention.Factory.class);
-
-      function = new ContainerToNodeMetadata(providerMetadata, 
toPortableStatus(), namingConvention);
-   }
-
-   private Function<State, NodeMetadata.Status> toPortableStatus() {
-      StateToStatus function = EasyMock.createMock(StateToStatus.class);
-         
expect(function.apply(anyObject(State.class))).andReturn(NodeMetadata.Status.RUNNING);
-         replay(function);
-         return function;
-   }
-
-   public void testVirtualMachineToNodeMetadata() {
-      Container mockContainer = mockContainer();
-
-      NodeMetadata node = function.apply(mockContainer);
-
-      verify(mockContainer);
-
-      assertEquals(node.getId(), 
"6d35806c1bd2b25cd92bba2d2c2c5169dc2156f53ab45c2b62d76e2d2fee14a9");
-      assertEquals(node.getGroup(), "hopeful_mclean");
-      assertEquals(node.getImageId(), 
"af0f59f1c19eef9471c3b8c8d587c39b8f130560b54f3766931b37d76d5de4b6");
-      assertEquals(node.getLoginPort(), 49199);
-      assertEquals(node.getPrivateAddresses().size(), 1);
-      assertEquals(node.getPublicAddresses().size(), 1);
-   }
-
-   @SuppressWarnings("unchecked")
-   private Container mockContainer() {
-      Container mockContainer = EasyMock.createMock(Container.class);
-
-      expect(mockContainer.getId()).andReturn(container.getId());
-      expect(mockContainer.getName()).andReturn(container.getName());
-      
expect(mockContainer.getConfig()).andReturn(container.getConfig()).anyTimes();
-      
expect(mockContainer.getNetworkSettings()).andReturn(container.getNetworkSettings()).anyTimes();
-      expect(mockContainer.getState()).andReturn(container.getState());
-      expect(mockContainer.getImage()).andReturn(container.getImage());
-      replay(mockContainer);
-
-      return mockContainer;
-   }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/functions/ImageToImageTest.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/functions/ImageToImageTest.java
 
b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/functions/ImageToImageTest.java
deleted file mode 100644
index c46bdb1..0000000
--- 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/functions/ImageToImageTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- *  work for additional information regarding copyright ownership.
- * The ASF licenses  file to You under the Apache License, Version 2.0
- * (the "License"); you may not use  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.functions;
-
-import com.google.common.collect.ImmutableList;
-import org.easymock.EasyMock;
-import org.jclouds.compute.domain.Image;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-import static org.testng.Assert.assertEquals;
-
-/**
- * Unit tests for the {@link 
org.jclouds.docker.compute.functions.ImageToImage} class.
- *
- * @author Andrea Turli
- */
-@Test(groups = "unit", testName = "ImageToImageTest")
-public class ImageToImageTest {
-   private ImageToImage function;
-
-   private org.jclouds.docker.domain.Image image;
-
-   @BeforeMethod
-   public void setup() {
-      image = org.jclouds.docker.domain.Image.builder()
-                                             .id("id")
-                                             .parent("parent")
-                                             .created("created")
-                                             .architecture("x86_64")
-                                             
.repoTags(ImmutableList.of("repoTag1:version"))
-                                             .size(0l)
-                                             .build();
-      function = new ImageToImage();
-   }
-
-   public void testImageToImage() {
-      org.jclouds.docker.domain.Image mockImage = mockImage();
-
-      Image image = function.apply(mockImage);
-
-      verify(mockImage);
-
-      assertEquals(mockImage.getId(), image.getId().toString());
-   }
-
-   @SuppressWarnings("unchecked")
-   private org.jclouds.docker.domain.Image mockImage() {
-      org.jclouds.docker.domain.Image mockImage = 
EasyMock.createMock(org.jclouds.docker.domain.Image.class);
-
-      expect(mockImage.getId()).andReturn(image.getId()).anyTimes();
-      
expect(mockImage.getRepoTags()).andReturn(image.getRepoTags()).anyTimes();
-      
expect(mockImage.getArchitecture()).andReturn(image.getArchitecture()).anyTimes();
-      replay(mockImage);
-
-      return mockImage;
-   }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/functions/StateToStatusTest.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/functions/StateToStatusTest.java
 
b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/functions/StateToStatusTest.java
deleted file mode 100644
index c1a8002..0000000
--- 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/compute/functions/StateToStatusTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- *  work for additional information regarding copyright ownership.
- * The ASF licenses  file to You under the Apache License, Version 2.0
- * (the "License"); you may not use  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.functions;
-
-import org.easymock.EasyMock;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.docker.domain.State;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-import static org.testng.Assert.assertEquals;
-
-/**
- * Unit tests for the {@link StateToStatus} class.
- *
- * @author Andrea Turli
- */
-@Test(groups = "unit", testName = "StateToStatusTest")
-public class StateToStatusTest {
-   private StateToStatus function;
-
-   @BeforeMethod
-   public void setup() {
-      function = new StateToStatus();
-   }
-
-   public void testStateRunningToStatusRunning() {
-      State mockState = mockStateRunning();
-
-      NodeMetadata.Status status = function.apply(mockState);
-
-      verify(mockState);
-
-      assertEquals(mockState.isRunning(), true);
-      assertEquals(status, NodeMetadata.Status.RUNNING);
-   }
-
-   public void testStateNotRunningToStatusSuspended() {
-      State mockState = mockStateNotRunning();
-
-      NodeMetadata.Status status = function.apply(mockState);
-
-      verify(mockState);
-
-      assertEquals(mockState.isRunning(), false);
-      assertEquals(status, NodeMetadata.Status.SUSPENDED);
-   }
-
-   private State mockStateRunning() {
-      State mockState = EasyMock.createMock(State.class);
-
-      expect(mockState.isRunning()).andReturn(true).anyTimes();
-      replay(mockState);
-
-      return mockState;
-   }
-
-   private State mockStateNotRunning() {
-      State mockState = EasyMock.createMock(State.class);
-
-      expect(mockState.isRunning()).andReturn(false).anyTimes();
-      replay(mockState);
-
-      return mockState;
-   }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/config/DockerParserModuleTest.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/config/DockerParserModuleTest.java
 
b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/config/DockerParserModuleTest.java
deleted file mode 100644
index 23d387d..0000000
--- 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/config/DockerParserModuleTest.java
+++ /dev/null
@@ -1,102 +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.config;
-
-import static 
org.jclouds.docker.config.DockerParserModule.ContainerTypeAdapter;
-import static org.jclouds.docker.config.DockerParserModule.ImageTypeAdapter;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-
-import org.jclouds.docker.domain.Container;
-import org.jclouds.docker.domain.Image;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-
-/**
- * Unit tests for the {@link org.jclouds.docker.config.DockerParserModule} 
class.
- *
- * @author Andrea Turli
- */
-@Test(groups = "unit", testName = "DockerParserModuleTest")
-public class DockerParserModuleTest {
-
-   private Gson gson;
-
-   @BeforeMethod
-   public void setup() {
-      gson = new GsonBuilder()
-              .registerTypeAdapter(Container.class, new ContainerTypeAdapter())
-              .registerTypeAdapter(Image.class, new ImageTypeAdapter())
-              .create();
-   }
-
-   @Test
-   public void testContainerID() {
-      Container container = gson.fromJson(
-              "{ \"ID\": 
\"1111111111111111111111111111111111111111111111111111111111111111\" }",
-              Container.class);
-      assertNotNull(container);
-      assertEquals(container.getId(), 
"1111111111111111111111111111111111111111111111111111111111111111");
-   }
-
-
-   @Test
-   public void testContainerId() {
-      Container container = gson.fromJson(
-              "{ \"Id\": 
\"2222222222222222222222222222222222222222222222222222222222222222\" }",
-              Container.class);
-      assertNotNull(container);
-      assertEquals(container.getId(), 
"2222222222222222222222222222222222222222222222222222222222222222");
-   }
-
-   @Test
-   public void testContainerName() {
-      Container container = gson.fromJson(
-              "{ \"Name\": \"example\" }",
-              Container.class);
-      assertNotNull(container);
-      assertEquals(container.getName(), "example");
-   }
-
-
-   @Test
-   public void testContainerNames() {
-      Container container = gson.fromJson("{ \"Names\": [\"/jclouds-b45\"] }", 
Container.class);
-      assertNotNull(container);
-      assertEquals(container.getName(), "/jclouds-b45");
-   }
-
-   @Test
-   public void testImageid() {
-      Image image = gson.fromJson(
-              "{ \"id\": 
\"3333333333333333333333333333333333333333333333333333333333333333\" }", 
Image.class);
-      assertNotNull(image);
-      assertEquals(image.getId(), 
"3333333333333333333333333333333333333333333333333333333333333333");
-   }
-
-
-   @Test
-   public void testImageId() {
-      Image image = gson.fromJson(
-              "{ \"Id\": 
\"4444444444444444444444444444444444444444444444444444444444444444\" }", 
Image.class);
-      assertNotNull(image);
-      assertEquals(image.getId(), 
"4444444444444444444444444444444444444444444444444444444444444444");
-   }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/internal/BaseDockerMockTest.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/internal/BaseDockerMockTest.java
 
b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/internal/BaseDockerMockTest.java
deleted file mode 100644
index c0fe074..0000000
--- 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/java/org/jclouds/docker/internal/BaseDockerMockTest.java
+++ /dev/null
@@ -1,119 +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.internal;
-
-import com.google.common.base.Charsets;
-import com.google.common.base.Throwables;
-import com.google.common.collect.ImmutableMultimap;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Multimap;
-import com.google.inject.Module;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-import com.squareup.okhttp.mockwebserver.RecordedRequest;
-import org.jclouds.ContextBuilder;
-import org.jclouds.concurrent.config.ExecutorServiceModule;
-import org.jclouds.docker.DockerApi;
-
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.MediaType;
-import java.io.IOException;
-import java.net.URL;
-import java.util.Properties;
-import java.util.Set;
-
-import static 
com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor;
-import static org.jclouds.http.utils.Queries.encodeQueryLine;
-import static org.jclouds.util.Strings2.toStringAndClose;
-import static org.testng.Assert.assertEquals;
-
-/**
- * Base class for all Docker mock tests.
- * 
- * @author Andrea Turli
- */
-public class BaseDockerMockTest {
-   private final Set<Module> modules = ImmutableSet.<Module> of(new 
ExecutorServiceModule(sameThreadExecutor(),
-         sameThreadExecutor()));
-
-   protected String provider;
-
-   public BaseDockerMockTest() {
-      provider = "docker";
-   }
-
-   public DockerApi api(URL url) {
-      return ContextBuilder.newBuilder(provider)
-            .credentials("clientid", "apikey")
-            .endpoint(url.toString())
-            .modules(modules) 
-            .overrides(setupProperties()) 
-            .buildApi(DockerApi.class);
-   }
-
-   protected Properties setupProperties() {
-      return new Properties();
-   }
-
-   public static MockWebServer mockWebServer() throws IOException {
-      MockWebServer server = new MockWebServer();
-      server.play();
-      return server;
-   }
-
-   public byte[] payloadFromResource(String resource) {
-      try {
-         return 
toStringAndClose(getClass().getResourceAsStream(resource)).getBytes(Charsets.UTF_8);
-      } catch (IOException e) {
-         throw Throwables.propagate(e);
-      }
-   }
-
-   protected static void assertRequestHasCommonFields(final RecordedRequest 
request, final String path)
-           throws InterruptedException {
-      assertRequestHasParameters(request, "GET", path, 
ImmutableMultimap.<String, String> of());
-   }
-
-   protected static void assertRequestHasCommonFields(final RecordedRequest 
request,
-                                                      final String verb, final 
String path)
-         throws InterruptedException {
-      assertRequestHasParameters(request, verb, path, 
ImmutableMultimap.<String, String> of());
-   }
-
-   protected static void assertRequestHasParameters(final RecordedRequest 
request, final String path,
-                                                    Multimap<String, String> 
parameters) throws InterruptedException {
-      assertRequestHasParameters(request, "GET", path, parameters);
-   }
-
-   protected static void assertRequestHasParameters(final RecordedRequest 
request, String verb, final String path,
-                                                    Multimap<String, String> 
parameters) throws InterruptedException {
-      String queryParameters = "";
-      if (!parameters.isEmpty()) {
-         Multimap<String, String> allparams = ImmutableMultimap.<String, 
String>builder()
-                 .putAll(parameters)
-                 .build();
-
-         assertRequestHasAcceptHeader(request);
-         queryParameters = "?" + encodeQueryLine(allparams);
-      }
-      assertEquals(request.getRequestLine(), verb + " " + path + 
queryParameters + " HTTP/1.1");
-   }
-
-   protected static void assertRequestHasAcceptHeader(final RecordedRequest 
request) throws InterruptedException {
-      assertEquals(request.getHeader(HttpHeaders.ACCEPT), 
MediaType.APPLICATION_JSON);
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/resources/Dockerfile
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/resources/Dockerfile 
b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/resources/Dockerfile
deleted file mode 100644
index 1318715..0000000
--- 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/resources/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 <[email protected]>
-
-# 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/397d9926/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/resources/container-creation.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/resources/container-creation.json
 
b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/resources/container-creation.json
deleted file mode 100644
index 3e34e0b..0000000
--- 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/resources/container-creation.json
+++ /dev/null
@@ -1 +0,0 @@
-{"Id":"c6c74153ae4b1d1633d68890a68d89c40aa5e284a1ea016cbc6ef0e634ee37b2","Warnings":null}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/resources/container.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/resources/container.json
 
b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/resources/container.json
deleted file mode 100644
index acb4a21..0000000
--- 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/resources/container.json
+++ /dev/null
@@ -1,87 +0,0 @@
-{
-    "ID": "6d35806c1bd2b25cd92bba2d2c2c5169dc2156f53ab45c2b62d76e2d2fee14a9",
-    "Created": "2014-03-22T07:16:45.784120972Z",
-    "Path": "/usr/sbin/sshd",
-    "Args": [
-        "-D"
-    ],
-    "Config": {
-        "Hostname": "6d35806c1bd2",
-        "Domainname": "",
-        "User": "",
-        "Memory": 0,
-        "MemorySwap": 0,
-        "CpuShares": 0,
-        "AttachStdin": false,
-        "AttachStdout": false,
-        "AttachStderr": false,
-        "PortSpecs": null,
-        "ExposedPorts": {
-            "22/tcp": {}
-        },
-        "Tty": false,
-        "OpenStdin": false,
-        "StdinOnce": false,
-        "Env": null,
-        "Cmd": [
-            "/usr/sbin/sshd",
-            "-D"
-        ],
-        "Dns": null,
-        "Image": "jclouds/ubuntu",
-        "Volumes": null,
-        "VolumesFrom": "",
-        "WorkingDir": "",
-        "Entrypoint": null,
-        "NetworkDisabled": false,
-        "OnBuild": null
-    },
-    "State": {
-        "Running": true,
-        "Pid": 7051,
-        "ExitCode": 0,
-        "StartedAt": "2014-03-22T07:16:45.845347434Z",
-        "FinishedAt": "0001-01-01T00:00:00Z",
-        "Ghost": false
-    },
-    "Image": 
"af0f59f1c19eef9471c3b8c8d587c39b8f130560b54f3766931b37d76d5de4b6",
-    "NetworkSettings": {
-        "IPAddress": "172.17.0.2",
-        "IPPrefixLen": 16,
-        "Gateway": "172.17.42.1",
-        "Bridge": "docker0",
-        "PortMapping": null,
-        "Ports": {
-            "22/tcp": [
-                {
-                    "HostIp": "0.0.0.0",
-                    "HostPort": "49231"
-                }
-            ]
-        }
-    },
-    "ResolvConfPath": "/etc/resolv.conf",
-    "HostnamePath": 
"/mnt/sda1/var/lib/docker/containers/6d35806c1bd2b25cd92bba2d2c2c5169dc2156f53ab45c2b62d76e2d2fee14a9/hostname",
-    "HostsPath": 
"/mnt/sda1/var/lib/docker/containers/6d35806c1bd2b25cd92bba2d2c2c5169dc2156f53ab45c2b62d76e2d2fee14a9/hosts",
-    "Name": "/hopeful_mclean",
-    "Driver": "aufs",
-    "ExecDriver": "native-0.1",
-    "Volumes": {},
-    "VolumesRW": {},
-    "HostConfig": {
-        "Binds": null,
-        "ContainerIDFile": "",
-        "LxcConf": [],
-        "Privileged": false,
-        "PortBindings": {
-            "22/tcp": [
-                {
-                    "HostIp": "0.0.0.0",
-                    "HostPort": "49231"
-                }
-            ]
-        },
-        "Links": null,
-        "PublishAllPorts": false
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/resources/containers.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/resources/containers.json
 
b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/resources/containers.json
deleted file mode 100644
index 8f789b7..0000000
--- 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/resources/containers.json
+++ /dev/null
@@ -1,20 +0,0 @@
-[
-  {
-    "Command": "/usr/sbin/sshd -D",
-    "Created": 1395472605,
-    "Id": "6d35806c1bd2b25cd92bba2d2c2c5169dc2156f53ab45c2b62d76e2d2fee14a9",
-    "Image": "jclouds/ubuntu:latest",
-    "Names": [
-      "/hopeful_mclean"
-    ],
-    "Ports": [
-      {
-        "IP": "0.0.0.0",
-        "PrivatePort": 22,
-        "PublicPort": 49231,
-        "Type": "tcp"
-      }
-    ],
-    "Status": "Up 55 seconds"
-  }
-]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/resources/logback.xml
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/resources/logback.xml 
b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/resources/logback.xml
deleted file mode 100644
index 94f5938..0000000
--- 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/test/resources/logback.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.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.
-
--->
-<configuration>
-    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-        <encoder>
-            <pattern>- %msg%n</pattern>
-        </encoder>
-    </appender>
-    <root level="info">
-        <appender-ref ref="STDOUT"/>
-    </root>
-    <logger name="jclouds.compute" level="debug"/>
-    <logger name="net.schmizz" level="warn"/>
-    <logger name="jclouds.wire" level="debug"/>
-    <logger name="jclouds.headers" level="debug"/>
-    <logger name="jclouds.ssh" level="debug"/>
-</configuration>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/docker/1.8.0-stratos/README.md
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/docker/1.8.0-stratos/README.md 
b/dependencies/jclouds/apis/docker/1.8.0-stratos/README.md
new file mode 100644
index 0000000..3ce8cf0
--- /dev/null
+++ b/dependencies/jclouds/apis/docker/1.8.0-stratos/README.md
@@ -0,0 +1,52 @@
+# Docker as a local cloud provider
+jclouds-docker is a local cloud provider modelled on 
[docker](http://www.docker.io). Similar to other jclouds supported
+providers, it supports the same portable abstractions offered by jclouds.
+
+##Setup
+
+Please follow these steps to configure your workstation for jclouds-docker:
+
+- install the latest Docker release (please visit 
http://www.docker.io/gettingstarted/)
+
+If you are on OS X, please consider 
[boot2docker](http://docs.docker.io/en/latest/installation/mac/) as simplified
+way to install docker locally.
+
+#How it works
+
+
+                                               ---------------   -------------
+                                              |   Image(s)    | |   Node(s)   |
+                                              ---------------   -------------
+     ---------    docker remote api           
----------------------------------------
+    | jclouds | ---------------------------> |              DOCKER_HOST        
      |
+     ---------                               
----------------------------------------
+
+##Components
+
+- jclouds \- acts as a java client to access to docker features
+- DOCKER_HOST \- hosts Docker API, NB: jclouds-docker assumes that the latest 
Docker is installed
+- Image \- it is a docker image that can be started.
+- Node \- is a docker container
+
+## Assumptions
+
+- jclouds-docker assumes that the images specified using the template are 
ssh'able.
+- jclouds-docker will mount ${user.home} to /root of the container
+
+--------------
+
+#Notes:
+- jclouds-docker is still at alpha stage please report any issues you find at 
[jclouds issues](https://github.com/jclouds/jclouds/issues?state=open)
+- jclouds-docker has been tested on Mac OSX, it might work on Linux iff vbox 
is running and set up correctly. However, it will not currently run on Windows.
+
+--------------
+
+#Troubleshooting
+As jclouds docker support is quite new, issues may occasionally arise. Please 
follow these steps to get things going again:
+
+1. Remove all containers
+
+      `$ docker ps -a -q | xargs docker stop | xargs docker rm`
+2. remove all the images
+
+    `$ docker images -q | xargs docker rmi`

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/docker/1.8.0-stratos/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/docker/1.8.0-stratos/pom.xml 
b/dependencies/jclouds/apis/docker/1.8.0-stratos/pom.xml
new file mode 100644
index 0000000..d2a3cca
--- /dev/null
+++ b/dependencies/jclouds/apis/docker/1.8.0-stratos/pom.xml
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.jclouds.labs</groupId>
+    <artifactId>jclouds-labs</artifactId>
+    <version>1.8.0</version>
+  </parent>
+
+  <!-- TODO: when out of labs, switch to org.jclouds.provider -->
+  <groupId>org.apache.stratos</groupId>
+  <artifactId>docker</artifactId>
+  <name>jclouds docker API</name>
+  <version>1.8.0-stratos</version>
+  <description>ComputeService binding to the Docker API</description>
+  <packaging>bundle</packaging>
+
+  <properties>
+    <jclouds.version>1.8.0</jclouds.version>
+    <test.docker.endpoint>https://localhost:4243</test.docker.endpoint>
+    <test.docker.api-version>1.10</test.docker.api-version>
+    <test.docker.identity>FIXME</test.docker.identity>
+    <test.docker.credential>FIXME</test.docker.credential>
+    
<jclouds.osgi.export>org.jclouds.docker*;version="${project.version}"</jclouds.osgi.export>
+    <jclouds.osgi.import>
+      org.jclouds.compute.internal;version="${jclouds.version}",
+      org.jclouds.rest.internal;version="${jclouds.version}",
+      org.jclouds*;version="${jclouds.version}",
+      *
+    </jclouds.osgi.import>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.jclouds</groupId>
+      <artifactId>jclouds-core</artifactId>
+      <version>${jclouds.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds</groupId>
+      <artifactId>jclouds-compute</artifactId>
+      <version>${jclouds.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-compress</artifactId>
+      <version>1.5</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.jclouds.driver</groupId>
+      <artifactId>jclouds-sshj</artifactId>
+      <version>${jclouds.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds</groupId>
+      <artifactId>jclouds-core</artifactId>
+      <version>${jclouds.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds</groupId>
+      <artifactId>jclouds-compute</artifactId>
+      <version>${jclouds.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds.driver</groupId>
+      <artifactId>jclouds-slf4j</artifactId>
+      <version>${jclouds.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>com.squareup.okhttp</groupId>
+      <artifactId>mockwebserver</artifactId>
+      <scope>test</scope>
+      <exclusions>
+        <!-- Already provided by jclouds-sshj -->
+        <exclusion>
+          <groupId>org.bouncycastle</groupId>
+          <artifactId>bcprov-jdk15on</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+  </dependencies>
+
+  <profiles>
+    <profile>
+      <id>live</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>integration</id>
+                <phase>integration-test</phase>
+                <goals>
+                  <goal>test</goal>
+                </goals>
+                <configuration>
+                  <systemPropertyVariables>
+                    
<test.docker.endpoint>${test.docker.endpoint}</test.docker.endpoint>
+                    
<test.docker.api-version>${test.docker.api-version}</test.docker.api-version>
+                    
<test.docker.credential>${test.docker.identity}</test.docker.credential>
+                    
<test.docker.credential>${test.docker.credential}</test.docker.credential>
+                  </systemPropertyVariables>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+
+</project>

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/docker/1.8.0-stratos/src/main/java/org/jclouds/docker/DockerApi.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/docker/1.8.0-stratos/src/main/java/org/jclouds/docker/DockerApi.java
 
b/dependencies/jclouds/apis/docker/1.8.0-stratos/src/main/java/org/jclouds/docker/DockerApi.java
new file mode 100644
index 0000000..54bf5c9
--- /dev/null
+++ 
b/dependencies/jclouds/apis/docker/1.8.0-stratos/src/main/java/org/jclouds/docker/DockerApi.java
@@ -0,0 +1,37 @@
+/*
+ * 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.docker.features.RemoteApi;
+import org.jclouds.rest.annotations.Delegate;
+
+import java.io.Closeable;
+
+/**
+ * Provides synchronous access to Docker Remote API.
+ *
+ * @see <a href="https://docs.docker.com/reference/api/docker_remote_api/";></a>
+ */
+public interface DockerApi extends Closeable {
+
+   /**
+    * Provides synchronous access to Docker Remote API features.
+    */
+   @Delegate
+   RemoteApi getRemoteApi();
+
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/docker/1.8.0-stratos/src/main/java/org/jclouds/docker/DockerApiMetadata.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/docker/1.8.0-stratos/src/main/java/org/jclouds/docker/DockerApiMetadata.java
 
b/dependencies/jclouds/apis/docker/1.8.0-stratos/src/main/java/org/jclouds/docker/DockerApiMetadata.java
new file mode 100644
index 0000000..b281eb7
--- /dev/null
+++ 
b/dependencies/jclouds/apis/docker/1.8.0-stratos/src/main/java/org/jclouds/docker/DockerApiMetadata.java
@@ -0,0 +1,98 @@
+/*
+ * 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 com.google.common.collect.ImmutableSet;
+import com.google.inject.Module;
+import org.jclouds.Constants;
+import org.jclouds.apis.ApiMetadata;
+import org.jclouds.compute.ComputeServiceContext;
+import org.jclouds.compute.config.ComputeServiceProperties;
+import org.jclouds.docker.compute.config.DockerComputeServiceContextModule;
+import org.jclouds.docker.config.DockerHttpApiModule;
+import org.jclouds.docker.config.DockerParserModule;
+import org.jclouds.rest.internal.BaseHttpApiMetadata;
+
+import java.net.URI;
+import java.util.Properties;
+
+import static org.jclouds.compute.config.ComputeServiceProperties.TEMPLATE;
+import static org.jclouds.reflect.Reflection2.typeToken;
+
+/**
+ * Implementation of {@link BaseHttpApiMetadata} for the Docker API
+ */
+public class DockerApiMetadata extends BaseHttpApiMetadata<DockerApi> {
+
+   @Override
+   public Builder toBuilder() {
+      return new Builder().fromApiMetadata(this);
+   }
+
+   public DockerApiMetadata() {
+      this(new Builder());
+   }
+
+   protected DockerApiMetadata(Builder builder) {
+      super(builder);
+   }
+
+   public static Properties defaultProperties() {
+      Properties properties = BaseHttpApiMetadata.defaultProperties();
+      properties.setProperty(Constants.PROPERTY_MAX_RETRIES, "15");
+      properties.setProperty("jclouds.ssh.retry-auth", "true");
+      properties.setProperty(Constants.PROPERTY_CONNECTION_TIMEOUT, 
"1200000"); // 15 minutes
+      properties.setProperty(ComputeServiceProperties.IMAGE_LOGIN_USER, 
"root:password");
+      properties.setProperty(TEMPLATE, 
"osFamily=UBUNTU,os64Bit=true,osVersionMatches=1[012].[01][04]");
+      return properties;
+   }
+
+   public static class Builder extends BaseHttpApiMetadata.Builder<DockerApi, 
Builder> {
+
+      protected Builder() {
+         super(DockerApi.class);
+         id("docker")
+                 .name("Docker API")
+                 .identityName("user")
+                 .credentialName("password")
+                 
.documentation(URI.create("https://docs.docker.com/reference/api/docker_remote_api/";))
+                 .version("1.12")
+                 .defaultEndpoint("http://127.0.0.1:2375";)
+                 .defaultProperties(DockerApiMetadata.defaultProperties())
+                 .view(typeToken(ComputeServiceContext.class))
+                 .defaultModules(ImmutableSet.<Class<? extends Module>>of(
+                         DockerHttpApiModule.class,
+                         DockerParserModule.class,
+                         DockerComputeServiceContextModule.class));
+      }
+
+      @Override
+      public DockerApiMetadata build() {
+         return new DockerApiMetadata(this);
+      }
+
+      @Override
+      protected Builder self() {
+         return this;
+      }
+
+      @Override
+      public Builder fromApiMetadata(ApiMetadata in) {
+         return this;
+      }
+   }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/docker/1.8.0-stratos/src/main/java/org/jclouds/docker/binders/BindInputStreamToRequest.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/docker/1.8.0-stratos/src/main/java/org/jclouds/docker/binders/BindInputStreamToRequest.java
 
b/dependencies/jclouds/apis/docker/1.8.0-stratos/src/main/java/org/jclouds/docker/binders/BindInputStreamToRequest.java
new file mode 100644
index 0000000..855a2e5
--- /dev/null
+++ 
b/dependencies/jclouds/apis/docker/1.8.0-stratos/src/main/java/org/jclouds/docker/binders/BindInputStreamToRequest.java
@@ -0,0 +1,68 @@
+/*
+ * 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.binders;
+
+import com.google.common.base.Throwables;
+import com.google.common.io.Files;
+import org.jclouds.compute.reference.ComputeServiceConstants;
+import org.jclouds.docker.features.internal.Archives;
+import org.jclouds.http.HttpRequest;
+import org.jclouds.io.Payload;
+import org.jclouds.io.Payloads;
+import org.jclouds.logging.Logger;
+import org.jclouds.rest.Binder;
+
+import javax.annotation.Resource;
+import javax.inject.Named;
+import javax.inject.Singleton;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+
+import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.base.Preconditions.checkNotNull;
+
+@Singleton
+public class BindInputStreamToRequest implements Binder {
+
+   @Resource
+   @Named(ComputeServiceConstants.COMPUTE_LOGGER)
+   protected Logger logger = Logger.NULL;
+
+   @Override
+   public <R extends HttpRequest> R bindToRequest(R request, Object input) {
+      checkArgument(checkNotNull(input, "input") instanceof File, "this binder 
is only valid for File!");
+      checkNotNull(request, "request");
+
+      File dockerFile = (File) input;
+      File tmpDir = Files.createTempDir();
+      final File targetFile = new File(tmpDir + File.separator + "Dockerfile");
+      try {
+         Files.copy(dockerFile, targetFile);
+         File archive = Archives.tar(tmpDir, File.createTempFile("archive", 
".tar"));
+         FileInputStream data = new FileInputStream(archive);
+         Payload payload = Payloads.newInputStreamPayload(data);
+         
payload.getContentMetadata().setContentLength(data.getChannel().size());
+         payload.getContentMetadata().setContentType("application/tar");
+         request.setPayload(payload);
+      } catch (IOException e) {
+         logger.error(e, "Couldn't create a tarball for %s", targetFile);
+         throw Throwables.propagate(e);
+      }
+      return request;
+   }
+}

Reply via email to