diff --git a/providers/elastichosts-dal-a/README.txt b/providers/elastichosts-dal-a/README.txt new file mode 100644 index 0000000000..b0a81c5547 --- /dev/null +++ b/providers/elastichosts-dal-a/README.txt @@ -0,0 +1,6 @@ +# +# The jclouds provider for ElasticHosts' Dallas ElasticStack (http://www.elastichosts.com/). +# +# Expects the jclouds elasticstack API to be present on your application's classpath. +# + diff --git a/providers/elastichosts-dal-a/pom.xml b/providers/elastichosts-dal-a/pom.xml new file mode 100644 index 0000000000..270a0c3031 --- /dev/null +++ b/providers/elastichosts-dal-a/pom.xml @@ -0,0 +1,130 @@ + + + + 4.0.0 + + org.apache.jclouds + jclouds-project + 2.0.0-SNAPSHOT + ../../project/pom.xml + + org.apache.jclouds.provider + elastichosts-dal-a + jclouds ElasticHosts Dallas provider + ElasticHosts implementation targeted to Dallas + bundle + + + https://api-dal-a.elastichosts.com + 2.0 + + FIXME_IDENTITY + FIXME_CREDENTIAL + + + org.jclouds.elastichosts*;version="${project.version}" + + org.jclouds.compute.internal;version="${project.version}", + org.jclouds.rest.internal;version="${project.version}", + org.jclouds*;version="${project.version}", + * + + + + + + org.apache.jclouds.api + elasticstack + ${project.version} + + + org.apache.jclouds.api + elasticstack + ${project.version} + test-jar + test + + + org.apache.jclouds + jclouds-core + ${project.version} + test-jar + test + + + org.apache.jclouds + jclouds-compute + ${project.version} + test-jar + test + + + org.apache.jclouds.driver + jclouds-log4j + ${project.version} + test + + + org.apache.jclouds.driver + jclouds-sshj + ${project.version} + test + + + com.google.auto.service + auto-service + true + + + + + + live + + + + org.apache.maven.plugins + maven-surefire-plugin + + + integration + integration-test + + test + + + + ${test.elastichosts-dal-a.endpoint} + ${test.elastichosts-dal-a.api-version} + ${test.elastichosts-dal-a.build-version} + ${test.elastichosts-dal-a.identity} + ${test.elastichosts-dal-a.credential} + ${test.elastichosts-dal-a.template} + + + + + + + + + + + diff --git a/providers/elastichosts-dal-a/src/main/java/org/jclouds/elastichosts/ElasticHostsDallasMetadata.java b/providers/elastichosts-dal-a/src/main/java/org/jclouds/elastichosts/ElasticHostsDallasMetadata.java new file mode 100644 index 0000000000..7444f12911 --- /dev/null +++ b/providers/elastichosts-dal-a/src/main/java/org/jclouds/elastichosts/ElasticHostsDallasMetadata.java @@ -0,0 +1,82 @@ +/* + * 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; + +import com.google.auto.service.AutoService; + +/** + * Implementation of {@link ProviderMetadata} for ElasticHosts Dallas. + */ +@AutoService(ProviderMetadata.class) +public class ElasticHostsDallasMetadata extends BaseProviderMetadata { + + public static Builder builder() { + return new Builder(); + } + + @Override + public Builder toBuilder() { + return builder().fromProviderMetadata(this); + } + + public ElasticHostsDallasMetadata() { + super(builder()); + } + + public ElasticHostsDallasMetadata(Builder builder) { + super(builder); + } + + public static Properties defaultProperties() { + Properties properties = new Properties(); + properties.setProperty(TEMPLATE, "osFamily=UBUNTU,osVersionMatches=1[01234].[01][04],os64Bit=true"); + return properties; + } + + public static class Builder extends BaseProviderMetadata.Builder { + + protected Builder() { + id("elastichosts-dal-a").name("ElasticHosts Dallas") + .apiMetadata(new ElasticStackApiMetadata().toBuilder().version("2.0").build()) + .homepage(URI.create("https://dal-a.elastichosts.com")) + .console(URI.create("https://dal-a.elastichosts.com/accounts")).iso3166Codes("US-TX") + .endpoint("https://api-dal-a.elastichosts.com") + .defaultProperties(ElasticHostsDallasMetadata.defaultProperties()); + } + + @Override + public ElasticHostsDallasMetadata build() { + return new ElasticHostsDallasMetadata(this); + } + + @Override + public Builder fromProviderMetadata(ProviderMetadata in) { + super.fromProviderMetadata(in); + return this; + } + + } +} diff --git a/providers/elastichosts-dal-a/src/test/java/org/jclouds/elastichosts/ElasticHostsDallasApiLiveTest.java b/providers/elastichosts-dal-a/src/test/java/org/jclouds/elastichosts/ElasticHostsDallasApiLiveTest.java new file mode 100644 index 0000000000..7fc9132fb8 --- /dev/null +++ b/providers/elastichosts-dal-a/src/test/java/org/jclouds/elastichosts/ElasticHostsDallasApiLiveTest.java @@ -0,0 +1,27 @@ +/* + * 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; + +@Test(groups = "live", singleThreaded = true, testName = "ElasticHostsDallasApiLiveTest") +public class ElasticHostsDallasApiLiveTest extends ElasticStackApiLiveTest { + public ElasticHostsDallasApiLiveTest() { + provider = "elastichosts-dal-a"; + } +} diff --git a/providers/elastichosts-dal-a/src/test/java/org/jclouds/elastichosts/ElasticHostsDallasProviderTest.java b/providers/elastichosts-dal-a/src/test/java/org/jclouds/elastichosts/ElasticHostsDallasProviderTest.java new file mode 100644 index 0000000000..d1db8ec8d6 --- /dev/null +++ b/providers/elastichosts-dal-a/src/test/java/org/jclouds/elastichosts/ElasticHostsDallasProviderTest.java @@ -0,0 +1,29 @@ +/* + * 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; + +@Test(groups = "unit", testName = "ElasticHostsDallasProviderTest") +public class ElasticHostsDallasProviderTest extends BaseProviderMetadataTest { + + public ElasticHostsDallasProviderTest() { + super(new ElasticHostsDallasMetadata(), new ElasticStackApiMetadata()); + } +} diff --git a/providers/elastichosts-dal-a/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsDallasComputeServiceLiveTest.java b/providers/elastichosts-dal-a/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsDallasComputeServiceLiveTest.java new file mode 100644 index 0000000000..2426a7a7f8 --- /dev/null +++ b/providers/elastichosts-dal-a/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsDallasComputeServiceLiveTest.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.compute; + +import org.jclouds.elasticstack.compute.ElasticStackComputeServiceLiveTest; +import org.testng.annotations.Test; + +@Test(groups = "live", testName = "ElasticHostsDallasComputeServiceLiveTest") +public class ElasticHostsDallasComputeServiceLiveTest extends ElasticStackComputeServiceLiveTest { + + public ElasticHostsDallasComputeServiceLiveTest() { + provider = "elastichosts-dal-a"; + group = "elastichosts"; + } + +} diff --git a/providers/elastichosts-dal-a/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsDallasTemplateBuilderLiveTest.java b/providers/elastichosts-dal-a/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsDallasTemplateBuilderLiveTest.java new file mode 100644 index 0000000000..0ba8e2a986 --- /dev/null +++ b/providers/elastichosts-dal-a/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsDallasTemplateBuilderLiveTest.java @@ -0,0 +1,53 @@ +/* + * 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.Template; +import org.jclouds.compute.internal.BaseTemplateBuilderLiveTest; +import org.testng.annotations.Test; + +import com.google.common.collect.ImmutableSet; + +@Test(groups = "live", testName = "ElasticHostsDallasTemplateBuilderLiveTest") +public class ElasticHostsDallasTemplateBuilderLiveTest extends BaseTemplateBuilderLiveTest { + + public ElasticHostsDallasTemplateBuilderLiveTest() { + provider = "elastichosts-dal-a"; + } + + @Override + public void testDefaultTemplateBuilder() throws IOException { + Template defaultTemplate = view.getComputeService().templateBuilder().build(); + assertTrue(defaultTemplate.getImage().getOperatingSystem().getVersion().matches("1[01234].[01][04]")); + assertEquals(defaultTemplate.getImage().getOperatingSystem().is64Bit(), true); + assertEquals(defaultTemplate.getImage().getOperatingSystem().getFamily(), OsFamily.UBUNTU); + assertEquals(getCores(defaultTemplate.getHardware()), 1.0d); + } + + @Override + protected Set getIso3166Codes() { + return ImmutableSet. of("US-TX"); + } +} diff --git a/providers/elastichosts-mmi-a/README.txt b/providers/elastichosts-mmi-a/README.txt new file mode 100644 index 0000000000..f630668fe4 --- /dev/null +++ b/providers/elastichosts-mmi-a/README.txt @@ -0,0 +1,6 @@ +# +# The jclouds provider for ElasticHosts' Miami ElasticStack (http://www.elastichosts.com/). +# +# Expects the jclouds elasticstack API to be present on your application's classpath. +# + diff --git a/providers/elastichosts-mmi-a/pom.xml b/providers/elastichosts-mmi-a/pom.xml new file mode 100644 index 0000000000..7c76691861 --- /dev/null +++ b/providers/elastichosts-mmi-a/pom.xml @@ -0,0 +1,130 @@ + + + + 4.0.0 + + org.apache.jclouds + jclouds-project + 2.0.0-SNAPSHOT + ../../project/pom.xml + + org.apache.jclouds.provider + elastichosts-mmi-a + jclouds ElasticHosts Miami provider + ElasticHosts implementation targeted to Miami + bundle + + + https://api-mmi-a.elastichosts.com + 2.0 + + FIXME_IDENTITY + FIXME_CREDENTIAL + + + org.jclouds.elastichosts*;version="${project.version}" + + org.jclouds.compute.internal;version="${project.version}", + org.jclouds.rest.internal;version="${project.version}", + org.jclouds*;version="${project.version}", + * + + + + + + org.apache.jclouds.api + elasticstack + ${project.version} + + + org.apache.jclouds.api + elasticstack + ${project.version} + test-jar + test + + + org.apache.jclouds + jclouds-core + ${project.version} + test-jar + test + + + org.apache.jclouds + jclouds-compute + ${project.version} + test-jar + test + + + org.apache.jclouds.driver + jclouds-log4j + ${project.version} + test + + + org.apache.jclouds.driver + jclouds-sshj + ${project.version} + test + + + com.google.auto.service + auto-service + true + + + + + + live + + + + org.apache.maven.plugins + maven-surefire-plugin + + + integration + integration-test + + test + + + + ${test.elastichosts-mmi-a.endpoint} + ${test.elastichosts-mmi-a.api-version} + ${test.elastichosts-mmi-a.build-version} + ${test.elastichosts-mmi-a.identity} + ${test.elastichosts-mmi-a.credential} + ${test.elastichosts-mmi-a.template} + + + + + + + + + + + diff --git a/providers/elastichosts-mmi-a/src/main/java/org/jclouds/elastichosts/ElasticHostsMiamiMetadata.java b/providers/elastichosts-mmi-a/src/main/java/org/jclouds/elastichosts/ElasticHostsMiamiMetadata.java new file mode 100644 index 0000000000..93b2180056 --- /dev/null +++ b/providers/elastichosts-mmi-a/src/main/java/org/jclouds/elastichosts/ElasticHostsMiamiMetadata.java @@ -0,0 +1,83 @@ +/* + * 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; + +import com.google.auto.service.AutoService; + +/** + * Implementation of {@link ProviderMetadata} for ElasticHosts Miami. + */ +@AutoService(ProviderMetadata.class) +public class ElasticHostsMiamiMetadata extends BaseProviderMetadata { + + public static Builder builder() { + return new Builder(); + } + + @Override + public Builder toBuilder() { + return builder().fromProviderMetadata(this); + } + + public ElasticHostsMiamiMetadata() { + super(builder()); + } + + public ElasticHostsMiamiMetadata(Builder builder) { + super(builder); + } + + public static Properties defaultProperties() { + Properties properties = new Properties(); + properties.setProperty(TEMPLATE, "osFamily=UBUNTU,osVersionMatches=1[01234].[01][04],os64Bit=true"); + return properties; + } + + public static class Builder extends BaseProviderMetadata.Builder { + + protected Builder() { + id("elastichosts-mmi-a").name("ElasticHosts Miami") + .apiMetadata(new ElasticStackApiMetadata().toBuilder().version("2.0").build()) + .homepage(URI.create("https://mmi-a.elastichosts.com")) + .console(URI.create("https://mmi-a.elastichosts.com/accounts")) + .iso3166Codes("US-FL") + .endpoint("https://api-mmi-a.elastichosts.com") + .defaultProperties(ElasticHostsMiamiMetadata.defaultProperties()); + } + + @Override + public ElasticHostsMiamiMetadata build() { + return new ElasticHostsMiamiMetadata(this); + } + + @Override + public Builder fromProviderMetadata(ProviderMetadata in) { + super.fromProviderMetadata(in); + return this; + } + + } +} diff --git a/providers/elastichosts-mmi-a/src/test/java/org/jclouds/elastichosts/ElasticHostsMiamiApiLiveTest.java b/providers/elastichosts-mmi-a/src/test/java/org/jclouds/elastichosts/ElasticHostsMiamiApiLiveTest.java new file mode 100644 index 0000000000..340a7caca1 --- /dev/null +++ b/providers/elastichosts-mmi-a/src/test/java/org/jclouds/elastichosts/ElasticHostsMiamiApiLiveTest.java @@ -0,0 +1,27 @@ +/* + * 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; + +@Test(groups = "live", singleThreaded = true, testName = "ElasticHostsMiamiApiLiveTest") +public class ElasticHostsMiamiApiLiveTest extends ElasticStackApiLiveTest { + public ElasticHostsMiamiApiLiveTest() { + provider = "elastichosts-mmi-a"; + } +} diff --git a/providers/elastichosts-mmi-a/src/test/java/org/jclouds/elastichosts/ElasticHostsMiamiProviderTest.java b/providers/elastichosts-mmi-a/src/test/java/org/jclouds/elastichosts/ElasticHostsMiamiProviderTest.java new file mode 100644 index 0000000000..1daaf446f8 --- /dev/null +++ b/providers/elastichosts-mmi-a/src/test/java/org/jclouds/elastichosts/ElasticHostsMiamiProviderTest.java @@ -0,0 +1,29 @@ +/* + * 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; + +@Test(groups = "unit", testName = "ElasticHostsMiamiProviderTest") +public class ElasticHostsMiamiProviderTest extends BaseProviderMetadataTest { + + public ElasticHostsMiamiProviderTest() { + super(new ElasticHostsMiamiMetadata(), new ElasticStackApiMetadata()); + } +} diff --git a/providers/elastichosts-mmi-a/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsMiamiComputeServiceLiveTest.java b/providers/elastichosts-mmi-a/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsMiamiComputeServiceLiveTest.java new file mode 100644 index 0000000000..b3d310b07e --- /dev/null +++ b/providers/elastichosts-mmi-a/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsMiamiComputeServiceLiveTest.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.compute; + +import org.jclouds.elasticstack.compute.ElasticStackComputeServiceLiveTest; +import org.testng.annotations.Test; + +@Test(groups = "live", testName = "ElasticHostsMiamiComputeServiceLiveTest") +public class ElasticHostsMiamiComputeServiceLiveTest extends ElasticStackComputeServiceLiveTest { + + public ElasticHostsMiamiComputeServiceLiveTest() { + provider = "elastichosts-mmi-a"; + group = "elastichosts"; + } + +} diff --git a/providers/elastichosts-mmi-a/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsMiamiTemplateBuilderLiveTest.java b/providers/elastichosts-mmi-a/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsMiamiTemplateBuilderLiveTest.java new file mode 100644 index 0000000000..9b3057dc9a --- /dev/null +++ b/providers/elastichosts-mmi-a/src/test/java/org/jclouds/elastichosts/compute/ElasticHostsMiamiTemplateBuilderLiveTest.java @@ -0,0 +1,53 @@ +/* + * 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.Template; +import org.jclouds.compute.internal.BaseTemplateBuilderLiveTest; +import org.testng.annotations.Test; + +import com.google.common.collect.ImmutableSet; + +@Test(groups = "live", testName = "ElasticHostsMiamiTemplateBuilderLiveTest") +public class ElasticHostsMiamiTemplateBuilderLiveTest extends BaseTemplateBuilderLiveTest { + + public ElasticHostsMiamiTemplateBuilderLiveTest() { + provider = "elastichosts-mmi-a"; + } + + @Override + public void testDefaultTemplateBuilder() throws IOException { + Template defaultTemplate = view.getComputeService().templateBuilder().build(); + assertTrue(defaultTemplate.getImage().getOperatingSystem().getVersion().matches("1[01234].[01][04]")); + assertEquals(defaultTemplate.getImage().getOperatingSystem().is64Bit(), true); + assertEquals(defaultTemplate.getImage().getOperatingSystem().getFamily(), OsFamily.UBUNTU); + assertEquals(getCores(defaultTemplate.getHardware()), 1.0d); + } + + @Override + protected Set getIso3166Codes() { + return ImmutableSet. of("US-FL"); + } +} diff --git a/providers/pom.xml b/providers/pom.xml index 77bf0e2daa..6edcaa557b 100644 --- a/providers/pom.xml +++ b/providers/pom.xml @@ -45,6 +45,8 @@ elastichosts-sjc-c elastichosts-hkg-e elastichosts-syd-v + elastichosts-mmi-a + elastichosts-dal-a openhosting-east1 serverlove-z1-man skalicloud-sdg-my