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 2014/05/26 17:12:36 UTC

[2/3] JCLOUDS-517: New ElasticHosts images and regions

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/apis/elasticstack/src/test/resources/standard_drives.txt
----------------------------------------------------------------------
diff --git a/apis/elasticstack/src/test/resources/standard_drives.txt b/apis/elasticstack/src/test/resources/standard_drives.txt
new file mode 100644
index 0000000..c3161a6
--- /dev/null
+++ b/apis/elasticstack/src/test/resources/standard_drives.txt
@@ -0,0 +1,275 @@
+claim:type shared
+drive ce85ef47-9794-4ed7-a8bd-af902ec0eddc
+format gzip
+media disk
+name Debian Linux 7.4 (Wheezy)
+rawsize 1073741824
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 184549376
+
+claim:type shared
+drive 82890da7-a036-4427-ac24-caea6c644a2f
+format gzip
+media disk
+name Ubuntu 14.04 LTS (Trusty Tahr)
+rawsize 1073741824
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 264241152
+
+claim:type shared
+drive 62f512cd-82c7-498e-88d8-a09ac2ef20e7
+format gzip
+media disk
+name Ubuntu Linux 12.04.1 LTS (Precise Pangolin)
+rawsize 1073741824
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 201326592
+
+claim:type shared
+drive 4f31382b-5098-4610-8993-bbebb844febd
+format gzip
+media disk
+name Ubuntu Linux 13.10 (Saucy Salamander)
+rawsize 1073741824
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 230686720
+
+claim:type shared
+drive cdea53be-2511-4c91-9779-f6421f623a49
+format gzip
+media disk
+name Windows Server 2012
+rawsize 15032385536
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 7671382016
+
+claim:type shared
+drive 7b9807cc-3c92-425f-878c-1d45927f3f9c
+format gzip
+media disk
+name Windows Server 2012 + SQL
+rawsize 32212254720
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 17192452096
+
+claim:type shared
+drive 61ef248d-6616-4378-9702-9101870741d2
+format gzip
+media disk
+name Windows Server 2012 R2
+rawsize 10737418240
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 5368709120
+
+claim:type shared
+drive 6c0c3072-f55f-4dd2-9308-951dacf41ce3
+format gzip
+media disk
+name Windows Standard 2008 R2
+rawsize 9663676416
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 4345298944
+
+claim:type shared
+drive 63677762-4423-464f-92fd-5c43d449a716
+format gzip
+media disk
+name Windows Standard 2008 R2 + SQL
+rawsize 20401094656
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 14050918400
+
+claim:type shared
+drive 11b84345-7169-4279-8038-18d6ba1a7712
+format gzip
+media disk
+name Windows Web Server 2008 R2
+rawsize 11811160064
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 4743757824
+
+claim:type shared
+drive b23e81b9-103e-4f9d-8ce5-b57bb529007c
+format gzip
+media disk
+name Windows Web Server 2008 R2 + SQL
+rawsize 20401094656
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 14357102592
+
+claim:type shared
+drive 8d5c93b8-e4e4-4943-b41e-873576b7fcd1
+format gzip
+media disk
+name centOS Linux 6.5
+rawsize 1073741824
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 218103808
+
+claim:type shared
+drive 65cb106c-3dff-4f27-9607-f25bbe0a3fc6
+media cdrom
+name Debian 7.4 DVD
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 3955228672
+
+claim:type shared
+drive 8eeaa0d5-9696-4fb2-b34e-ccca28f54138
+media cdrom
+name Fedora 19 Install DVD
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 4445962240
+
+claim:type shared
+drive 4d0971b5-9780-4b42-a0a0-ea06a0669b8b
+media cdrom
+name Fedora 20 Install DVD
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 4605345792
+
+claim:type shared
+drive 07a08d47-1f24-4c99-a080-ea6b38502c66
+media cdrom
+name FreeBSD 10.0 DVD
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 2487222272
+
+claim:type shared
+drive 321eaeb7-a5a5-4ffd-9a62-db1d0ffd133f
+media cdrom
+name FreeBSD 9.2 DVD
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 2554331136
+
+claim:type shared
+drive cf0dfc73-2ab2-4317-a515-698ed4097c90
+media cdrom
+name Knoppix 7.2 DVD
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 4114612224
+
+claim:type shared
+drive 696a3dee-c29d-4bd2-afb9-06e995702b65
+media cdrom
+name Linux Mint 16 (Petra) DVD
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 1329594368
+
+claim:type shared
+drive 3f9ddec5-0f9e-4879-85fb-e412abe0cb37
+media cdrom
+name Microsoft SQL Express 2012
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 5507121152
+
+claim:type shared
+drive e58ad21f-c53f-47a1-95bd-c6d614a59d2d
+media cdrom
+name System Rescue CD 4.0.1
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 473956352
+
+claim:type shared
+drive 7fed7f41-7af7-42d9-bbf6-d96427757bc4
+media cdrom
+name Ubuntu 12.04.4 Desktop DVD
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 771751936
+
+claim:type shared
+drive 50f8aa7a-090e-413a-8be9-e0ef498b7012
+media cdrom
+name Ubuntu 12.04.4 Server DVD
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 713031680
+
+claim:type shared
+drive a8e87123-1d88-4bd4-ba60-3a42248f7bc0
+media cdrom
+name Ubuntu 13.10 Desktop DVD
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 926941184
+
+claim:type shared
+drive 00798d0a-1081-4590-8b6c-af1f927e209c
+media cdrom
+name Ubuntu 13.10 Server DVD
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 704643072
+
+claim:type shared
+drive 92f4a7e9-daa2-45f1-967c-cf460cf5bca1
+media cdrom
+name Ubuntu 14.04 LTS Desktop Live CD
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 1010827264
+
+claim:type shared
+drive 9dfbbe29-5352-415a-9f7c-70ec7409b684
+media cdrom
+name Ubuntu 14.04 LTS Server Install CD
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 591396864
+
+claim:type shared
+drive 5a4419f8-6c39-490c-87e9-21e33a1c8add
+media cdrom
+name Virtio Drivers 1.74
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 62914560
+
+claim:type shared
+drive 554f5ed7-811a-400d-9f96-3f829a2bc145
+media cdrom
+name Windows 2012 R2 Evaluation CD
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 5368709120
+
+claim:type shared
+drive 6cf6b5e4-f54f-4525-876b-d07123791880
+media cdrom
+name Windows Server 2008 R2 Trial Install CD
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 3170893824
+
+claim:type shared
+drive f89af28e-ff00-4fc9-a7ed-22e7fa5a88db
+media cdrom
+name Windows Server 2008 Trial Install CD
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 2663383040
+
+claim:type shared
+drive 0cc82095-a967-4e93-af04-9e265fbb4251
+media cdrom
+name Windows Server 2012 Install CD
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 3695181824
+
+claim:type shared
+drive dde6f196-a4bd-4ca7-b631-4d84d69b9490
+media cdrom
+name Windows Server 2012 R2 Install CD
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 4479516672
+
+claim:type shared
+drive 7aead6d3-c3e6-4940-85c7-f5ee61f6ef2b
+media cdrom
+name Windows Web Server 2008 Trial Install CD
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 2248146944
+
+claim:type shared
+drive 312ccda0-c3b2-4cac-911b-68b82a498075
+media cdrom
+name arch Linux 2014-03-01
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 553648128
+
+claim:type shared
+drive f42919f6-f535-44cd-bc9f-6bb6e44d05d8
+media cdrom
+name centOS 6.5 Live DVD
+readers ffffffff-ffff-ffff-ffff-ffffffffffff
+size 1874853888
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/apis/elasticstack/src/test/resources/standard_drives_uuids.txt
----------------------------------------------------------------------
diff --git a/apis/elasticstack/src/test/resources/standard_drives_uuids.txt b/apis/elasticstack/src/test/resources/standard_drives_uuids.txt
new file mode 100644
index 0000000..f490904
--- /dev/null
+++ b/apis/elasticstack/src/test/resources/standard_drives_uuids.txt
@@ -0,0 +1,36 @@
+ce85ef47-9794-4ed7-a8bd-af902ec0eddc
+82890da7-a036-4427-ac24-caea6c644a2f
+62f512cd-82c7-498e-88d8-a09ac2ef20e7
+4f31382b-5098-4610-8993-bbebb844febd
+cdea53be-2511-4c91-9779-f6421f623a49
+7b9807cc-3c92-425f-878c-1d45927f3f9c
+61ef248d-6616-4378-9702-9101870741d2
+6c0c3072-f55f-4dd2-9308-951dacf41ce3
+63677762-4423-464f-92fd-5c43d449a716
+11b84345-7169-4279-8038-18d6ba1a7712
+b23e81b9-103e-4f9d-8ce5-b57bb529007c
+8d5c93b8-e4e4-4943-b41e-873576b7fcd1
+65cb106c-3dff-4f27-9607-f25bbe0a3fc6
+8eeaa0d5-9696-4fb2-b34e-ccca28f54138
+4d0971b5-9780-4b42-a0a0-ea06a0669b8b
+07a08d47-1f24-4c99-a080-ea6b38502c66
+321eaeb7-a5a5-4ffd-9a62-db1d0ffd133f
+cf0dfc73-2ab2-4317-a515-698ed4097c90
+696a3dee-c29d-4bd2-afb9-06e995702b65
+3f9ddec5-0f9e-4879-85fb-e412abe0cb37
+e58ad21f-c53f-47a1-95bd-c6d614a59d2d
+7fed7f41-7af7-42d9-bbf6-d96427757bc4
+50f8aa7a-090e-413a-8be9-e0ef498b7012
+a8e87123-1d88-4bd4-ba60-3a42248f7bc0
+00798d0a-1081-4590-8b6c-af1f927e209c
+92f4a7e9-daa2-45f1-967c-cf460cf5bca1
+9dfbbe29-5352-415a-9f7c-70ec7409b684
+5a4419f8-6c39-490c-87e9-21e33a1c8add
+554f5ed7-811a-400d-9f96-3f829a2bc145
+6cf6b5e4-f54f-4525-876b-d07123791880
+f89af28e-ff00-4fc9-a7ed-22e7fa5a88db
+0cc82095-a967-4e93-af04-9e265fbb4251
+dde6f196-a4bd-4ca7-b631-4d84d69b9490
+7aead6d3-c3e6-4940-85c7-f5ee61f6ef2b
+312ccda0-c3b2-4cac-911b-68b82a498075
+f42919f6-f535-44cd-bc9f-6bb6e44d05d8
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-ams-e/README.txt
----------------------------------------------------------------------
diff --git a/providers/elastichosts-ams-e/README.txt b/providers/elastichosts-ams-e/README.txt
new file mode 100644
index 0000000..87adb57
--- /dev/null
+++ b/providers/elastichosts-ams-e/README.txt
@@ -0,0 +1,6 @@
+#
+# The jclouds provider for ElasticHosts' Amsterdam ElasticStack  (http://www.elastichosts.com/).
+#
+# Expects the jclouds elasticstack API to be present on your application's classpath.
+#
+

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-ams-e/pom.xml
----------------------------------------------------------------------
diff --git a/providers/elastichosts-ams-e/pom.xml b/providers/elastichosts-ams-e/pom.xml
new file mode 100644
index 0000000..9463e08
--- /dev/null
+++ b/providers/elastichosts-ams-e/pom.xml
@@ -0,0 +1,125 @@
+<?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</groupId>
+    <artifactId>jclouds-project</artifactId>
+    <version>1.8.0-SNAPSHOT</version>
+    <relativePath>../../project/pom.xml</relativePath>
+  </parent>
+  <groupId>org.apache.jclouds.provider</groupId>
+  <artifactId>elastichosts-ams-e</artifactId>
+  <name>jclouds ElasticHosts Amsterdam provider</name>
+  <description>ElasticHosts implementation targeted to Amsterdam</description>
+  <packaging>bundle</packaging>
+
+  <properties>
+    <test.elastichosts-ams-e.endpoint>https://api-ams-e.elastichosts.com</test.elastichosts-ams-e.endpoint>
+    <test.elastichosts-ams-e.api-version>2.0</test.elastichosts-ams-e.api-version>
+    <test.elastichosts-ams-e.build-version />
+    <test.elastichosts-ams-e.identity>FIXME_IDENTITY</test.elastichosts-ams-e.identity>
+    <test.elastichosts-ams-e.credential>FIXME_CREDENTIAL</test.elastichosts-ams-e.credential>
+    <test.elastichosts-ams-e.template />
+
+    <jclouds.osgi.export>org.jclouds.elastichosts*;version="${project.version}"</jclouds.osgi.export>
+    <jclouds.osgi.import>
+      org.jclouds.compute.internal;version="${project.version}",
+      org.jclouds.rest.internal;version="${project.version}",
+      org.jclouds*;version="${project.version}",
+      *
+    </jclouds.osgi.import>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.jclouds.api</groupId>
+      <artifactId>elasticstack</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds.api</groupId>
+      <artifactId>elasticstack</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds</groupId>
+      <artifactId>jclouds-core</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds</groupId>
+      <artifactId>jclouds-compute</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds.driver</groupId>
+      <artifactId>jclouds-log4j</artifactId>
+      <version>${project.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds.driver</groupId>
+      <artifactId>jclouds-sshj</artifactId>
+      <version>${project.version}</version>
+      <scope>test</scope>
+    </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.elastichosts-ams-e.endpoint>${test.elastichosts-ams-e.endpoint}</test.elastichosts-ams-e.endpoint>
+                    <test.elastichosts-ams-e.api-version>${test.elastichosts-ams-e.api-version}</test.elastichosts-ams-e.api-version>
+                    <test.elastichosts-ams-e.build-version>${test.elastichosts-ams-e.build-version}</test.elastichosts-ams-e.build-version>
+                    <test.elastichosts-ams-e.identity>${test.elastichosts-ams-e.identity}</test.elastichosts-ams-e.identity>
+                    <test.elastichosts-ams-e.credential>${test.elastichosts-ams-e.credential}</test.elastichosts-ams-e.credential>
+                    <test.elastichosts-ams-e.template>${test.elastichosts-ams-e.template}</test.elastichosts-ams-e.template>
+                  </systemPropertyVariables>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+</project>
+

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-ams-e/src/main/java/org/jclouds/elastichosts/ElasticHostsAmsterdamMetadata.java
----------------------------------------------------------------------
diff --git a/providers/elastichosts-ams-e/src/main/java/org/jclouds/elastichosts/ElasticHostsAmsterdamMetadata.java b/providers/elastichosts-ams-e/src/main/java/org/jclouds/elastichosts/ElasticHostsAmsterdamMetadata.java
new file mode 100644
index 0000000..ffac700
--- /dev/null
+++ b/providers/elastichosts-ams-e/src/main/java/org/jclouds/elastichosts/ElasticHostsAmsterdamMetadata.java
@@ -0,0 +1,86 @@
+/*
+ * 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.elastichosts;
+
+import static org.jclouds.compute.config.ComputeServiceProperties.TEMPLATE;
+
+import java.net.URI;
+import java.util.Properties;
+
+import org.jclouds.elasticstack.ElasticStackApiMetadata;
+import org.jclouds.providers.ProviderMetadata;
+import org.jclouds.providers.internal.BaseProviderMetadata;
+
+/**
+ * Implementation of {@link org.jclouds.types.ProviderMetadata} for ElasticHosts Amsterdam.
+ * 
+ * @author Ignasi Barrera
+ */
+public class ElasticHostsAmsterdamMetadata extends BaseProviderMetadata {
+
+   public static Builder builder() {
+      return new Builder();
+   }
+
+   @Override
+   public Builder toBuilder() {
+      return builder().fromProviderMetadata(this);
+   }
+
+   public ElasticHostsAmsterdamMetadata() {
+      super(builder());
+   }
+
+   public ElasticHostsAmsterdamMetadata(Builder builder) {
+      super(builder);
+   }
+
+   public static Properties defaultProperties() {
+      Properties properties = new Properties();
+      properties.setProperty(TEMPLATE, "osFamily=UBUNTU,osVersionMatches=1[01234].[01][04].[0-9]*,os64Bit=true");
+      return properties;
+   }
+
+   public static class Builder
+         extends
+         BaseProviderMetadata.Builder {
+
+      protected Builder() {
+         id("elastichosts-ams-e")
+         .name("ElasticHosts Amsterdam")
+         .apiMetadata(new ElasticStackApiMetadata().toBuilder().version("2.0").build())
+         .homepage(URI.create("https://ams-e.elastichosts.com"))
+         .console(URI.create("https://ams-e.elastichosts.com/accounts"))
+         .iso3166Codes("NL-NH")
+         .endpoint("https://api-ams-e.elastichosts.com")
+         .defaultProperties(ElasticHostsAmsterdamMetadata.defaultProperties());
+      }
+
+      @Override
+      public ElasticHostsAmsterdamMetadata build() {
+         return new ElasticHostsAmsterdamMetadata(this);
+      }
+
+      @Override
+      public Builder fromProviderMetadata(
+            ProviderMetadata in) {
+         super.fromProviderMetadata(in);
+         return this;
+      }
+
+   }
+}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-ams-e/src/main/resources/META-INF/services/org.jclouds.providers.ProviderMetadata
----------------------------------------------------------------------
diff --git a/providers/elastichosts-ams-e/src/main/resources/META-INF/services/org.jclouds.providers.ProviderMetadata b/providers/elastichosts-ams-e/src/main/resources/META-INF/services/org.jclouds.providers.ProviderMetadata
new file mode 100644
index 0000000..508e627
--- /dev/null
+++ b/providers/elastichosts-ams-e/src/main/resources/META-INF/services/org.jclouds.providers.ProviderMetadata
@@ -0,0 +1 @@
+org.jclouds.elastichosts.ElasticHostsAmsterdamMetadata

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-ams-e/src/test/java/org/jclouds/elastichosts/ElasticHostsAmsterdamApiLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/elastichosts-ams-e/src/test/java/org/jclouds/elastichosts/ElasticHostsAmsterdamApiLiveTest.java b/providers/elastichosts-ams-e/src/test/java/org/jclouds/elastichosts/ElasticHostsAmsterdamApiLiveTest.java
new file mode 100644
index 0000000..d83702f
--- /dev/null
+++ b/providers/elastichosts-ams-e/src/test/java/org/jclouds/elastichosts/ElasticHostsAmsterdamApiLiveTest.java
@@ -0,0 +1,30 @@
+/*
+ * 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.elastichosts;
+
+import org.jclouds.elasticstack.ElasticStackApiLiveTest;
+import org.testng.annotations.Test;
+
+/**
+ * @author Ignasi Barrera
+ */
+@Test(groups = "live", singleThreaded = true, testName = "ElasticHostsAmsterdamApiLiveTest")
+public class ElasticHostsAmsterdamApiLiveTest extends ElasticStackApiLiveTest {
+   public ElasticHostsAmsterdamApiLiveTest() {
+      provider = "elastichosts-ams-e";
+   }
+}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-ams-e/src/test/java/org/jclouds/elastichosts/ElasticHostsAmsterdamProviderTest.java
----------------------------------------------------------------------
diff --git a/providers/elastichosts-ams-e/src/test/java/org/jclouds/elastichosts/ElasticHostsAmsterdamProviderTest.java b/providers/elastichosts-ams-e/src/test/java/org/jclouds/elastichosts/ElasticHostsAmsterdamProviderTest.java
new file mode 100644
index 0000000..4ee2392
--- /dev/null
+++ b/providers/elastichosts-ams-e/src/test/java/org/jclouds/elastichosts/ElasticHostsAmsterdamProviderTest.java
@@ -0,0 +1,32 @@
+/*
+ * 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.elastichosts;
+
+import org.jclouds.elasticstack.ElasticStackApiMetadata;
+import org.jclouds.providers.internal.BaseProviderMetadataTest;
+import org.testng.annotations.Test;
+
+/**
+ * @author Ignasi Barrera
+ */
+@Test(groups = "unit", testName = "ElasticHostsAmsterdamProviderTest")
+public class ElasticHostsAmsterdamProviderTest extends BaseProviderMetadataTest {
+
+   public ElasticHostsAmsterdamProviderTest() {
+      super(new ElasticHostsAmsterdamMetadata(), new ElasticStackApiMetadata());
+   }
+}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-ams-e/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsAmsterdamComputeServiceLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/elastichosts-ams-e/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsAmsterdamComputeServiceLiveTest.java b/providers/elastichosts-ams-e/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsAmsterdamComputeServiceLiveTest.java
new file mode 100644
index 0000000..ba577ea
--- /dev/null
+++ b/providers/elastichosts-ams-e/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsAmsterdamComputeServiceLiveTest.java
@@ -0,0 +1,33 @@
+/*
+ * 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.elastichosts.compute;
+
+import org.jclouds.elasticstack.compute.ElasticStackComputeServiceLiveTest;
+import org.testng.annotations.Test;
+
+/**
+ * @author Ignasi Barrera
+ */
+@Test(groups = "live", testName = "ElasticHostsAmsterdamComputeServiceLiveTest")
+public class ElasticHostsAmsterdamComputeServiceLiveTest extends ElasticStackComputeServiceLiveTest {
+
+   public ElasticHostsAmsterdamComputeServiceLiveTest() {
+      provider = "elastichosts-ams-e";
+      group = "elastichosts";
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-ams-e/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsAmsterdamTemplateBuilderLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/elastichosts-ams-e/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsAmsterdamTemplateBuilderLiveTest.java b/providers/elastichosts-ams-e/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsAmsterdamTemplateBuilderLiveTest.java
new file mode 100644
index 0000000..1c8121f
--- /dev/null
+++ b/providers/elastichosts-ams-e/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsAmsterdamTemplateBuilderLiveTest.java
@@ -0,0 +1,85 @@
+/*
+ * 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.elastichosts.compute;
+
+import static org.jclouds.compute.util.ComputeServiceUtils.getCores;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+
+import java.io.IOException;
+import java.util.Set;
+
+import org.jclouds.compute.domain.OsFamily;
+import org.jclouds.compute.domain.OsFamilyVersion64Bit;
+import org.jclouds.compute.domain.Template;
+import org.jclouds.compute.internal.BaseTemplateBuilderLiveTest;
+import org.testng.annotations.Test;
+
+import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
+import com.google.common.collect.ImmutableSet;
+
+/**
+ * @author Ignasi Barrera
+ */
+@Test(groups = "live", testName = "ElasticHostsAmsterdamTemplateBuilderLiveTest")
+public class ElasticHostsAmsterdamTemplateBuilderLiveTest extends BaseTemplateBuilderLiveTest {
+
+   public ElasticHostsAmsterdamTemplateBuilderLiveTest() {
+      provider = "elastichosts-ams-e";
+   }
+
+   @Override
+   protected Predicate<OsFamilyVersion64Bit> defineUnsupportedOperatingSystems() {
+      return Predicates.not(new Predicate<OsFamilyVersion64Bit>() {
+
+         @Override
+         public boolean apply(final OsFamilyVersion64Bit input) {
+            switch (input.family) {
+               case UBUNTU:
+                  return (input.version.equals("") || input.version.equals("12.04.1") || input.version.equals("13.10") || input.version
+                        .equals("14.04")) && input.is64Bit;
+               case DEBIAN:
+                  return (input.version.equals("") || input.version.matches("7.4")) && input.is64Bit;
+               case CENTOS:
+                  return (input.version.equals("") || input.version.equals("6.5")) && input.is64Bit;
+               case WINDOWS:
+                  return (input.version.equals("") || input.version.equals("2008 R2")
+                        || input.version.equals("2008 R2 + SQL") || input.version.equals("2012") || input.version
+                           .equals("2012 R2 + SQL")) && input.is64Bit;
+               default:
+                  return false;
+            }
+         }
+
+      });
+   }
+
+   @Override
+   public void testDefaultTemplateBuilder() throws IOException {
+      Template defaultTemplate = view.getComputeService().templateBuilder().build();
+      assertTrue(defaultTemplate.getImage().getOperatingSystem().getVersion().matches("1[01234].[01][04].[0-9]*"));
+      assertEquals(defaultTemplate.getImage().getOperatingSystem().is64Bit(), true);
+      assertEquals(defaultTemplate.getImage().getOperatingSystem().getFamily(), OsFamily.UBUNTU);
+      assertEquals(getCores(defaultTemplate.getHardware()), 1.0d);
+   }
+
+   @Override
+   protected Set<String> getIso3166Codes() {
+      return ImmutableSet.<String> of("NL-NH");
+   }
+}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-hkg-e/README.txt
----------------------------------------------------------------------
diff --git a/providers/elastichosts-hkg-e/README.txt b/providers/elastichosts-hkg-e/README.txt
new file mode 100644
index 0000000..8bde54b
--- /dev/null
+++ b/providers/elastichosts-hkg-e/README.txt
@@ -0,0 +1,5 @@
+#
+# The jclouds provider for ElasticHosts' Hong Kong ElasticStack  (http://www.elastichosts.com/).
+#
+# Expects the jclouds elasticstack API to be present on your application's classpath.
+#
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-hkg-e/pom.xml
----------------------------------------------------------------------
diff --git a/providers/elastichosts-hkg-e/pom.xml b/providers/elastichosts-hkg-e/pom.xml
new file mode 100644
index 0000000..00b3838
--- /dev/null
+++ b/providers/elastichosts-hkg-e/pom.xml
@@ -0,0 +1,125 @@
+<?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</groupId>
+    <artifactId>jclouds-project</artifactId>
+    <version>1.8.0-SNAPSHOT</version>
+    <relativePath>../../project/pom.xml</relativePath>
+  </parent>
+  <groupId>org.apache.jclouds.provider</groupId>
+  <artifactId>elastichosts-hkg-e</artifactId>
+  <name>jclouds ElasticHosts Hong Kong provider</name>
+  <description>ElasticHosts implementation targeted to Hong Kong</description>
+  <packaging>bundle</packaging>
+
+  <properties>
+    <test.elastichosts-hkg-e.endpoint>https://api-hkg-e.elastichosts.com</test.elastichosts-hkg-e.endpoint>
+    <test.elastichosts-hkg-e.api-version>2.0</test.elastichosts-hkg-e.api-version>
+    <test.elastichosts-hkg-e.build-version />
+    <test.elastichosts-hkg-e.identity>FIXME_IDENTITY</test.elastichosts-hkg-e.identity>
+    <test.elastichosts-hkg-e.credential>FIXME_CREDENTIAL</test.elastichosts-hkg-e.credential>
+    <test.elastichosts-hkg-e.template />
+
+    <jclouds.osgi.export>org.jclouds.elastichosts*;version="${project.version}"</jclouds.osgi.export>
+    <jclouds.osgi.import>
+      org.jclouds.compute.internal;version="${project.version}",
+      org.jclouds.rest.internal;version="${project.version}",
+      org.jclouds*;version="${project.version}",
+      *
+    </jclouds.osgi.import>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.jclouds.api</groupId>
+      <artifactId>elasticstack</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds.api</groupId>
+      <artifactId>elasticstack</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds</groupId>
+      <artifactId>jclouds-core</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds</groupId>
+      <artifactId>jclouds-compute</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds.driver</groupId>
+      <artifactId>jclouds-log4j</artifactId>
+      <version>${project.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds.driver</groupId>
+      <artifactId>jclouds-sshj</artifactId>
+      <version>${project.version}</version>
+      <scope>test</scope>
+    </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.elastichosts-hkg-e.endpoint>${test.elastichosts-hkg-e.endpoint}</test.elastichosts-hkg-e.endpoint>
+                    <test.elastichosts-hkg-e.api-version>${test.elastichosts-hkg-e.api-version}</test.elastichosts-hkg-e.api-version>
+                    <test.elastichosts-hkg-e.build-version>${test.elastichosts-hkg-e.build-version}</test.elastichosts-hkg-e.build-version>
+                    <test.elastichosts-hkg-e.identity>${test.elastichosts-hkg-e.identity}</test.elastichosts-hkg-e.identity>
+                    <test.elastichosts-hkg-e.credential>${test.elastichosts-hkg-e.credential}</test.elastichosts-hkg-e.credential>
+                    <test.elastichosts-hkg-e.template>${test.elastichosts-hkg-e.template}</test.elastichosts-hkg-e.template>
+                  </systemPropertyVariables>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+</project>
+

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-hkg-e/src/main/java/org/jclouds/elastichosts/ElasticHostsHongKongProviderMetadata.java
----------------------------------------------------------------------
diff --git a/providers/elastichosts-hkg-e/src/main/java/org/jclouds/elastichosts/ElasticHostsHongKongProviderMetadata.java b/providers/elastichosts-hkg-e/src/main/java/org/jclouds/elastichosts/ElasticHostsHongKongProviderMetadata.java
new file mode 100644
index 0000000..e08d573
--- /dev/null
+++ b/providers/elastichosts-hkg-e/src/main/java/org/jclouds/elastichosts/ElasticHostsHongKongProviderMetadata.java
@@ -0,0 +1,86 @@
+/*
+ * 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.elastichosts;
+
+import static org.jclouds.compute.config.ComputeServiceProperties.TEMPLATE;
+
+import java.net.URI;
+import java.util.Properties;
+
+import org.jclouds.elasticstack.ElasticStackApiMetadata;
+import org.jclouds.providers.ProviderMetadata;
+import org.jclouds.providers.internal.BaseProviderMetadata;
+
+/**
+ * Implementation of {@link org.jclouds.types.ProviderMetadata} for ElasticHosts Hong Kong.
+ * 
+ * @author Ignasi Barrera
+ */
+public class ElasticHostsHongKongProviderMetadata extends BaseProviderMetadata {
+
+   public static Builder builder() {
+      return new Builder();
+   }
+
+   @Override
+   public Builder toBuilder() {
+      return builder().fromProviderMetadata(this);
+   }
+
+   public ElasticHostsHongKongProviderMetadata() {
+      super(builder());
+   }
+
+   public ElasticHostsHongKongProviderMetadata(Builder builder) {
+      super(builder);
+   }
+
+   public static Properties defaultProperties() {
+      Properties properties = new Properties();
+      properties.setProperty(TEMPLATE, "osFamily=UBUNTU,osVersionMatches=1[01234].[01][04].[0-9]*,os64Bit=true");
+      return properties;
+   }
+
+   public static class Builder
+         extends
+         BaseProviderMetadata.Builder {
+
+      protected Builder() {
+         id("elastichosts-hkg-e")
+         .name("ElasticHosts Hong Kong")
+         .apiMetadata(new ElasticStackApiMetadata().toBuilder().version("2.0").build())
+         .homepage(URI.create("https://hkg-e.elastichosts.com"))
+         .console(URI.create("https://hkg-e.elastichosts.com/accounts"))
+         .iso3166Codes("HK")
+         .endpoint("https://api-hkg-e.elastichosts.com")
+         .defaultProperties(ElasticHostsHongKongProviderMetadata.defaultProperties());
+      }
+
+      @Override
+      public ElasticHostsHongKongProviderMetadata build() {
+         return new ElasticHostsHongKongProviderMetadata(this);
+      }
+
+      @Override
+      public Builder fromProviderMetadata(
+            ProviderMetadata in) {
+         super.fromProviderMetadata(in);
+         return this;
+      }
+
+   }
+}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-hkg-e/src/main/resources/META-INF/services/org.jclouds.providers.ProviderMetadata
----------------------------------------------------------------------
diff --git a/providers/elastichosts-hkg-e/src/main/resources/META-INF/services/org.jclouds.providers.ProviderMetadata b/providers/elastichosts-hkg-e/src/main/resources/META-INF/services/org.jclouds.providers.ProviderMetadata
new file mode 100644
index 0000000..067e3bb
--- /dev/null
+++ b/providers/elastichosts-hkg-e/src/main/resources/META-INF/services/org.jclouds.providers.ProviderMetadata
@@ -0,0 +1 @@
+org.jclouds.elastichosts.ElasticHostsHongKongProviderMetadata

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-hkg-e/src/test/java/org/jclouds/elastichosts/ElasticHostsHongKongApiLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/elastichosts-hkg-e/src/test/java/org/jclouds/elastichosts/ElasticHostsHongKongApiLiveTest.java b/providers/elastichosts-hkg-e/src/test/java/org/jclouds/elastichosts/ElasticHostsHongKongApiLiveTest.java
new file mode 100644
index 0000000..85fac2e
--- /dev/null
+++ b/providers/elastichosts-hkg-e/src/test/java/org/jclouds/elastichosts/ElasticHostsHongKongApiLiveTest.java
@@ -0,0 +1,30 @@
+/*
+ * 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.elastichosts;
+
+import org.jclouds.elasticstack.ElasticStackApiLiveTest;
+import org.testng.annotations.Test;
+
+/**
+ * @author Ignasi Barrera
+ */
+@Test(groups = "live", singleThreaded = true, testName = "ElasticHostsHongKongApiLiveTest")
+public class ElasticHostsHongKongApiLiveTest extends ElasticStackApiLiveTest {
+   public ElasticHostsHongKongApiLiveTest() {
+      provider = "elastichosts-hkg-e";
+   }
+}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-hkg-e/src/test/java/org/jclouds/elastichosts/ElasticHostsHongKongProviderTest.java
----------------------------------------------------------------------
diff --git a/providers/elastichosts-hkg-e/src/test/java/org/jclouds/elastichosts/ElasticHostsHongKongProviderTest.java b/providers/elastichosts-hkg-e/src/test/java/org/jclouds/elastichosts/ElasticHostsHongKongProviderTest.java
new file mode 100644
index 0000000..748c5b1
--- /dev/null
+++ b/providers/elastichosts-hkg-e/src/test/java/org/jclouds/elastichosts/ElasticHostsHongKongProviderTest.java
@@ -0,0 +1,32 @@
+/*
+ * 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.elastichosts;
+
+import org.jclouds.elasticstack.ElasticStackApiMetadata;
+import org.jclouds.providers.internal.BaseProviderMetadataTest;
+import org.testng.annotations.Test;
+
+/**
+ * @author Ignasi Barrera
+ */
+@Test(groups = "unit", testName = "ElasticHostsHongKongProviderTest")
+public class ElasticHostsHongKongProviderTest extends BaseProviderMetadataTest {
+
+   public ElasticHostsHongKongProviderTest() {
+      super(new ElasticHostsHongKongProviderMetadata(), new ElasticStackApiMetadata());
+   }
+}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-hkg-e/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsHongKongComputeServiceLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/elastichosts-hkg-e/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsHongKongComputeServiceLiveTest.java b/providers/elastichosts-hkg-e/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsHongKongComputeServiceLiveTest.java
new file mode 100644
index 0000000..4dd6d61
--- /dev/null
+++ b/providers/elastichosts-hkg-e/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsHongKongComputeServiceLiveTest.java
@@ -0,0 +1,33 @@
+/*
+ * 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.elastichosts.compute;
+
+import org.jclouds.elasticstack.compute.ElasticStackComputeServiceLiveTest;
+import org.testng.annotations.Test;
+
+/**
+ * @author Ignasi Barrera
+ */
+@Test(groups = "live", testName = "ElasticHostsHongKongComputeServiceLiveTest")
+public class ElasticHostsHongKongComputeServiceLiveTest extends ElasticStackComputeServiceLiveTest {
+
+   public ElasticHostsHongKongComputeServiceLiveTest() {
+      provider = "elastichosts-hkg-e";
+      group = "elastichosts";
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-hkg-e/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsHongKongTemplateBuilderLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/elastichosts-hkg-e/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsHongKongTemplateBuilderLiveTest.java b/providers/elastichosts-hkg-e/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsHongKongTemplateBuilderLiveTest.java
new file mode 100644
index 0000000..4276e74
--- /dev/null
+++ b/providers/elastichosts-hkg-e/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsHongKongTemplateBuilderLiveTest.java
@@ -0,0 +1,85 @@
+/*
+ * 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.elastichosts.compute;
+
+import static org.jclouds.compute.util.ComputeServiceUtils.getCores;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+
+import java.io.IOException;
+import java.util.Set;
+
+import org.jclouds.compute.domain.OsFamily;
+import org.jclouds.compute.domain.OsFamilyVersion64Bit;
+import org.jclouds.compute.domain.Template;
+import org.jclouds.compute.internal.BaseTemplateBuilderLiveTest;
+import org.testng.annotations.Test;
+
+import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
+import com.google.common.collect.ImmutableSet;
+
+/**
+ * @author Ignasi Barrera
+ */
+@Test(groups = "live", testName = "ElasticHostsHongKongTemplateBuilderLiveTest")
+public class ElasticHostsHongKongTemplateBuilderLiveTest extends BaseTemplateBuilderLiveTest {
+
+   public ElasticHostsHongKongTemplateBuilderLiveTest() {
+      provider = "elastichosts-hkg-e";
+   }
+
+   @Override
+   protected Predicate<OsFamilyVersion64Bit> defineUnsupportedOperatingSystems() {
+      return Predicates.not(new Predicate<OsFamilyVersion64Bit>() {
+
+         @Override
+         public boolean apply(final OsFamilyVersion64Bit input) {
+            switch (input.family) {
+               case UBUNTU:
+                  return (input.version.equals("") || input.version.equals("12.04.1") || input.version.equals("13.10") || input.version
+                        .equals("14.04")) && input.is64Bit;
+               case DEBIAN:
+                  return (input.version.equals("") || input.version.matches("7.4")) && input.is64Bit;
+               case CENTOS:
+                  return (input.version.equals("") || input.version.equals("6.5")) && input.is64Bit;
+               case WINDOWS:
+                  return (input.version.equals("") || input.version.equals("2008 R2")
+                        || input.version.equals("2008 R2 + SQL") || input.version.equals("2012") || input.version
+                           .equals("2012 R2 + SQL")) && input.is64Bit;
+               default:
+                  return false;
+            }
+         }
+
+      });
+   }
+
+   @Override
+   public void testDefaultTemplateBuilder() throws IOException {
+      Template defaultTemplate = view.getComputeService().templateBuilder().build();
+      assertTrue(defaultTemplate.getImage().getOperatingSystem().getVersion().matches("1[01234].[01][04].[0-9]*"));
+      assertEquals(defaultTemplate.getImage().getOperatingSystem().is64Bit(), true);
+      assertEquals(defaultTemplate.getImage().getOperatingSystem().getFamily(), OsFamily.UBUNTU);
+      assertEquals(getCores(defaultTemplate.getHardware()), 1.0d);
+   }
+
+   @Override
+   protected Set<String> getIso3166Codes() {
+      return ImmutableSet.<String> of("HK");
+   }
+}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-lax-p/src/main/java/org/jclouds/elastichosts/ElasticHostsPeer1LosAngelesProviderMetadata.java
----------------------------------------------------------------------
diff --git a/providers/elastichosts-lax-p/src/main/java/org/jclouds/elastichosts/ElasticHostsPeer1LosAngelesProviderMetadata.java b/providers/elastichosts-lax-p/src/main/java/org/jclouds/elastichosts/ElasticHostsPeer1LosAngelesProviderMetadata.java
index 4eaf49b..78a2230 100644
--- a/providers/elastichosts-lax-p/src/main/java/org/jclouds/elastichosts/ElasticHostsPeer1LosAngelesProviderMetadata.java
+++ b/providers/elastichosts-lax-p/src/main/java/org/jclouds/elastichosts/ElasticHostsPeer1LosAngelesProviderMetadata.java
@@ -16,6 +16,8 @@
  */
 package org.jclouds.elastichosts;
 
+import static org.jclouds.compute.config.ComputeServiceProperties.TEMPLATE;
+
 import java.net.URI;
 import java.util.Properties;
 
@@ -50,6 +52,7 @@ public class ElasticHostsPeer1LosAngelesProviderMetadata extends BaseProviderMet
 
    public static Properties defaultProperties() {
       Properties properties = new Properties();
+      properties.setProperty(TEMPLATE, "osFamily=UBUNTU,osVersionMatches=1[01234].[01][04].[0-9]*,os64Bit=true");
       return properties;
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-lax-p/src/main/resources/elastichosts-lax-p/preinstalled_images.json
----------------------------------------------------------------------
diff --git a/providers/elastichosts-lax-p/src/main/resources/elastichosts-lax-p/preinstalled_images.json b/providers/elastichosts-lax-p/src/main/resources/elastichosts-lax-p/preinstalled_images.json
deleted file mode 100644
index 2e40589..0000000
--- a/providers/elastichosts-lax-p/src/main/resources/elastichosts-lax-p/preinstalled_images.json
+++ /dev/null
@@ -1,65 +0,0 @@
-[
-  {
-      "uuid": "73f7cc6a-1c48-418a-80de-886b28a56a4d",
-      "description": "CentOS Linux 6.0",
-      "osFamily": "CENTOS",
-      "osVersion": "6.0",
-      "size": "3"
-  },
-  {
-      "uuid": "9405cddf-8d01-472c-b7e3-e8c062dcde51",
-      "description": "Debian Linux 6.0",
-      "osFamily": "DEBIAN",
-      "osVersion": "6.0",
-      "size": "1"
-  },
-  {
-      "uuid": "aee5589a-88c3-43ef-bb0a-9cab6e64192d",
-      "description": "Ubuntu Linux 10.04",
-      "osFamily": "UBUNTU",
-      "osVersion": "10.04",
-      "size": "1"
-  },
-  {
-      "uuid": "8d8aee18-8744-452c-94b2-69a2a34b8460",
-      "description": "Ubuntu Linux 11.10",
-      "osFamily": "UBUNTU",
-      "osVersion": "11.10",
-      "size": "1"
-  },
-  {
-      "uuid": "b9d0eb72-d273-43f1-98e3-0d4b87d372c0",
-      "description": "Windows Web Server 2008",
-      "osFamily": "WINDOWS",
-      "osVersion": "2008",
-      "size": "13"
-  },
-  {
-      "uuid": "b405b598-4ae4-4ba8-8a2b-a9487d693f34",
-      "description": "Windows Web Server 2008 R2",
-      "osFamily": "WINDOWS",
-      "osVersion": "2008 R2",
-      "size": "13"
-  },
-  {
-      "uuid": "9397d327-3bf6-46a2-abf6-69553dbb6927",
-      "description": "Windows Web Server 2008 R2 + SQL Server",
-      "osFamily": "WINDOWS",
-      "osVersion": "2008 R2",
-      "size": "13"
-  },
-  {
-      "uuid": "b17ebce6-61b4-4dcc-9654-41c9fc847e01",
-      "description": "Windows Server 2008 Standard R2",
-      "osFamily": "WINDOWS",
-      "osVersion": "2008 R2",
-      "size": "13"
-  },
-  {
-      "uuid": "662c5b3f-9828-4aa2-a866-7cfa53798cdf",
-      "description": "Windows Server 2008 Standard R2 + SQL Server",
-      "osFamily": "WINDOWS",
-      "osVersion": "2008 R2",
-      "size": "13"
-  }
-]

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-lax-p/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsPeer1LosAngelesTemplateBuilderLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/elastichosts-lax-p/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsPeer1LosAngelesTemplateBuilderLiveTest.java b/providers/elastichosts-lax-p/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsPeer1LosAngelesTemplateBuilderLiveTest.java
index 3cf1286..5fe8bf5 100644
--- a/providers/elastichosts-lax-p/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsPeer1LosAngelesTemplateBuilderLiveTest.java
+++ b/providers/elastichosts-lax-p/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsPeer1LosAngelesTemplateBuilderLiveTest.java
@@ -18,7 +18,9 @@ package org.jclouds.elastichosts.compute;
 
 import static org.jclouds.compute.util.ComputeServiceUtils.getCores;
 import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
 
+import java.io.IOException;
 import java.util.Set;
 
 import org.jclouds.compute.domain.OsFamily;
@@ -47,17 +49,19 @@ public class ElasticHostsPeer1LosAngelesTemplateBuilderLiveTest extends BaseTemp
       return Predicates.not(new Predicate<OsFamilyVersion64Bit>() {
 
          @Override
-         public boolean apply(OsFamilyVersion64Bit input) {
+         public boolean apply(final OsFamilyVersion64Bit input) {
             switch (input.family) {
                case UBUNTU:
-                  return (input.version.equals("") || ImmutableSet.of("11.10", "10.04").contains(input.version)) && input.is64Bit;
+                  return (input.version.equals("") || input.version.equals("12.04.1") || input.version.equals("13.10") || input.version
+                        .equals("14.04")) && input.is64Bit;
                case DEBIAN:
-                  return (input.version.equals("") || input.version.equals("6.0")) && input.is64Bit;
+                  return (input.version.equals("") || input.version.matches("7.4")) && input.is64Bit;
                case CENTOS:
-                  return (input.version.equals("") || input.version.equals("6.0")) && input.is64Bit;
+                  return (input.version.equals("") || input.version.equals("6.5")) && input.is64Bit;
                case WINDOWS:
-                  return (input.version.equals("") || input.version.equals("2008 R2") || input.version.equals("2008"))
-                           && input.is64Bit;
+                  return (input.version.equals("") || input.version.equals("2008 R2")
+                        || input.version.equals("2008 R2 + SQL") || input.version.equals("2012") || input.version
+                           .equals("2012 R2 + SQL")) && input.is64Bit;
                default:
                   return false;
             }
@@ -66,13 +70,12 @@ public class ElasticHostsPeer1LosAngelesTemplateBuilderLiveTest extends BaseTemp
       });
    }
 
-   @Test
-   public void testTemplateBuilder() {
-      Template defaultTemplate = this.view.getComputeService().templateBuilder().build();
+   @Override
+   public void testDefaultTemplateBuilder() throws IOException {
+      Template defaultTemplate = view.getComputeService().templateBuilder().build();
+      assertTrue(defaultTemplate.getImage().getOperatingSystem().getVersion().matches("1[01234].[01][04].[0-9]*"));
       assertEquals(defaultTemplate.getImage().getOperatingSystem().is64Bit(), true);
-      assertEquals(defaultTemplate.getImage().getOperatingSystem().getVersion(), "11.10");
       assertEquals(defaultTemplate.getImage().getOperatingSystem().getFamily(), OsFamily.UBUNTU);
-      assertEquals(defaultTemplate.getLocation().getId(), "elastichosts-lax-p");
       assertEquals(getCores(defaultTemplate.getHardware()), 1.0d);
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-lon-b/src/main/java/org/jclouds/elastichosts/ElasticHostsBlueSquareLondonProviderMetadata.java
----------------------------------------------------------------------
diff --git a/providers/elastichosts-lon-b/src/main/java/org/jclouds/elastichosts/ElasticHostsBlueSquareLondonProviderMetadata.java b/providers/elastichosts-lon-b/src/main/java/org/jclouds/elastichosts/ElasticHostsBlueSquareLondonProviderMetadata.java
index b78a534..5bea58c 100644
--- a/providers/elastichosts-lon-b/src/main/java/org/jclouds/elastichosts/ElasticHostsBlueSquareLondonProviderMetadata.java
+++ b/providers/elastichosts-lon-b/src/main/java/org/jclouds/elastichosts/ElasticHostsBlueSquareLondonProviderMetadata.java
@@ -16,6 +16,8 @@
  */
 package org.jclouds.elastichosts;
 
+import static org.jclouds.compute.config.ComputeServiceProperties.TEMPLATE;
+
 import java.net.URI;
 import java.util.Properties;
 
@@ -49,6 +51,7 @@ public class ElasticHostsBlueSquareLondonProviderMetadata extends BaseProviderMe
 
    public static Properties defaultProperties() {
       Properties properties = new Properties();
+      properties.setProperty(TEMPLATE, "osFamily=UBUNTU,osVersionMatches=1[01234].[01][04].[0-9]*,os64Bit=true");
       return properties;
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-lon-b/src/main/resources/elastichosts-lon-b/preinstalled_images.json
----------------------------------------------------------------------
diff --git a/providers/elastichosts-lon-b/src/main/resources/elastichosts-lon-b/preinstalled_images.json b/providers/elastichosts-lon-b/src/main/resources/elastichosts-lon-b/preinstalled_images.json
deleted file mode 100644
index 3ece03b..0000000
--- a/providers/elastichosts-lon-b/src/main/resources/elastichosts-lon-b/preinstalled_images.json
+++ /dev/null
@@ -1,65 +0,0 @@
-[
-  {
-      "uuid": "e994eedf-ce5c-4efd-9d0d-a16f690004f7",
-      "description": "CentOS Linux 6.0",
-      "osFamily": "CENTOS",
-      "osVersion": "6.0",
-      "size": "3"
-  },
-  {
-      "uuid": "e97e0a2a-08d7-4624-b796-708f2adfc6b0",
-      "description": "Debian Linux 6.0",
-      "osFamily": "DEBIAN",
-      "osVersion": "6.0",
-      "size": "1"
-  },
-  {
-      "uuid": "aee5589a-88c3-43ef-bb0a-9cab6e64192d",
-      "description": "Ubuntu Linux 10.04 LTS",
-      "osFamily": "UBUNTU",
-      "osVersion": "10.04",
-      "size": "1"
-  },
-  {
-      "uuid": "13f9f85d-ed1c-4fb0-aa26-3e84da826faf",
-      "description": "Ubuntu Linux 11.10",
-      "osFamily": "UBUNTU",
-      "osVersion": "11.10",
-      "size": "1"
-  },
-  {
-      "uuid": "b9d0eb72-d273-43f1-98e3-0d4b87d372c0",
-      "description": "Windows Web Server 2008",
-      "osFamily": "WINDOWS",
-      "osVersion": "2008",
-      "size": "13"
-  },
-  {
-      "uuid": "30824e97-05a4-410c-946e-2ba5a92b07cb",
-      "description": "Windows Web Server 2008 R2",
-      "osFamily": "WINDOWS",
-      "osVersion": "2008 R2",
-      "size": "13"
-  },
-  {
-      "uuid": "9ecf810e-6ad1-40ef-b360-d606f0444671",
-      "description": "Windows Web Server 2008 R2 + SQL Server",
-      "osFamily": "WINDOWS",
-      "osVersion": "2008 R2",
-      "size": "13"
-  },
-  {
-      "uuid": "10a88d1c-6575-46e3-8d2c-7744065ea530",
-      "description": "Windows Server 2008 Standard R2",
-      "osFamily": "WINDOWS",
-      "osVersion": "2008 R2",
-      "size": "13"
-  },
-  {
-      "uuid": "2567f25c-8fb8-45c7-95fc-bfe3c3d84c47",
-      "description": "Windows Server 2008 Standard R2 + SQL Server",
-      "osFamily": "WINDOWS",
-      "osVersion": "2008 R2",
-      "size": "13"
-  }
-]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-lon-b/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsBlueSquareLondonTemplateBuilderLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/elastichosts-lon-b/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsBlueSquareLondonTemplateBuilderLiveTest.java b/providers/elastichosts-lon-b/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsBlueSquareLondonTemplateBuilderLiveTest.java
index 1a275b9..1a14338 100644
--- a/providers/elastichosts-lon-b/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsBlueSquareLondonTemplateBuilderLiveTest.java
+++ b/providers/elastichosts-lon-b/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsBlueSquareLondonTemplateBuilderLiveTest.java
@@ -18,7 +18,9 @@ package org.jclouds.elastichosts.compute;
 
 import static org.jclouds.compute.util.ComputeServiceUtils.getCores;
 import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
 
+import java.io.IOException;
 import java.util.Set;
 
 import org.jclouds.compute.domain.OsFamily;
@@ -32,7 +34,6 @@ import com.google.common.base.Predicates;
 import com.google.common.collect.ImmutableSet;
 
 /**
- * 
  * @author Adrian Cole
  */
 @Test(groups = "live")
@@ -47,18 +48,19 @@ public class ElasticHostsBlueSquareLondonTemplateBuilderLiveTest extends BaseTem
       return Predicates.not(new Predicate<OsFamilyVersion64Bit>() {
 
          @Override
-         public boolean apply(OsFamilyVersion64Bit input) {
+         public boolean apply(final OsFamilyVersion64Bit input) {
             switch (input.family) {
-            case UBUNTU:
-               return (input.version.equals("") || input.version.equals("10.04") || input.version.equals("11.10"))
-                     && input.is64Bit;
-            case DEBIAN:
-               return (input.version.equals("") || input.version.matches("6.0")) && input.is64Bit;
+               case UBUNTU:
+                  return (input.version.equals("") || input.version.equals("12.04.1") || input.version.equals("13.10") || input.version
+                        .equals("14.04")) && input.is64Bit;
+               case DEBIAN:
+                  return (input.version.equals("") || input.version.matches("7.4")) && input.is64Bit;
                case CENTOS:
-                  return (input.version.equals("") || input.version.equals("6.0")) && input.is64Bit;
+                  return (input.version.equals("") || input.version.equals("6.5")) && input.is64Bit;
                case WINDOWS:
-                  return (input.version.equals("") || input.version.equals("2008 R2") || input.version.equals("2008"))
-                           && input.is64Bit;
+                  return (input.version.equals("") || input.version.equals("2008 R2")
+                        || input.version.equals("2008 R2 + SQL") || input.version.equals("2012") || input.version
+                           .equals("2012 R2 + SQL")) && input.is64Bit;
                default:
                   return false;
             }
@@ -67,13 +69,12 @@ public class ElasticHostsBlueSquareLondonTemplateBuilderLiveTest extends BaseTem
       });
    }
 
-   @Test
-   public void testTemplateBuilder() {
-      Template defaultTemplate = this.view.getComputeService().templateBuilder().build();
+   @Override
+   public void testDefaultTemplateBuilder() throws IOException {
+      Template defaultTemplate = view.getComputeService().templateBuilder().build();
+      assertTrue(defaultTemplate.getImage().getOperatingSystem().getVersion().matches("1[01234].[01][04].[0-9]*"));
       assertEquals(defaultTemplate.getImage().getOperatingSystem().is64Bit(), true);
-      assertEquals(defaultTemplate.getImage().getOperatingSystem().getVersion(), "11.10");
       assertEquals(defaultTemplate.getImage().getOperatingSystem().getFamily(), OsFamily.UBUNTU);
-      assertEquals(defaultTemplate.getLocation().getId(), "elastichosts-lon-b");
       assertEquals(getCores(defaultTemplate.getHardware()), 1.0d);
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-lon-p/src/main/java/org/jclouds/elastichosts/ElasticHostsPeer1LondonProviderMetadata.java
----------------------------------------------------------------------
diff --git a/providers/elastichosts-lon-p/src/main/java/org/jclouds/elastichosts/ElasticHostsPeer1LondonProviderMetadata.java b/providers/elastichosts-lon-p/src/main/java/org/jclouds/elastichosts/ElasticHostsPeer1LondonProviderMetadata.java
index 3b4ae19..8e44195 100644
--- a/providers/elastichosts-lon-p/src/main/java/org/jclouds/elastichosts/ElasticHostsPeer1LondonProviderMetadata.java
+++ b/providers/elastichosts-lon-p/src/main/java/org/jclouds/elastichosts/ElasticHostsPeer1LondonProviderMetadata.java
@@ -16,6 +16,8 @@
  */
 package org.jclouds.elastichosts;
 
+import static org.jclouds.compute.config.ComputeServiceProperties.TEMPLATE;
+
 import java.net.URI;
 import java.util.Properties;
 
@@ -49,6 +51,7 @@ public class ElasticHostsPeer1LondonProviderMetadata extends BaseProviderMetadat
 
    public static Properties defaultProperties() {
       Properties properties = new Properties();
+      properties.setProperty(TEMPLATE, "osFamily=UBUNTU,osVersionMatches=1[01234].[01][04].[0-9]*,os64Bit=true");
       return properties;
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-lon-p/src/main/resources/elastichosts-lon-p/preinstalled_images.json
----------------------------------------------------------------------
diff --git a/providers/elastichosts-lon-p/src/main/resources/elastichosts-lon-p/preinstalled_images.json b/providers/elastichosts-lon-p/src/main/resources/elastichosts-lon-p/preinstalled_images.json
deleted file mode 100644
index 4e156e6..0000000
--- a/providers/elastichosts-lon-p/src/main/resources/elastichosts-lon-p/preinstalled_images.json
+++ /dev/null
@@ -1,65 +0,0 @@
-[
-  {
-      "uuid": "6acfe7ea-1bb0-466e-992d-3830966e9da8",
-      "description": "CentOS Linux 6.0",
-      "osFamily": "CENTOS",
-      "osVersion": "6.0",
-      "size": "3"
-  },
-  {
-      "uuid": "ff7c5f7b-1cc8-42e5-afe1-ca00c5faaaa6",
-      "description": "Debian Linux 6.0",
-      "osFamily": "DEBIAN",
-      "osVersion": "6.0",
-      "size": "1"
-  },
-  {
-      "uuid": "aee5589a-88c3-43ef-bb0a-9cab6e64192d",
-      "description": "Ubuntu Linux 10.04 LTS",
-      "osFamily": "UBUNTU",
-      "osVersion": "10.04",
-      "size": "1"
-  },
-  {
-      "uuid": "24ea9dad-f014-4836-bcb0-f03184c74e7a",
-      "description": "Ubuntu Linux 11.10",
-      "osFamily": "UBUNTU",
-      "osVersion": "11.10",
-      "size": "1"
-  },
-  {
-      "uuid": "b9d0eb72-d273-43f1-98e3-0d4b87d372c0",
-      "description": "Windows Web Server 2008",
-      "osFamily": "WINDOWS",
-      "osVersion": "2008",
-      "size": "13"
-  },
-  {
-      "uuid": "b405b598-4ae4-4ba8-8a2b-a9487d693f34",
-      "description": "Windows Web Server 2008 R2",
-      "osFamily": "WINDOWS",
-      "osVersion": "2008 R2",
-      "size": "13"
-  },
-  {
-      "uuid": "9397d327-3bf6-46a2-abf6-69553dbb6927",
-      "description": "Windows Web Server 2008 R2 + SQL Server",
-      "osFamily": "WINDOWS",
-      "osVersion": "2008 R2",
-      "size": "13"
-  },
-  {
-      "uuid": "b17ebce6-61b4-4dcc-9654-41c9fc847e01",
-      "description": "Windows Server 2008 Standard R2",
-      "osFamily": "WINDOWS",
-      "osVersion": "2008 R2",
-      "size": "13"
-  },
-  {
-      "uuid": "662c5b3f-9828-4aa2-a866-7cfa53798cdf",
-      "description": "Windows Server 2008 Standard R2 + SQL Server",
-      "osFamily": "WINDOWS",
-      "osVersion": "2008 R2",
-      "size": "13"
-  }
-]

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-lon-p/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsPeer1LondonTemplateBuilderLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/elastichosts-lon-p/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsPeer1LondonTemplateBuilderLiveTest.java b/providers/elastichosts-lon-p/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsPeer1LondonTemplateBuilderLiveTest.java
index 47cfb9c..bf5b692 100644
--- a/providers/elastichosts-lon-p/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsPeer1LondonTemplateBuilderLiveTest.java
+++ b/providers/elastichosts-lon-p/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsPeer1LondonTemplateBuilderLiveTest.java
@@ -18,7 +18,9 @@ package org.jclouds.elastichosts.compute;
 
 import static org.jclouds.compute.util.ComputeServiceUtils.getCores;
 import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
 
+import java.io.IOException;
 import java.util.Set;
 
 import org.jclouds.compute.domain.OsFamily;
@@ -47,18 +49,19 @@ public class ElasticHostsPeer1LondonTemplateBuilderLiveTest extends BaseTemplate
       return Predicates.not(new Predicate<OsFamilyVersion64Bit>() {
 
          @Override
-         public boolean apply(OsFamilyVersion64Bit input) {
+         public boolean apply(final OsFamilyVersion64Bit input) {
             switch (input.family) {
                case UBUNTU:
-                  return (input.version.equals("") || input.version.equals("10.04") || input.version.equals("11.10"))
-                          && input.is64Bit;
+                  return (input.version.equals("") || input.version.equals("12.04.1") || input.version.equals("13.10") || input.version
+                        .equals("14.04")) && input.is64Bit;
                case DEBIAN:
-                  return (input.version.equals("") || input.version.matches("6.0")) && input.is64Bit;
+                  return (input.version.equals("") || input.version.matches("7.4")) && input.is64Bit;
                case CENTOS:
-                  return (input.version.equals("") || input.version.equals("6.0")) && input.is64Bit;
+                  return (input.version.equals("") || input.version.equals("6.5")) && input.is64Bit;
                case WINDOWS:
-                  return (input.version.equals("") || input.version.equals("2008 R2") || input.version.equals("2008"))
-                           && input.is64Bit;
+                  return (input.version.equals("") || input.version.equals("2008 R2")
+                        || input.version.equals("2008 R2 + SQL") || input.version.equals("2012") || input.version
+                           .equals("2012 R2 + SQL")) && input.is64Bit;
                default:
                   return false;
             }
@@ -67,13 +70,12 @@ public class ElasticHostsPeer1LondonTemplateBuilderLiveTest extends BaseTemplate
       });
    }
 
-   @Test
-   public void testTemplateBuilder() {
-      Template defaultTemplate = this.view.getComputeService().templateBuilder().build();
+   @Override
+   public void testDefaultTemplateBuilder() throws IOException {
+      Template defaultTemplate = view.getComputeService().templateBuilder().build();
+      assertTrue(defaultTemplate.getImage().getOperatingSystem().getVersion().matches("1[01234].[01][04].[0-9]*"));
       assertEquals(defaultTemplate.getImage().getOperatingSystem().is64Bit(), true);
-      assertEquals(defaultTemplate.getImage().getOperatingSystem().getVersion(), "11.10");
       assertEquals(defaultTemplate.getImage().getOperatingSystem().getFamily(), OsFamily.UBUNTU);
-      assertEquals(defaultTemplate.getLocation().getId(), "elastichosts-lon-p");
       assertEquals(getCores(defaultTemplate.getHardware()), 1.0d);
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-sat-p/src/main/java/org/jclouds/elastichosts/ElasticHostsPeer1SanAntonioProviderMetadata.java
----------------------------------------------------------------------
diff --git a/providers/elastichosts-sat-p/src/main/java/org/jclouds/elastichosts/ElasticHostsPeer1SanAntonioProviderMetadata.java b/providers/elastichosts-sat-p/src/main/java/org/jclouds/elastichosts/ElasticHostsPeer1SanAntonioProviderMetadata.java
index 7ea104a..3644ec6 100644
--- a/providers/elastichosts-sat-p/src/main/java/org/jclouds/elastichosts/ElasticHostsPeer1SanAntonioProviderMetadata.java
+++ b/providers/elastichosts-sat-p/src/main/java/org/jclouds/elastichosts/ElasticHostsPeer1SanAntonioProviderMetadata.java
@@ -16,6 +16,8 @@
  */
 package org.jclouds.elastichosts;
 
+import static org.jclouds.compute.config.ComputeServiceProperties.TEMPLATE;
+
 import java.net.URI;
 import java.util.Properties;
 
@@ -49,6 +51,7 @@ public class ElasticHostsPeer1SanAntonioProviderMetadata extends BaseProviderMet
 
    public static Properties defaultProperties() {
       Properties properties = new Properties();
+      properties.setProperty(TEMPLATE, "osFamily=UBUNTU,osVersionMatches=1[01234].[01][04].[0-9]*,os64Bit=true");
       return properties;
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-sat-p/src/main/resources/elastichosts-sat-p/preinstalled_images.json
----------------------------------------------------------------------
diff --git a/providers/elastichosts-sat-p/src/main/resources/elastichosts-sat-p/preinstalled_images.json b/providers/elastichosts-sat-p/src/main/resources/elastichosts-sat-p/preinstalled_images.json
deleted file mode 100644
index a806fb5..0000000
--- a/providers/elastichosts-sat-p/src/main/resources/elastichosts-sat-p/preinstalled_images.json
+++ /dev/null
@@ -1,72 +0,0 @@
-[
-  {
-      "uuid": "73f7cc6a-1c48-418a-80de-886b28a56a4d",
-      "description": "CentOS Linux 6.0",
-      "osFamily": "CENTOS",
-      "osVersion": "6.0",
-      "size": "3"
-  },
-  {
-      "uuid": "9405cddf-8d01-472c-b7e3-e8c062dcde51",
-      "description": "Debian Linux 6.0",
-      "osFamily": "DEBIAN",
-      "osVersion": "6.0",
-      "size": "1"
-  },
-  {
-      "uuid": "6aa953cc-3395-4e8d-938e-65c74fd20334",
-      "description": "Debian Linux 6.0.1",
-      "osFamily": "DEBIAN",
-      "osVersion": "6.0",
-      "size": "1"
-  },
-  {
-      "uuid": "aee5589a-88c3-43ef-bb0a-9cab6e64192d",
-      "description": "Ubuntu Linux 10.04",
-      "osFamily": "UBUNTU",
-      "osVersion": "10.04",
-      "size": "1"
-  },
-  {
-      "uuid": "8d8aee18-8744-452c-94b2-69a2a34b8460",
-      "description": "Ubuntu Linux 11.10",
-      "osFamily": "UBUNTU",
-      "osVersion": "11.10",
-      "size": "1"
-  },
-  {
-      "uuid": "b9d0eb72-d273-43f1-98e3-0d4b87d372c0",
-      "description": "Windows Web Server 2008",
-      "osFamily": "WINDOWS",
-      "osVersion": "2008",
-      "size": "13"
-  },
-  {
-      "uuid": "b405b598-4ae4-4ba8-8a2b-a9487d693f34",
-      "description": "Windows Web Server 2008 R2",
-      "osFamily": "WINDOWS",
-      "osVersion": "2008 R2",
-      "size": "13"
-  },
-  {
-      "uuid": "9397d327-3bf6-46a2-abf6-69553dbb6927",
-      "description": "Windows Web Server 2008 R2 + SQL Server",
-      "osFamily": "WINDOWS",
-      "osVersion": "2008 R2",
-      "size": "13"
-  },
-  {
-      "uuid": "b17ebce6-61b4-4dcc-9654-41c9fc847e01",
-      "description": "Windows Server 2008 Standard R2",
-      "osFamily": "WINDOWS",
-      "osVersion": "2008 R2",
-      "size": "13"
-  },
-  {
-      "uuid": "662c5b3f-9828-4aa2-a866-7cfa53798cdf",
-      "description": "Windows Server 2008 Standard R2 + SQL Server",
-      "osFamily": "WINDOWS",
-      "osVersion": "2008 R2",
-      "size": "13"
-  }
-]

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-sat-p/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsPeer1SanAntonioTemplateBuilderLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/elastichosts-sat-p/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsPeer1SanAntonioTemplateBuilderLiveTest.java b/providers/elastichosts-sat-p/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsPeer1SanAntonioTemplateBuilderLiveTest.java
index 69e6a95..1988ec7 100644
--- a/providers/elastichosts-sat-p/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsPeer1SanAntonioTemplateBuilderLiveTest.java
+++ b/providers/elastichosts-sat-p/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsPeer1SanAntonioTemplateBuilderLiveTest.java
@@ -18,7 +18,9 @@ package org.jclouds.elastichosts.compute;
 
 import static org.jclouds.compute.util.ComputeServiceUtils.getCores;
 import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
 
+import java.io.IOException;
 import java.util.Set;
 
 import org.jclouds.compute.domain.OsFamily;
@@ -47,17 +49,19 @@ public class ElasticHostsPeer1SanAntonioTemplateBuilderLiveTest extends BaseTemp
       return Predicates.not(new Predicate<OsFamilyVersion64Bit>() {
 
          @Override
-         public boolean apply(OsFamilyVersion64Bit input) {
+         public boolean apply(final OsFamilyVersion64Bit input) {
             switch (input.family) {
                case UBUNTU:
-                  return (input.version.equals("") || ImmutableSet.of("11.10", "10.04").contains(input.version)) && input.is64Bit;
+                  return (input.version.equals("") || input.version.equals("12.04.1") || input.version.equals("13.10") || input.version
+                        .equals("14.04")) && input.is64Bit;
                case DEBIAN:
-                  return (input.version.equals("") || input.version.equals("6.0")) && input.is64Bit;
+                  return (input.version.equals("") || input.version.matches("7.4")) && input.is64Bit;
                case CENTOS:
-                  return (input.version.equals("") || input.version.equals("6.0")) && input.is64Bit;
+                  return (input.version.equals("") || input.version.equals("6.5")) && input.is64Bit;
                case WINDOWS:
-                  return (input.version.equals("") || input.version.equals("2008 R2") || input.version.equals("2008"))
-                           && input.is64Bit;
+                  return (input.version.equals("") || input.version.equals("2008 R2")
+                        || input.version.equals("2008 R2 + SQL") || input.version.equals("2012") || input.version
+                           .equals("2012 R2 + SQL")) && input.is64Bit;
                default:
                   return false;
             }
@@ -66,13 +70,12 @@ public class ElasticHostsPeer1SanAntonioTemplateBuilderLiveTest extends BaseTemp
       });
    }
 
-   @Test
-   public void testTemplateBuilder() {
-      Template defaultTemplate = this.view.getComputeService().templateBuilder().build();
+   @Override
+   public void testDefaultTemplateBuilder() throws IOException {
+      Template defaultTemplate = view.getComputeService().templateBuilder().build();
+      assertTrue(defaultTemplate.getImage().getOperatingSystem().getVersion().matches("1[01234].[01][04].[0-9]*"));
       assertEquals(defaultTemplate.getImage().getOperatingSystem().is64Bit(), true);
-      assertEquals(defaultTemplate.getImage().getOperatingSystem().getVersion(), "11.10");
       assertEquals(defaultTemplate.getImage().getOperatingSystem().getFamily(), OsFamily.UBUNTU);
-      assertEquals(defaultTemplate.getLocation().getId(), "elastichosts-sat-p");
       assertEquals(getCores(defaultTemplate.getHardware()), 1.0d);
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-sjc-c/README.txt
----------------------------------------------------------------------
diff --git a/providers/elastichosts-sjc-c/README.txt b/providers/elastichosts-sjc-c/README.txt
new file mode 100644
index 0000000..5324488
--- /dev/null
+++ b/providers/elastichosts-sjc-c/README.txt
@@ -0,0 +1,5 @@
+#
+# The jclouds provider for ElasticHosts' San Jose ElasticStack  (http://www.elastichosts.com/).
+#
+# Expects the jclouds elasticstack API to be present on your application's classpath.
+#
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jclouds/blob/fbf30a73/providers/elastichosts-sjc-c/pom.xml
----------------------------------------------------------------------
diff --git a/providers/elastichosts-sjc-c/pom.xml b/providers/elastichosts-sjc-c/pom.xml
new file mode 100644
index 0000000..df0da11
--- /dev/null
+++ b/providers/elastichosts-sjc-c/pom.xml
@@ -0,0 +1,125 @@
+<?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</groupId>
+    <artifactId>jclouds-project</artifactId>
+    <version>1.8.0-SNAPSHOT</version>
+    <relativePath>../../project/pom.xml</relativePath>
+  </parent>
+  <groupId>org.apache.jclouds.provider</groupId>
+  <artifactId>elastichosts-sjc-c</artifactId>
+  <name>jclouds ElasticHosts San Jose provider</name>
+  <description>ElasticHosts implementation targeted to San Jose</description>
+  <packaging>bundle</packaging>
+
+  <properties>
+    <test.elastichosts-sjc-c.endpoint>https://api-sjc-c.elastichosts.com</test.elastichosts-sjc-c.endpoint>
+    <test.elastichosts-sjc-c.api-version>2.0</test.elastichosts-sjc-c.api-version>
+    <test.elastichosts-sjc-c.build-version />
+    <test.elastichosts-sjc-c.identity>FIXME_IDENTITY</test.elastichosts-sjc-c.identity>
+    <test.elastichosts-sjc-c.credential>FIXME_CREDENTIAL</test.elastichosts-sjc-c.credential>
+    <test.elastichosts-sjc-c.template />
+
+    <jclouds.osgi.export>org.jclouds.elastichosts*;version="${project.version}"</jclouds.osgi.export>
+    <jclouds.osgi.import>
+      org.jclouds.compute.internal;version="${project.version}",
+      org.jclouds.rest.internal;version="${project.version}",
+      org.jclouds*;version="${project.version}",
+      *
+    </jclouds.osgi.import>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.jclouds.api</groupId>
+      <artifactId>elasticstack</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds.api</groupId>
+      <artifactId>elasticstack</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds</groupId>
+      <artifactId>jclouds-core</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds</groupId>
+      <artifactId>jclouds-compute</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds.driver</groupId>
+      <artifactId>jclouds-log4j</artifactId>
+      <version>${project.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds.driver</groupId>
+      <artifactId>jclouds-sshj</artifactId>
+      <version>${project.version}</version>
+      <scope>test</scope>
+    </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.elastichosts-sjc-c.endpoint>${test.elastichosts-sjc-c.endpoint}</test.elastichosts-sjc-c.endpoint>
+                    <test.elastichosts-sjc-c.api-version>${test.elastichosts-sjc-c.api-version}</test.elastichosts-sjc-c.api-version>
+                    <test.elastichosts-sjc-c.build-version>${test.elastichosts-sjc-c.build-version}</test.elastichosts-sjc-c.build-version>
+                    <test.elastichosts-sjc-c.identity>${test.elastichosts-sjc-c.identity}</test.elastichosts-sjc-c.identity>
+                    <test.elastichosts-sjc-c.credential>${test.elastichosts-sjc-c.credential}</test.elastichosts-sjc-c.credential>
+                    <test.elastichosts-sjc-c.template>${test.elastichosts-sjc-c.template}</test.elastichosts-sjc-c.template>
+                  </systemPropertyVariables>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+</project>
+