You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ra...@apache.org on 2014/12/23 05:26:59 UTC
[35/51] [partial] stratos git commit: dropping jclouds 1.8.0 clone
http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/internal/BaseEC2ComputeServiceExpectTest.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/internal/BaseEC2ComputeServiceExpectTest.java b/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/internal/BaseEC2ComputeServiceExpectTest.java
deleted file mode 100644
index 4178e74..0000000
--- a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/internal/BaseEC2ComputeServiceExpectTest.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.ec2.compute.internal;
-
-import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS;
-
-import javax.ws.rs.core.MediaType;
-import java.util.Properties;
-
-import org.jclouds.compute.ComputeService;
-import org.jclouds.compute.ComputeServiceContext;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.http.HttpResponse;
-import org.testng.annotations.BeforeClass;
-
-public abstract class BaseEC2ComputeServiceExpectTest extends BaseEC2ComputeServiceContextExpectTest<ComputeService> {
- protected String region;
-
- @Override
- protected Properties setupProperties() {
- Properties properties = super.setupProperties();
- properties.setProperty(PROPERTY_REGIONS, region);
- properties.setProperty(provider + ".template", "osDescriptionMatches=.*fedora.*");
- return properties;
- }
-
- protected HttpRequest describeAvailabilityZonesRequest;
- protected HttpResponse describeAvailabilityZonesResponse;
- protected HttpRequest describeImagesRequest;
- protected HttpResponse describeImagesResponse;
- protected HttpRequest createKeyPairRequest;
- protected HttpResponse createKeyPairResponse;
- protected HttpRequest createSecurityGroupRequest;
- protected HttpResponse createSecurityGroupResponse;
- protected HttpRequest describeSecurityGroupRequest;
- protected HttpResponse describeSecurityGroupResponse;
- protected HttpRequest authorizeSecurityGroupIngressRequest22;
- protected HttpResponse authorizeSecurityGroupIngressResponse;
- protected HttpRequest authorizeSecurityGroupIngressRequestGroup;
- protected HttpRequest runInstancesRequest;
- protected HttpResponse runInstancesResponse;
- protected HttpRequest runThreeInstancesRequest;
- protected HttpRequest runThreeToFourInstancesRequest;
- protected HttpResponse runThreeInstancesResponse;
- protected HttpRequest describeInstanceRequest;
- protected HttpResponse describeInstanceResponse;
- protected HttpRequest describeInstanceMultiIdsRequest;
- protected HttpResponse describeInstanceMultiIdsResponse;
- protected HttpRequest describeInstanceThreeIdsRequest;
- protected HttpResponse describeInstanceThreeIdsResponse;
- protected HttpRequest describeImageRequest;
- protected HttpRequest createTagsRequest;
- protected HttpResponse createTagsResponse;
-
- public BaseEC2ComputeServiceExpectTest() {
- region = "us-east-1";
- }
-
- @BeforeClass
- @Override
- protected void setupDefaultRequests() {
- super.setupDefaultRequests();
- describeAvailabilityZonesRequest =
- formSigner.filter(HttpRequest.builder()
- .method("POST")
- .endpoint("https://ec2." + region + ".amazonaws.com/")
- .addHeader("Host", "ec2." + region + ".amazonaws.com")
- .addFormParam("Action", "DescribeAvailabilityZones").build());
-
- describeAvailabilityZonesResponse =
- HttpResponse.builder().statusCode(200)
- .payload(payloadFromResourceWithContentType(
- "/availabilityZones-" + region + ".xml", MediaType.APPLICATION_XML)).build();
- describeImagesRequest =
- formSigner.filter(HttpRequest.builder()
- .method("POST")
- .endpoint("https://ec2." + region + ".amazonaws.com/")
- .addHeader("Host", "ec2." + region + ".amazonaws.com")
- .addFormParam("Action", "DescribeImages").build());
-
- describeImagesResponse =
- HttpResponse.builder().statusCode(200)
- .payload(payloadFromResourceWithContentType(
- "/describe_images.xml", MediaType.APPLICATION_XML)).build();
-
- createKeyPairRequest =
- formSigner.filter(HttpRequest.builder()
- .method("POST")
- .endpoint("https://ec2." + region + ".amazonaws.com/")
- .addHeader("Host", "ec2." + region + ".amazonaws.com")
- .addFormParam("Action", "CreateKeyPair")
- .addFormParam("KeyName", "jclouds#test#0").build());
-
- createKeyPairResponse =
- HttpResponse.builder().statusCode(200)
- .payload(payloadFromResourceWithContentType(
- "/create_keypair.xml", MediaType.APPLICATION_XML)).build();
-
- createSecurityGroupRequest =
- formSigner.filter(HttpRequest.builder()
- .method("POST")
- .endpoint("https://ec2." + region + ".amazonaws.com/")
- .addHeader("Host", "ec2." + region + ".amazonaws.com")
- .addFormParam("Action", "CreateSecurityGroup")
- .addFormParam("GroupDescription", "jclouds#test")
- .addFormParam("GroupName", "jclouds#test").build());
-
- createSecurityGroupResponse =
- HttpResponse.builder().statusCode(200)
- .payload(payloadFromResourceWithContentType(
- "/created_securitygroup.xml", MediaType.APPLICATION_XML)).build();
-
- describeSecurityGroupRequest =
- formSigner.filter(HttpRequest.builder()
- .method("POST")
- .endpoint("https://ec2." + region + ".amazonaws.com/")
- .addHeader("Host", "ec2." + region + ".amazonaws.com")
- .addFormParam("Action", "DescribeSecurityGroups")
- .addFormParam("GroupName.1", "jclouds#test").build());
-
- describeSecurityGroupResponse =
- HttpResponse.builder().statusCode(200)
- .payload(payloadFromResourceWithContentType(
- "/new_securitygroup.xml", MediaType.APPLICATION_XML)).build();
-
- authorizeSecurityGroupIngressRequest22 =
- formSigner.filter(HttpRequest.builder()
- .method("POST")
- .endpoint("https://ec2." + region + ".amazonaws.com/")
- .addHeader("Host", "ec2." + region + ".amazonaws.com")
- .addFormParam("Action", "AuthorizeSecurityGroupIngress")
- .addFormParam("CidrIp", "0.0.0.0/0")
- .addFormParam("FromPort", "22")
- .addFormParam("ToPort", "22")
- .addFormParam("GroupName", "jclouds#test")
- .addFormParam("IpProtocol", "tcp").build());
-
- authorizeSecurityGroupIngressRequestGroup =
- formSigner.filter(HttpRequest.builder()
- .method("POST")
- .endpoint("https://ec2." + region + ".amazonaws.com/")
- .addHeader("Host", "ec2." + region + ".amazonaws.com")
- .addFormParam("Action", "AuthorizeSecurityGroupIngress")
- .addFormParam("SourceSecurityGroupName", "jclouds#test")
- .addFormParam("SourceSecurityGroupOwnerId", "993194456877")
- .addFormParam("GroupName", "jclouds#test").build());
-
- authorizeSecurityGroupIngressResponse =
- HttpResponse.builder().statusCode(200)
- .payload(payloadFromResourceWithContentType(
- "/authorize_securitygroup_ingress_response.xml", MediaType.APPLICATION_XML)).build();
-
- runInstancesRequest =
- formSigner.filter(HttpRequest.builder()
- .method("POST")
- .endpoint("https://ec2." + region + ".amazonaws.com/")
- .addHeader("Host", "ec2." + region + ".amazonaws.com")
- .addFormParam("Action", "RunInstances")
- .addFormParam("ImageId", "ami-be3adfd7")
- .addFormParam("InstanceType", "m1.small")
- .addFormParam("KeyName", "jclouds#test#0")
- .addFormParam("MaxCount", "1")
- .addFormParam("MinCount", "1")
- .addFormParam("SecurityGroup.1", "jclouds#test").build());
-
- runInstancesResponse =
- HttpResponse.builder().statusCode(200)
- .payload(payloadFromResourceWithContentType(
- "/new_instance.xml", MediaType.APPLICATION_XML)).build();
-
- runThreeInstancesRequest =
- formSigner.filter(HttpRequest.builder()
- .method("POST")
- .endpoint("https://ec2." + region + ".amazonaws.com/")
- .addHeader("Host", "ec2." + region + ".amazonaws.com")
- .addFormParam("Action", "RunInstances")
- .addFormParam("ImageId", "ami-be3adfd7")
- .addFormParam("InstanceType", "m1.small")
- .addFormParam("KeyName", "jclouds#test#0")
- .addFormParam("MaxCount", "3")
- .addFormParam("MinCount", "3")
- .addFormParam("SecurityGroup.1", "jclouds#test").build());
-
- runThreeToFourInstancesRequest =
- formSigner.filter(HttpRequest.builder()
- .method("POST")
- .endpoint("https://ec2." + region + ".amazonaws.com/")
- .addHeader("Host", "ec2." + region + ".amazonaws.com")
- .addFormParam("Action", "RunInstances")
- .addFormParam("ImageId", "ami-be3adfd7")
- .addFormParam("InstanceType", "m1.small")
- .addFormParam("KeyName", "jclouds#test#0")
- .addFormParam("MaxCount", "4")
- .addFormParam("MinCount", "3")
- .addFormParam("SecurityGroup.1", "jclouds#test").build());
-
- runThreeInstancesResponse =
- HttpResponse.builder().statusCode(200)
- .payload(payloadFromResourceWithContentType(
- "/run_instances_three.xml", MediaType.APPLICATION_XML)).build();
-
- describeInstanceRequest =
- formSigner.filter(HttpRequest.builder()
- .method("POST")
- .endpoint("https://ec2." + region + ".amazonaws.com/")
- .addHeader("Host", "ec2." + region + ".amazonaws.com")
- .addFormParam("Action", "DescribeInstances")
- .addFormParam("InstanceId.1", "i-2baa5550").build());
-
- describeInstanceResponse =
- HttpResponse.builder().statusCode(200)
- .payload(payloadFromResourceWithContentType(
- "/describe_instances_running-1.xml", MediaType.APPLICATION_XML)).build();
-
- describeInstanceMultiIdsRequest =
- formSigner.filter(HttpRequest.builder()
- .method("POST")
- .endpoint("https://ec2." + region + ".amazonaws.com/")
- .addHeader("Host", "ec2." + region + ".amazonaws.com")
- .addFormParam("Action", "DescribeInstances")
- .addFormParam("InstanceId.1", "i-2baa5550")
- .addFormParam("InstanceId.2", "i-abcd1234").build());
-
- describeInstanceMultiIdsResponse =
- HttpResponse.builder().statusCode(200)
- .payload(payloadFromResourceWithContentType(
- "/describe_instances_multiple.xml", MediaType.APPLICATION_XML)).build();
-
- describeInstanceThreeIdsRequest =
- formSigner.filter(HttpRequest.builder()
- .method("POST")
- .endpoint("https://ec2." + region + ".amazonaws.com/")
- .addHeader("Host", "ec2." + region + ".amazonaws.com")
- .addFormParam("Action", "DescribeInstances")
- .addFormParam("InstanceId.1", "i-2ba64342")
- .addFormParam("InstanceId.2", "i-2bc64242")
- .addFormParam("InstanceId.3", "i-2be64332").build());
-
- describeInstanceThreeIdsResponse =
- HttpResponse.builder().statusCode(200)
- .payload(payloadFromResourceWithContentType(
- "/describe_instances_multiple.xml", MediaType.APPLICATION_XML)).build();
-
- //TODO: duplicate.. shouldn't need this
- describeImageRequest =
- formSigner.filter(HttpRequest.builder()
- .method("POST")
- .endpoint("https://ec2." + region + ".amazonaws.com/")
- .addHeader("Host", "ec2." + region + ".amazonaws.com")
- .addFormParam("ImageId.1", "ami-aecd60c7")
- .addFormParam("Action", "DescribeImages").build());
-
- createTagsRequest =
- formSigner.filter(HttpRequest.builder()
- .method("POST")
- .endpoint("https://ec2.us-east-1.amazonaws.com/")
- .addHeader("Host", "ec2.us-east-1.amazonaws.com")
- .payload(
- payloadFromStringWithContentType(
- "Action=CreateTags" +
- "&ResourceId.1=i-2baa5550" +
- "&Signature=Trp5e5%2BMqeBeBZbLYa9s9gxahQ9nkx6ETfsGl82IV8Y%3D" +
- "&SignatureMethod=HmacSHA256" +
- "&SignatureVersion=2" +
- "&Tag.1.Key=Name" +
- "&Tag.1.Value=test-2baa5550" +
- "&Timestamp=2012-04-16T15%3A54%3A08.897Z" +
- "&Version=2010-08-31" +
- "&AWSAccessKeyId=identity",
- "application/x-www-form-urlencoded"))
- .build());
-
- createTagsResponse = HttpResponse.builder().statusCode(200).build();
-
- }
-
- @Override
- public ComputeService apply(ComputeServiceContext input) {
- return input.getComputeService();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/internal/EC2TemplateBuilderImplTest.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/internal/EC2TemplateBuilderImplTest.java b/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/internal/EC2TemplateBuilderImplTest.java
deleted file mode 100644
index 9c7de8d..0000000
--- a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/internal/EC2TemplateBuilderImplTest.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.ec2.compute.internal;
-
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.c1_medium;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.fail;
-
-import java.util.NoSuchElementException;
-import java.util.Set;
-
-import javax.inject.Provider;
-
-import org.jclouds.collect.Memoized;
-import org.jclouds.compute.domain.Hardware;
-import org.jclouds.compute.domain.Image;
-import org.jclouds.compute.domain.OperatingSystem;
-import org.jclouds.compute.domain.TemplateBuilder;
-import org.jclouds.compute.domain.internal.TemplateBuilderImpl;
-import org.jclouds.compute.domain.internal.TemplateBuilderImplTest;
-import org.jclouds.compute.options.TemplateOptions;
-import org.jclouds.compute.strategy.GetImageStrategy;
-import org.jclouds.compute.suppliers.ImageCacheSupplier;
-import org.jclouds.domain.Location;
-import org.jclouds.ec2.compute.domain.RegionAndName;
-import org.jclouds.ec2.compute.functions.ImagesToRegionAndIdMap;
-import org.jclouds.ec2.compute.options.EC2TemplateOptions;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Functions;
-import com.google.common.base.Supplier;
-import com.google.common.base.Suppliers;
-import com.google.common.cache.CacheBuilder;
-import com.google.common.cache.CacheLoader;
-import com.google.common.cache.LoadingCache;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Sets;
-
-@Test(groups = "unit", singleThreaded = true)
-public class EC2TemplateBuilderImplTest extends TemplateBuilderImplTest {
-
- @Override
- protected TemplateOptions provideTemplateOptions() {
- return new EC2TemplateOptions();
- }
-
- @Override
- protected EC2TemplateBuilderImpl createTemplateBuilder(final Image knownImage,
- @Memoized Supplier<Set<? extends Location>> locations, @Memoized final Supplier<Set<? extends Image>> images,
- @Memoized Supplier<Set<? extends Hardware>> sizes, Location defaultLocation,
- Provider<TemplateOptions> optionsProvider, Provider<TemplateBuilder> templateBuilderProvider, GetImageStrategy getImageStrategy) {
-
- LoadingCache<RegionAndName, ? extends Image> imageMap;
- if (knownImage != null) {
- final RegionAndName knownRegionAndName = new RegionAndName(knownImage.getLocation().getId(), knownImage.getProviderId());
-
- imageMap = CacheBuilder.newBuilder().build(new CacheLoader<RegionAndName, Image>() {
- @Override
- public Image load(RegionAndName from) {
- return from.equals(knownRegionAndName) ? knownImage : null;
- }
-
- });
-
- } else {
- imageMap = CacheBuilder.newBuilder().build(CacheLoader.from(Functions.forMap(
- ImagesToRegionAndIdMap.imagesToMap(images.get()))));
- }
-
- return new EC2TemplateBuilderImpl(locations, new ImageCacheSupplier(images, 60), sizes, Suppliers.ofInstance(defaultLocation),
- optionsProvider, templateBuilderProvider, getImageStrategy, Suppliers.<LoadingCache<RegionAndName, ? extends Image>>ofInstance(imageMap));
- }
-
- @Override
- protected String getProviderFormatId(String uniqueLabel) {
- return "us-east-1/" + uniqueLabel;
- }
-
- @Override
- @Test
- public void testHardwareWithImageIdPredicateOnlyAcceptsImageWhenLocationNull() {
- // not possible to have null region in ec2
- }
-
- @SuppressWarnings("unchecked")
- @Test
- public void testParseOnDemand() {
-
- Supplier<Set<? extends Location>> locations = Suppliers.<Set<? extends Location>> ofInstance(ImmutableSet
- .<Location> of(region));
- Supplier<Set<? extends Image>> images = Suppliers.<Set<? extends Image>> ofInstance(Sets
- .<Image> newLinkedHashSet());
- Supplier<Set<? extends Hardware>> sizes = Suppliers.<Set<? extends Hardware>> ofInstance(ImmutableSet
- .<Hardware> of(c1_medium().build()));
-
- Provider<TemplateOptions> optionsProvider = createMock(Provider.class);
- Provider<TemplateBuilder> templateBuilderProvider = createMock(Provider.class);
- TemplateOptions defaultOptions = createMock(TemplateOptions.class);
- Image knownImage = createMock(Image.class);
- OperatingSystem os = createMock(OperatingSystem.class);
- GetImageStrategy getImageStrategy = createMock(GetImageStrategy.class);
-
- expect(optionsProvider.get()).andReturn(defaultOptions);
-
- expect(knownImage.getId()).andReturn("us-east-1/ami").atLeastOnce();
- expect(knownImage.getLocation()).andReturn(region).atLeastOnce();
- expect(knownImage.getName()).andReturn(null).atLeastOnce();
- expect(knownImage.getDescription()).andReturn(null).atLeastOnce();
- expect(knownImage.getVersion()).andReturn(null).atLeastOnce();
- expect(knownImage.getProviderId()).andReturn("ami").atLeastOnce();
-
- expect(knownImage.getOperatingSystem()).andReturn(os).atLeastOnce();
-
- expect(os.getName()).andReturn(null).atLeastOnce();
- expect(os.getVersion()).andReturn(null).atLeastOnce();
- expect(os.getFamily()).andReturn(null).atLeastOnce();
- expect(os.getDescription()).andReturn(null).atLeastOnce();
- expect(os.getArch()).andReturn("paravirtual").atLeastOnce();
- expect(os.is64Bit()).andReturn(false).atLeastOnce();
-
- replay(knownImage, os, defaultOptions, optionsProvider, templateBuilderProvider, getImageStrategy);
-
- TemplateBuilderImpl template = createTemplateBuilder(knownImage, locations, images, sizes, region,
- optionsProvider, templateBuilderProvider, getImageStrategy);
-
- assertEquals(template.imageId("us-east-1/ami").build().getImage(), knownImage);
-
- verify(knownImage, os, defaultOptions, optionsProvider, templateBuilderProvider, getImageStrategy);
- }
-
- @SuppressWarnings("unchecked")
- @Test
- public void testParseOnDemandWithoutRegionEncodedIntoId() {
-
- Supplier<Set<? extends Location>> locations = Suppliers.<Set<? extends Location>> ofInstance(ImmutableSet
- .<Location> of(region));
- Supplier<Set<? extends Image>> images = Suppliers.<Set<? extends Image>> ofInstance(ImmutableSet.<Image> of());
- Supplier<Set<? extends Hardware>> sizes = Suppliers.<Set<? extends Hardware>> ofInstance(ImmutableSet
- .<Hardware> of(c1_medium().build()));
-
- Provider<TemplateOptions> optionsProvider = createMock(Provider.class);
- Provider<TemplateBuilder> templateBuilderProvider = createMock(Provider.class);
- TemplateOptions defaultOptions = createMock(TemplateOptions.class);
- Image knownImage = createMock(Image.class);
- GetImageStrategy getImageStrategy = createMock(GetImageStrategy.class);
- expect(knownImage.getId()).andReturn("region/ami").anyTimes();
- expect(knownImage.getProviderId()).andReturn("ami").anyTimes();
- expect(knownImage.getLocation()).andReturn(region).anyTimes();
-
- expect(optionsProvider.get()).andReturn(defaultOptions);
-
- replay(knownImage, defaultOptions, optionsProvider, templateBuilderProvider, getImageStrategy);
-
- TemplateBuilderImpl template = createTemplateBuilder(knownImage, locations, images, sizes, region,
- optionsProvider, templateBuilderProvider, getImageStrategy);
- try {
- template.imageId("ami").build();
- fail("Expected IllegalArgumentException");
- } catch (IllegalArgumentException e) {
-
- }
-
- verify(knownImage, defaultOptions, optionsProvider, templateBuilderProvider, getImageStrategy);
- }
-
- @SuppressWarnings("unchecked")
- @Test(expectedExceptions = NoSuchElementException.class)
- public void testParseOnDemandNotFound() {
-
- Supplier<Set<? extends Location>> locations = Suppliers.<Set<? extends Location>> ofInstance(ImmutableSet
- .<Location> of(region));
- Supplier<Set<? extends Image>> images = Suppliers.<Set<? extends Image>> ofInstance(ImmutableSet.<Image> of());
- Supplier<Set<? extends Hardware>> sizes = Suppliers.<Set<? extends Hardware>> ofInstance(ImmutableSet
- .<Hardware> of(c1_medium().build()));
-
- Location defaultLocation = createMock(Location.class);
- Provider<TemplateOptions> optionsProvider = createMock(Provider.class);
- Provider<TemplateBuilder> templateBuilderProvider = createMock(Provider.class);
- TemplateOptions defaultOptions = createMock(TemplateOptions.class);
- GetImageStrategy getImageStrategy = createMock(GetImageStrategy.class);
- Image knownImage = createMock(Image.class);
- expect(knownImage.getId()).andReturn("region/ami").anyTimes();
- expect(knownImage.getProviderId()).andReturn("ami").anyTimes();
- expect(knownImage.getLocation()).andReturn(region).anyTimes();
-
- expect(defaultLocation.getId()).andReturn("region");
- expect(optionsProvider.get()).andReturn(defaultOptions);
-
- replay(knownImage, defaultOptions, defaultLocation, optionsProvider, templateBuilderProvider, getImageStrategy);
-
- TemplateBuilderImpl template = createTemplateBuilder(knownImage, locations, images, sizes, defaultLocation,
- optionsProvider, templateBuilderProvider, getImageStrategy);
-
- assertEquals(template.imageId("region/bad").build().getImage(), knownImage);
-
- verify(knownImage, defaultOptions, defaultLocation, optionsProvider, templateBuilderProvider, getImageStrategy);
- }
-
- // The EC2 provider already overrides the getImage method so this test is not useful for EC2
- @Override
- @Test(enabled = false)
- public void testFindImageWithIdDefaultToGetImageStrategy() {
-
- }
-
- // The EC2 provider already overrides the getImage method so this test is not useful for EC2
- @Override
- public void testFindImageWithIdDefaultToGetImageStrategyAndPopulatesTheCache() {
-
- }
-
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/CreateSecurityGroupIfNeededTest.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/CreateSecurityGroupIfNeededTest.java b/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/CreateSecurityGroupIfNeededTest.java
deleted file mode 100644
index 98ee834..0000000
--- a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/CreateSecurityGroupIfNeededTest.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.ec2.compute.loaders;
-
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.createNiceMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.expectLastCall;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-import static org.testng.Assert.assertEquals;
-
-import java.util.Set;
-import java.util.concurrent.ExecutionException;
-
-import org.jclouds.ec2.compute.domain.RegionAndName;
-import org.jclouds.ec2.compute.domain.RegionNameAndIngressRules;
-import org.jclouds.ec2.domain.SecurityGroup;
-import org.jclouds.ec2.domain.UserIdGroupPair;
-import org.jclouds.ec2.features.SecurityGroupApi;
-import org.jclouds.net.domain.IpProtocol;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Predicate;
-import com.google.common.base.Predicates;
-import com.google.common.collect.ImmutableSet;
-
-@Test(groups = "unit", singleThreaded = true, testName = "CreateSecurityGroupIfNeeded")
-public class CreateSecurityGroupIfNeededTest {
-
- @SuppressWarnings("unchecked")
- @Test
- public void testWhenPort22AndToItselfAuthorizesIngressTwice() throws ExecutionException {
-
- SecurityGroupApi client = createMock(SecurityGroupApi.class);
- Predicate<RegionAndName> tester = Predicates.alwaysTrue();
-
- SecurityGroup group = createNiceMock(SecurityGroup.class);
- Set<SecurityGroup> groups = ImmutableSet.<SecurityGroup> of(group);
-
- client.createSecurityGroupInRegion("region", "group", "group");
- client.authorizeSecurityGroupIngressInRegion("region", "group", IpProtocol.TCP, 22, 22, "0.0.0.0/0");
- expect(client.describeSecurityGroupsInRegion("region", "group")).andReturn(Set.class.cast(groups));
- expect(group.getOwnerId()).andReturn("ownerId");
- client.authorizeSecurityGroupIngressInRegion("region", "group", new UserIdGroupPair("ownerId", "group"));
-
- replay(client);
- replay(group);
-
- CreateSecurityGroupIfNeeded function = new CreateSecurityGroupIfNeeded(client, tester);
-
- assertEquals("group", function.load(new RegionNameAndIngressRules("region", "group", new int[] { 22 }, true)));
-
- verify(client);
- verify(group);
-
- }
-
- @Test
- public void testIllegalStateExceptionCreatingGroupJustReturns() throws ExecutionException {
-
- SecurityGroupApi client = createMock(SecurityGroupApi.class);
- Predicate<RegionAndName> tester = Predicates.alwaysTrue();
-
- client.createSecurityGroupInRegion("region", "group", "group");
- expectLastCall().andThrow(new IllegalStateException());
-
- replay(client);
-
- CreateSecurityGroupIfNeeded function = new CreateSecurityGroupIfNeeded(client, tester);
-
- assertEquals("group", function.load(new RegionNameAndIngressRules("region", "group", new int[] { 22 }, true)));
-
- verify(client);
-
- }
-
- @Test(expectedExceptions = RuntimeException.class)
- public void testWhenEventualConsistencyExpiresIllegalStateException() throws ExecutionException {
-
- SecurityGroupApi client = createMock(SecurityGroupApi.class);
- Predicate<RegionAndName> tester = Predicates.alwaysFalse();
-
- client.createSecurityGroupInRegion("region", "group", "group");
-
- replay(client);
-
- CreateSecurityGroupIfNeeded function = new CreateSecurityGroupIfNeeded(client, tester);
- function.load(new RegionNameAndIngressRules("region", "group", new int[] { 22 }, true));
- }
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/LoadPublicIpForInstanceOrNullTest.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/LoadPublicIpForInstanceOrNullTest.java b/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/LoadPublicIpForInstanceOrNullTest.java
deleted file mode 100644
index fde64ca..0000000
--- a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/LoadPublicIpForInstanceOrNullTest.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.ec2.compute.loaders;
-
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-import static org.testng.Assert.assertEquals;
-
-import org.jclouds.ec2.EC2Api;
-import org.jclouds.ec2.compute.domain.RegionAndName;
-import org.jclouds.ec2.domain.PublicIpInstanceIdPair;
-import org.jclouds.ec2.features.ElasticIPAddressApi;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Optional;
-import com.google.common.collect.ImmutableSet;
-
-@Test(groups = "unit", singleThreaded = true, testName = "LoadPublicIpForInstanceOrNullTest")
-public class LoadPublicIpForInstanceOrNullTest {
-
- @Test
- public void testReturnsPublicIpOnMatch() throws Exception {
- EC2Api client = createMock(EC2Api.class);
- ElasticIPAddressApi ipClient = createMock(ElasticIPAddressApi.class);
-
- expect(client.getElasticIPAddressApi()).andReturn((Optional) Optional.of(ipClient)).atLeastOnce();
- expect(ipClient.describeAddressesInRegion("region")).andReturn(
- ImmutableSet.<PublicIpInstanceIdPair> of(new PublicIpInstanceIdPair("region", "1.1.1.1", "i-blah")))
- .atLeastOnce();
-
- replay(client);
- replay(ipClient);
-
- LoadPublicIpForInstanceOrNull parser = new LoadPublicIpForInstanceOrNull(client);
-
- assertEquals(parser.load(new RegionAndName("region", "i-blah")), "1.1.1.1");
-
- verify(client);
- verify(ipClient);
- }
-
- @Test
- public void testReturnsNullWhenNotFound() throws Exception {
- EC2Api client = createMock(EC2Api.class);
- ElasticIPAddressApi ipClient = createMock(ElasticIPAddressApi.class);
-
- expect(client.getElasticIPAddressApi()).andReturn((Optional) Optional.of(ipClient)).atLeastOnce();
-
- expect(ipClient.describeAddressesInRegion("region")).andReturn(ImmutableSet.<PublicIpInstanceIdPair> of())
- .atLeastOnce();
-
- replay(client);
- replay(ipClient);
-
- LoadPublicIpForInstanceOrNull parser = new LoadPublicIpForInstanceOrNull(client);
-
- assertEquals(parser.load(new RegionAndName("region", "i-blah")), null);
-
- verify(client);
- verify(ipClient);
-
- }
-
- @Test
- public void testReturnsNullWhenNotAssigned() throws Exception {
- EC2Api client = createMock(EC2Api.class);
- ElasticIPAddressApi ipClient = createMock(ElasticIPAddressApi.class);
-
- expect(client.getElasticIPAddressApi()).andReturn((Optional) Optional.of(ipClient)).atLeastOnce();
-
- expect(ipClient.describeAddressesInRegion("region")).andReturn(
- ImmutableSet.<PublicIpInstanceIdPair> of(new PublicIpInstanceIdPair("region", "1.1.1.1", null)))
- .atLeastOnce();
-
- replay(client);
- replay(ipClient);
-
- LoadPublicIpForInstanceOrNull parser = new LoadPublicIpForInstanceOrNull(client);
-
- assertEquals(parser.load(new RegionAndName("region", "i-blah")), null);
-
- verify(client);
- verify(ipClient);
-
- }
-
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/RegionAndIdToImageTest.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/RegionAndIdToImageTest.java b/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/RegionAndIdToImageTest.java
deleted file mode 100644
index 86ff871..0000000
--- a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/RegionAndIdToImageTest.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.ec2.compute.loaders;
-
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.createNiceMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-import static org.jclouds.ec2.options.DescribeImagesOptions.Builder.imageIds;
-import static org.testng.Assert.assertEquals;
-
-import java.util.NoSuchElementException;
-import java.util.Set;
-import java.util.concurrent.ExecutionException;
-
-import org.jclouds.compute.domain.Image;
-import org.jclouds.ec2.EC2Api;
-import org.jclouds.ec2.compute.domain.RegionAndName;
-import org.jclouds.ec2.compute.functions.EC2ImageParser;
-import org.jclouds.ec2.features.AMIApi;
-import org.jclouds.rest.ResourceNotFoundException;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Optional;
-import com.google.common.collect.ImmutableSet;
-
-@Test(groups = "unit")
-public class RegionAndIdToImageTest {
-
- @SuppressWarnings("unchecked")
- @Test
- public void testApply() throws ExecutionException {
-
- EC2ImageParser parser = createMock(EC2ImageParser.class);
- EC2Api caller = createMock(EC2Api.class);
- AMIApi client = createMock(AMIApi.class);
-
- org.jclouds.ec2.domain.Image ec2Image = createMock(org.jclouds.ec2.domain.Image.class);
- Image image = createNiceMock(Image.class);
- Set<? extends org.jclouds.ec2.domain.Image> images = ImmutableSet.<org.jclouds.ec2.domain.Image> of(ec2Image);
-
- expect(caller.getAMIApi()).andReturn((Optional) Optional.of(client)).atLeastOnce();
- expect(client.describeImagesInRegion("region", imageIds("ami"))).andReturn(Set.class.cast(images));
- expect(parser.apply(ec2Image)).andReturn(image);
-
- replay(caller);
- replay(image);
- replay(parser);
- replay(client);
-
- RegionAndIdToImage function = new RegionAndIdToImage(parser, caller);
-
- assertEquals(function.load(new RegionAndName("region", "ami")), image);
-
- verify(caller);
- verify(image);
- verify(image);
- verify(client);
-
- }
-
- @SuppressWarnings("unchecked")
- @Test(expectedExceptions = ExecutionException.class)
- public void testApplyNotFoundMakesExecutionException() throws ExecutionException {
-
- EC2ImageParser parser = createMock(EC2ImageParser.class);
- EC2Api caller = createMock(EC2Api.class);
- AMIApi client = createMock(AMIApi.class);
-
- org.jclouds.ec2.domain.Image ec2Image = createMock(org.jclouds.ec2.domain.Image.class);
- Image image = createNiceMock(Image.class);
- Set<? extends org.jclouds.ec2.domain.Image> images = ImmutableSet.<org.jclouds.ec2.domain.Image> of(ec2Image);
-
- expect(caller.getAMIApi()).andReturn((Optional) Optional.of(client)).atLeastOnce();
- expect(client.describeImagesInRegion("region", imageIds("ami"))).andReturn(Set.class.cast(images));
- expect(parser.apply(ec2Image)).andThrow(new ResourceNotFoundException());
-
- replay(caller);
- replay(image);
- replay(parser);
- replay(client);
-
- RegionAndIdToImage function = new RegionAndIdToImage(parser, caller);
-
- assertEquals(function.load(new RegionAndName("region", "ami")), null);
-
- verify(caller);
- verify(image);
- verify(parser);
- verify(client);
-
- }
-
- @SuppressWarnings("unchecked")
- @Test(expectedExceptions = ExecutionException.class)
- public void testApplyNoSuchElementExceptionMakesExecutionException() throws ExecutionException {
-
- EC2ImageParser parser = createMock(EC2ImageParser.class);
- EC2Api caller = createMock(EC2Api.class);
- AMIApi client = createMock(AMIApi.class);
-
- org.jclouds.ec2.domain.Image ec2Image = createMock(org.jclouds.ec2.domain.Image.class);
- Image image = createNiceMock(Image.class);
- Set<? extends org.jclouds.ec2.domain.Image> images = ImmutableSet.<org.jclouds.ec2.domain.Image> of(ec2Image);
-
- expect(caller.getAMIApi()).andReturn((Optional) Optional.of(client)).atLeastOnce();
- expect(client.describeImagesInRegion("region", imageIds("ami"))).andReturn(Set.class.cast(images));
- expect(parser.apply(ec2Image)).andThrow(new NoSuchElementException());
-
- replay(caller);
- replay(image);
- replay(parser);
- replay(client);
-
- RegionAndIdToImage function = new RegionAndIdToImage(parser, caller);
-
- assertEquals(function.load(new RegionAndName("region", "ami")), null);
-
- verify(caller);
- verify(image);
- verify(parser);
- verify(client);
-
- }
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/options/EC2TemplateOptionsTest.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/options/EC2TemplateOptionsTest.java b/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/options/EC2TemplateOptionsTest.java
deleted file mode 100644
index a3f6cde..0000000
--- a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/options/EC2TemplateOptionsTest.java
+++ /dev/null
@@ -1,325 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.ec2.compute.options;
-
-import static org.jclouds.ec2.compute.options.EC2TemplateOptions.Builder.authorizePublicKey;
-import static org.jclouds.ec2.compute.options.EC2TemplateOptions.Builder.blockOnPort;
-import static org.jclouds.ec2.compute.options.EC2TemplateOptions.Builder.inboundPorts;
-import static org.jclouds.ec2.compute.options.EC2TemplateOptions.Builder.installPrivateKey;
-import static org.jclouds.ec2.compute.options.EC2TemplateOptions.Builder.keyPair;
-import static org.jclouds.ec2.compute.options.EC2TemplateOptions.Builder.noKeyPair;
-import static org.jclouds.ec2.compute.options.EC2TemplateOptions.Builder.securityGroups;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-
-import java.io.IOException;
-
-import com.google.common.collect.ImmutableSet;
-import org.jclouds.compute.options.TemplateOptions;
-import org.testng.annotations.Test;
-
-/**
- * Tests possible uses of EC2TemplateOptions and EC2TemplateOptions.Builder.*
- */
-public class EC2TemplateOptionsTest {
-
- public void testAs() {
- TemplateOptions options = new EC2TemplateOptions();
- assertEquals(options.as(EC2TemplateOptions.class), options);
- }
-
- @Test(expectedExceptions = NullPointerException.class, expectedExceptionsMessageRegExp = "all security groups must be non-empty")
- public void testsecurityGroupsIterableBadFormat() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- options.securityGroups(ImmutableSet.of("group1", ""));
- }
-
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void testsecurityGroupsIterableEmptyNotOk() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- options.securityGroups(ImmutableSet.<String> of());
- }
-
- @Test
- public void testsecurityGroupsIterable() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- options.securityGroups(ImmutableSet.of("group1", "group2"));
- assertEquals(options.getGroups(), ImmutableSet.of("group1", "group2"));
-
- }
-
- @Test
- public void testsecurityGroupsIterableStatic() {
- EC2TemplateOptions options = securityGroups(ImmutableSet.of("group1", "group2"));
- assertEquals(options.getGroups(), ImmutableSet.of("group1", "group2"));
- }
-
- @Test(expectedExceptions = NullPointerException.class, expectedExceptionsMessageRegExp = "all security groups must be non-empty")
- public void testsecurityGroupsVarArgsBadFormat() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- options.securityGroups("mygroup", "");
- }
-
- @Test
- public void testsecurityGroupsVarArgs() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- options.securityGroups("group1", "group2");
- assertEquals(options.getGroups(), ImmutableSet.of("group1", "group2"));
-
- }
-
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void testsecurityGroupsVarArgsEmptyNotOk() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- options.securityGroups();
- }
-
- @Test
- public void testDefaultGroupsVarArgsEmpty() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- assertEquals(options.getGroups(), ImmutableSet.of());
- }
-
- @Test
- public void testsecurityGroupsVarArgsStatic() {
- EC2TemplateOptions options = securityGroups("group1", "group2");
- assertEquals(options.getGroups(), ImmutableSet.of("group1", "group2"));
- }
-
- @Test(expectedExceptions = NullPointerException.class, expectedExceptionsMessageRegExp = "use noKeyPair option to request boot without a keypair")
- public void testkeyPairBadFormat() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- options.keyPair("");
- }
-
- @Test(expectedExceptions = IllegalStateException.class)
- public void testkeyPairAndNoKeyPair() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- options.keyPair("mykeypair");
- options.noKeyPair();
- }
-
- @Test(expectedExceptions = IllegalStateException.class)
- public void testNoKeyPairAndKeyPair() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- options.noKeyPair();
- options.keyPair("mykeypair");
- }
-
- @Test
- public void testkeyPair() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- options.keyPair("mykeypair");
- assertEquals(options.getKeyPair(), "mykeypair");
- }
-
- @Test
- public void testNullkeyPair() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- assertEquals(options.getKeyPair(), null);
- }
-
- @Test
- public void testkeyPairStatic() {
- EC2TemplateOptions options = keyPair("mykeypair");
- assertEquals(options.getKeyPair(), "mykeypair");
- }
-
- @Test(expectedExceptions = NullPointerException.class)
- public void testkeyPairNPE() {
- keyPair(null);
- }
-
- @Test
- public void testnoKeyPair() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- options.noKeyPair();
- assertEquals(options.getKeyPair(), null);
- assert !options.shouldAutomaticallyCreateKeyPair();
- }
-
- @Test
- public void testFalsenoKeyPair() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- assertEquals(options.getKeyPair(), null);
- assert options.shouldAutomaticallyCreateKeyPair();
- }
-
- @Test
- public void testnoKeyPairStatic() {
- EC2TemplateOptions options = noKeyPair();
- assertEquals(options.getKeyPair(), null);
- assert !options.shouldAutomaticallyCreateKeyPair();
- }
-
- // superclass tests
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void testinstallPrivateKeyBadFormat() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- options.installPrivateKey("whompy");
- }
-
- @Test
- public void testinstallPrivateKey() throws IOException {
- EC2TemplateOptions options = new EC2TemplateOptions();
- options.installPrivateKey("-----BEGIN RSA PRIVATE KEY-----");
- assertEquals(options.getPrivateKey(), "-----BEGIN RSA PRIVATE KEY-----");
- }
-
- @Test
- public void testNullinstallPrivateKey() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- assertEquals(options.getPrivateKey(), null);
- }
-
- @Test
- public void testinstallPrivateKeyStatic() throws IOException {
- EC2TemplateOptions options = installPrivateKey("-----BEGIN RSA PRIVATE KEY-----");
- assertEquals(options.getPrivateKey(), "-----BEGIN RSA PRIVATE KEY-----");
- }
-
- @Test(expectedExceptions = NullPointerException.class)
- public void testinstallPrivateKeyNPE() {
- installPrivateKey(null);
- }
-
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void testauthorizePublicKeyBadFormat() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- options.authorizePublicKey("whompy");
- }
-
- @Test
- public void testauthorizePublicKey() throws IOException {
- EC2TemplateOptions options = new EC2TemplateOptions();
- options.authorizePublicKey("ssh-rsa");
- assertEquals(options.getPublicKey(), "ssh-rsa");
- }
-
- @Test
- public void testNullauthorizePublicKey() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- assertEquals(options.getPublicKey(), null);
- }
-
- @Test
- public void testauthorizePublicKeyStatic() throws IOException {
- EC2TemplateOptions options = authorizePublicKey("ssh-rsa");
- assertEquals(options.getPublicKey(), "ssh-rsa");
- }
-
- @Test(expectedExceptions = NullPointerException.class)
- public void testauthorizePublicKeyNPE() {
- authorizePublicKey(null);
- }
-
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void testblockOnPortBadFormat() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- options.blockOnPort(-1, -1);
- }
-
- @Test
- public void testblockOnPort() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- options.blockOnPort(22, 30);
- assertEquals(options.getPort(), 22);
- assertEquals(options.getSeconds(), 30);
-
- }
-
- @Test
- public void testNullblockOnPort() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- assertEquals(options.getPort(), -1);
- assertEquals(options.getSeconds(), -1);
- }
-
- @Test
- public void testblockOnPortStatic() {
- EC2TemplateOptions options = blockOnPort(22, 30);
- assertEquals(options.getPort(), 22);
- assertEquals(options.getSeconds(), 30);
- }
-
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void testinboundPortsBadFormat() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- options.inboundPorts(-1, -1);
- }
-
- @Test
- public void testinboundPorts() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- options.inboundPorts(22, 30);
- assertEquals(options.getInboundPorts()[0], 22);
- assertEquals(options.getInboundPorts()[1], 30);
-
- }
-
- @Test
- public void testDefaultOpen22() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- assertEquals(options.getInboundPorts()[0], 22);
- }
-
- @Test
- public void testinboundPortsStatic() {
- EC2TemplateOptions options = inboundPorts(22, 30);
- assertEquals(options.getInboundPorts()[0], 22);
- assertEquals(options.getInboundPorts()[1], 30);
- }
-
- @Test
- public void testMaxCountDefault() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- assertEquals(options.getMaxCount(), 0);
- }
-
- @Test
- public void testMaxCount() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- options.maxCount(2);
- assertEquals(options.getMaxCount(), 2);
- }
-
- @Test
- public void testMaxCountNull() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- options.maxCount(null);
- assertEquals(options.getMaxCount(), 0);
- }
-
- @Test
- public void testClientTokenDefault() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- assertNull(options.getClientToken());
- }
-
- @Test
- public void testClientToken() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- options.clientToken("some-token");
- assertEquals(options.getClientToken(), "some-token");
- }
-
- @Test(expectedExceptions = NullPointerException.class)
- public void testClientTokenNPE() {
- EC2TemplateOptions options = new EC2TemplateOptions();
- options.clientToken(null);
- }
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java b/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java
deleted file mode 100644
index 527123a..0000000
--- a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java
+++ /dev/null
@@ -1,575 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.ec2.compute.strategy;
-
-import static com.google.common.io.BaseEncoding.base64;
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-import static org.testng.Assert.assertEquals;
-
-import javax.inject.Provider;
-import java.lang.reflect.Method;
-import java.util.Set;
-import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.ExecutionException;
-
-import com.google.common.base.Function;
-import com.google.common.cache.LoadingCache;
-import com.google.common.collect.ImmutableMultimap;
-import com.google.common.collect.ImmutableSet;
-import org.jclouds.aws.domain.Region;
-import org.jclouds.compute.domain.Hardware;
-import org.jclouds.compute.domain.Template;
-import org.jclouds.compute.functions.GroupNamingConvention;
-import org.jclouds.compute.options.TemplateOptions;
-import org.jclouds.domain.LoginCredentials;
-import org.jclouds.ec2.compute.domain.EC2HardwareBuilder;
-import org.jclouds.ec2.compute.domain.RegionAndName;
-import org.jclouds.ec2.compute.domain.RegionNameAndIngressRules;
-import org.jclouds.ec2.compute.options.EC2TemplateOptions;
-import org.jclouds.ec2.domain.BlockDeviceMapping;
-import org.jclouds.ec2.domain.KeyPair;
-import org.jclouds.ec2.options.RunInstancesOptions;
-import org.jclouds.scriptbuilder.domain.Statements;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", singleThreaded = true, testName = "CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest")
-public class CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest {
-
- public static final LoginCredentials CREDENTIALS = LoginCredentials
- .builder()
- .privateKey(
- "-----BEGIN RSA PRIVATE KEY-----\n"
- + "MIIEowIBAAKCAQEA0CbFlhSdbMdad2ux2BVqk6Ut5fLKb0CdbqubGcEBfwsSz9Rp4Ile76P90MpV\n"
- + "W1BGKL5V4MO+flG6dZnRWPVmgrNVyDTmEsALiMGjfEwbACEZ1A8C6mPa36wWO7MlxuyMjg8OczTB\n"
- + "EXnHNDpxE5a6KowJtzFlmgjHk2Y+Q42UIqPx47lQUv5bdMDCnfNNomSzTVRjOZLUkDja+ybCKdux\n"
- + "gqTsuInhuBRMx+wxff8Z43ECdJV6UPoXK3der1dlZunxGCFkCeYq0kCX7FZ7PV35X744jqhD8P+7\n"
- + "y5prO4W+M3DWgChUx0OlbDbSHtDVlcfdbj/+4AKYKU6rQOqh+4DPDQIDAQABAoIBAHjQuEiXKJSV\n"
- + "1U2RZcVtENInws9AL/2I/Jfa5Qh6vTqXG9EjklywfzkK72x7tDVvD3ngmAoAs5WwLFDL+fXvYhOk\n"
- + "sbql8ZCahVdYRWME7XsSu2IZYHDZipXe1XzLS7b9X8uos5Ns4E8bZuNKtI1RJDdD1vPMqRNR2z0T\n"
- + "0Dn3eC7t+t+t7PWaK5AXu2ot7DoOeG1QhqJbwd5pMkIn2ydBILytgmDk/2P3EtJGePIJIeQBicmw\n"
- + "Z0KrJFa/K2cC8AtmMJUoZMo+mh1yemDbDLCZW30PjFHbZtcszS2cydAgq/HDFkZynvZG0zhbx/To\n"
- + "jzcNza1AyypYwOwb2/9/ulXZp0UCgYEA+QFgWDfYLH2zwjU5b6e0UbIyd/X/yRZ+L8lOEBd0Bbu8\n"
- + "qO3txaDbwi7o2mG7pJENHJ3u62CHjgTGDNW9V9Q8eNoGtj3uHvMvi7FdDEK8B6izdZyR7hmZmQ/5\n"
- + "MIldelyiGZlz1KBSoy4FsCpA7hV7cI6H6x+Im24NxG90/wd/EgMCgYEA1f+cUyUisIO3yKOCf0hQ\n"
- + "aL289q2//F2cbvBxtki6I8JzTg1H3oTO2WVrXQeCA3a/yiuRUatgGH4mxrpCF6byVJyqrEWAj4kU\n"
- + "uTbhMgIYhLGoaF1e+vMirCRXUXox0i5X976ASzHn64V9JSd1B+UbKfpcFTYYnChmrRDzmhKN1a8C\n"
- + "gYBTvIHAyO7ab18/BRUOllAOVSWhr8lXv0eqHEEzKh/rOaoFCRY3qpOcZpgJsGogumK1Z+sLnoeX\n"
- + "W8WaVVp6KbY4UeGF8aedItyvVnLbB6ohzTqkZ4Wvk05S6cs75kXYO0SL5U3NiCiiFXz2NA9nwTOk\n"
- + "s1nD2PPgiQ76Kx0mEkhKLwKBgFhHEJqv+AZu37Kx2NRe5WS/2KK9/DPD/hM5tv7mM3sq7Nvm2J3v\n"
- + "lVDS6J5AyZ5aLzXcER9qncKcz6wtC7SsFs1Wr4VPSoBroRPikrVJbgnXK8yZr+O/xq7Scv7WdJTq\n"
- + "rzkw6cWbObvLnltkUn/GQBVqBPBvF2nbtLdyBbuqKb5bAoGBAI1+aoJnvXEXxT4UHrMkQcY0eXRz\n"
- + "3UdbzJmtjMW9CR6l9s11mV6PcZP4qnODp3nd6a+lPeL3wVYQ47DsTJ/Bx5dI17zA5mU57n6mV0a3\n"
- + "DbSoPKSdaKTQdo2THnVE9P9sPKZWueAcsE4Yw/qcTjoxrtUnAH/AXN250v0tkKIOvMhu\n"
- + "-----END RSA PRIVATE KEY-----").build();
-
- public static final KeyPair KEYPAIR = KeyPair.builder().region(Region.AP_SOUTHEAST_1).keyName("myKeyPair")
- .sha1OfPrivateKey("13:36:74:b9:56:bb:07:96:c0:19:ab:00:7f:9f:06:d2:16:a0:45:32")
- .fingerprint("60:15:d1:f1:d9:e2:3c:e2:ee:a9:64:6a:42:a7:34:0c").keyMaterial(CREDENTIALS.credential).build();
-
- private static final Provider<RunInstancesOptions> OPTIONS_PROVIDER = new javax.inject.Provider<RunInstancesOptions>() {
-
- @Override
- public RunInstancesOptions get() {
- return new RunInstancesOptions();
- }
-
- };
-
- public void testExecuteWithDefaultOptionsEC2() throws SecurityException, NoSuchMethodException {
- // setup constants
- String region = Region.AP_SOUTHEAST_1;
- String group = "group";
- Hardware size = EC2HardwareBuilder.m1_small().build();
- String systemGeneratedKeyPairName = "systemGeneratedKeyPair";
- String generatedGroup = "group";
- Set<String> generatedGroups = ImmutableSet.of(generatedGroup);
-
- // create mocks
- CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = createMock(
- CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.class,
- new Method[] {
- CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.class
- .getDeclaredMethod("getOptionsProvider"),
- CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.class.getDeclaredMethod(
- "createNewKeyPairUnlessUserSpecifiedOtherwise", String.class, String.class,
- TemplateOptions.class),
- CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.class.getDeclaredMethod(
- "getSecurityGroupsForTagAndOptions", String.class, String.class, TemplateOptions.class) });
-
- EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
- Template template = createMock(Template.class);
-
- // setup expectations
- expect(strategy.getOptionsProvider()).andReturn(OPTIONS_PROVIDER);
- expect(template.getHardware()).andReturn(size).atLeastOnce();
- expect(template.getOptions()).andReturn(options).atLeastOnce();
- expect(options.getBlockDeviceMappings()).andReturn(ImmutableSet.<BlockDeviceMapping> of()).atLeastOnce();
- expect(strategy.createNewKeyPairUnlessUserSpecifiedOtherwise(region, group, options)).andReturn(
- systemGeneratedKeyPairName);
- expect(strategy.getSecurityGroupsForTagAndOptions(region, group, options)).andReturn(generatedGroups);
- expect(options.getUserData()).andReturn(null);
- expect(options.getClientToken()).andReturn(null);
-
- // replay mocks
- replay(options);
- replay(template);
- replay(strategy);
-
- // run
- RunInstancesOptions customize = strategy.execute(region, group, template);
- assertEquals(customize.buildQueryParameters(), ImmutableMultimap.<String, String> of());
- assertEquals(
- customize.buildFormParameters().entries(),
- ImmutableMultimap.<String, String> of("InstanceType", size.getProviderId(), "SecurityGroup.1",
- generatedGroup, "KeyName", systemGeneratedKeyPairName).entries());
- assertEquals(customize.buildRequestHeaders(), ImmutableMultimap.<String, String> of());
- assertEquals(customize.buildStringPayload(), null);
-
- // verify mocks
- verify(options);
- verify(template);
- verify(strategy);
- }
-
- public void testExecuteWithUserData() throws SecurityException, NoSuchMethodException {
- // setup constants
- String region = Region.AP_SOUTHEAST_1;
- String group = "group";
- Hardware size = EC2HardwareBuilder.m1_small().build();
- String systemGeneratedKeyPairName = "systemGeneratedKeyPair";
- String generatedGroup = "group";
- Set<String> generatedGroups = ImmutableSet.of(generatedGroup);
-
- // create mocks
- CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = createMock(
- CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.class,
- new Method[] {
- CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.class
- .getDeclaredMethod("getOptionsProvider"),
- CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.class.getDeclaredMethod(
- "createNewKeyPairUnlessUserSpecifiedOtherwise", String.class, String.class,
- TemplateOptions.class),
- CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.class.getDeclaredMethod(
- "getSecurityGroupsForTagAndOptions", String.class, String.class, TemplateOptions.class) });
-
- EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
- Template template = createMock(Template.class);
-
- // setup expectations
- expect(strategy.getOptionsProvider()).andReturn(OPTIONS_PROVIDER);
- expect(template.getHardware()).andReturn(size).atLeastOnce();
- expect(template.getOptions()).andReturn(options).atLeastOnce();
- expect(options.getBlockDeviceMappings()).andReturn(ImmutableSet.<BlockDeviceMapping> of()).atLeastOnce();
- expect(options.getClientToken()).andReturn("some-token");
- expect(strategy.createNewKeyPairUnlessUserSpecifiedOtherwise(region, group, options)).andReturn(
- systemGeneratedKeyPairName);
- expect(strategy.getSecurityGroupsForTagAndOptions(region, group, options)).andReturn(generatedGroups);
- expect(options.getUserData()).andReturn("hello".getBytes());
-
- // replay mocks
- replay(options);
- replay(template);
- replay(strategy);
-
- // run
- RunInstancesOptions customize = strategy.execute(region, group, template);
- assertEquals(customize.buildQueryParameters(), ImmutableMultimap.<String, String> of());
- assertEquals(
- customize.buildFormParameters().entries(),
- ImmutableMultimap.<String, String> of("InstanceType", size.getProviderId(), "SecurityGroup.1", "group",
- "KeyName", systemGeneratedKeyPairName, "UserData", base64().encode("hello".getBytes()),
- "ClientToken", "some-token").entries());
-
- assertEquals(customize.buildRequestHeaders(), ImmutableMultimap.<String, String> of());
- assertEquals(customize.buildStringPayload(), null);
-
- // verify mocks
- verify(options);
- verify(template);
- verify(strategy);
- }
-
- public void testCreateNewKeyPairUnlessUserSpecifiedOtherwise_reusesKeyWhenToldTo() {
- // setup constants
- String region = Region.AP_SOUTHEAST_1;
- String group = "group";
- String userSuppliedKeyPair = "myKeyPair";
-
- // create mocks
- CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = setupStrategy();
- EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
- KeyPair keyPair = createMock(KeyPair.class);
-
- // setup expectations
- expect(options.getKeyPair()).andReturn(userSuppliedKeyPair);
- expect(options.getLoginPrivateKey()).andReturn(null);
- expect(options.getRunScript()).andReturn(null);
-
- // replay mocks
- replay(options);
- replay(keyPair);
- replayStrategy(strategy);
-
- // run
- assertEquals(strategy.createNewKeyPairUnlessUserSpecifiedOtherwise(region, group, options), userSuppliedKeyPair);
-
- // verify mocks
- verify(options);
- verify(keyPair);
- verifyStrategy(strategy);
- }
-
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void testCreateNewKeyPairUnlessUserSpecifiedOtherwise_reusesKeyWhenToldToWithRunScriptButNoCredentials() {
- // setup constants
- String region = Region.AP_SOUTHEAST_1;
- String group = "group";
- String userSuppliedKeyPair = "myKeyPair";
-
- // create mocks
- CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = setupStrategy();
- EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
- KeyPair keyPair = createMock(KeyPair.class);
-
- // setup expectations
- expect(options.getKeyPair()).andReturn(userSuppliedKeyPair);
- expect(options.getLoginUser()).andReturn(null);
- expect(options.getLoginPassword()).andReturn(null);
- expect(options.getLoginPrivateKey()).andReturn(null);
- expect(options.shouldAuthenticateSudo()).andReturn(null);
- expect(options.getRunScript()).andReturn(Statements.exec("echo foo"));
-
- expect(strategy.credentialsMap.containsKey(new RegionAndName(region, userSuppliedKeyPair))).andReturn(false);
-
- // replay mocks
- replay(options);
- replay(keyPair);
- replayStrategy(strategy);
-
- // run
- assertEquals(strategy.createNewKeyPairUnlessUserSpecifiedOtherwise(region, group, options), userSuppliedKeyPair);
-
- // verify mocks
- verify(options);
- verify(keyPair);
- verifyStrategy(strategy);
- }
-
- public void testCreateNewKeyPairUnlessUserSpecifiedOtherwise_reusesKeyWhenToldToWithRunScriptAndCredentialsAlreadyInMap() {
- // setup constants
- String region = Region.AP_SOUTHEAST_1;
- String group = "group";
- String userSuppliedKeyPair = "myKeyPair";
-
- // create mocks
- CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = setupStrategy();
- EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
- KeyPair keyPair = createMock(KeyPair.class);
-
- // setup expectations
- expect(options.getKeyPair()).andReturn(userSuppliedKeyPair);
- expect(options.getLoginPrivateKey()).andReturn(null);
- expect(options.getRunScript()).andReturn(Statements.exec("echo foo"));
-
- expect(strategy.credentialsMap.containsKey(new RegionAndName(region, userSuppliedKeyPair))).andReturn(true);
-
- // replay mocks
- replay(options);
- replay(keyPair);
- replayStrategy(strategy);
-
- // run
- assertEquals(strategy.createNewKeyPairUnlessUserSpecifiedOtherwise(region, group, options), userSuppliedKeyPair);
-
- // verify mocks
- verify(options);
- verify(keyPair);
- verifyStrategy(strategy);
- }
-
- public void testCreateNewKeyPairUnlessUserSpecifiedOtherwise_reusesKeyWhenToldToWithRunScriptAndCredentialsSpecified() {
- // setup constants
- String region = Region.AP_SOUTHEAST_1;
- String group = "group";
- String userSuppliedKeyPair = "myKeyPair";
-
- // create mocks
- CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = setupStrategy();
- EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
- KeyPair keyPair = createMock(KeyPair.class);
-
- // setup expectations
- expect(options.getKeyPair()).andReturn(userSuppliedKeyPair);
- expect(options.getLoginPrivateKey()).andReturn(CREDENTIALS.getOptionalPrivateKey().get()).atLeastOnce();
-
- // Notice that the fingerprint and sha1 generated
- expect(strategy.credentialsMap.put(new RegionAndName(region, userSuppliedKeyPair), KEYPAIR)).andReturn(null);
- expect(options.getRunScript()).andReturn(Statements.exec("echo foo"));
- expect(strategy.credentialsMap.containsKey(new RegionAndName(region, userSuppliedKeyPair))).andReturn(true);
-
- // replay mocks
- replay(options);
- replay(keyPair);
- replayStrategy(strategy);
-
- // run
- assertEquals(strategy.createNewKeyPairUnlessUserSpecifiedOtherwise(region, group, options), userSuppliedKeyPair);
-
- // verify mocks
- verify(options);
- verify(keyPair);
- verifyStrategy(strategy);
- }
-
- public void testCreateNewKeyPairUnlessUserSpecifiedOtherwise_createsNewKeyPairAndReturnsItsNameByDefault()
- throws ExecutionException {
- // setup constants
- String region = Region.AP_SOUTHEAST_1;
- String group = "group";
- String userSuppliedKeyPair = null;
- boolean shouldAutomaticallyCreateKeyPair = true;
- String systemGeneratedKeyPairName = "systemGeneratedKeyPair";
-
- // create mocks
- CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = setupStrategy();
- EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
- KeyPair keyPair = createMock(KeyPair.class);
-
- // setup expectations
- expect(options.getKeyPair()).andReturn(userSuppliedKeyPair);
- expect(options.shouldAutomaticallyCreateKeyPair()).andReturn(shouldAutomaticallyCreateKeyPair);
- expect(keyPair.getKeyName()).andReturn(systemGeneratedKeyPairName).atLeastOnce();
- expect(strategy.credentialsMap.containsKey(new RegionAndName(region, group))).andReturn(true);
- expect(strategy.credentialsMap.get(new RegionAndName(region, group))).andReturn(keyPair);
- expect(options.getRunScript()).andReturn(null);
-
- // replay mocks
- replay(options);
- replay(keyPair);
- replayStrategy(strategy);
-
- // run
- assertEquals(strategy.createNewKeyPairUnlessUserSpecifiedOtherwise(region, group, options),
- systemGeneratedKeyPairName);
-
- // verify mocks
- verify(options);
- verify(keyPair);
- verifyStrategy(strategy);
- }
-
- public void testCreateNewKeyPairUnlessUserSpecifiedOtherwise_doesntCreateAKeyPairAndReturnsNullWhenToldNotTo() {
- // setup constants
- String region = Region.AP_SOUTHEAST_1;
- String group = "group";
- String userSuppliedKeyPair = null;
- boolean shouldAutomaticallyCreateKeyPair = false; // here's the important
- // part!
-
- // create mocks
- CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = setupStrategy();
- EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
- KeyPair keyPair = createMock(KeyPair.class);
-
- // setup expectations
- expect(options.getKeyPair()).andReturn(userSuppliedKeyPair);
- expect(options.getRunScript()).andReturn(null);
- expect(options.shouldAutomaticallyCreateKeyPair()).andReturn(shouldAutomaticallyCreateKeyPair);
-
- // replay mocks
- replay(options);
- replay(keyPair);
- replayStrategy(strategy);
-
- // run
- assertEquals(strategy.createNewKeyPairUnlessUserSpecifiedOtherwise(region, group, options), null);
-
- // verify mocks
- verify(options);
- verify(keyPair);
- verifyStrategy(strategy);
- }
-
- public void testGetSecurityGroupsForTagAndOptions_createsNewGroupByDefaultWhenNoPortsAreSpecifiedWhenDoesntExist()
- throws ExecutionException {
- // setup constants
- String region = Region.AP_SOUTHEAST_1;
- String group = "group";
- String generatedMarkerGroup = "jclouds#group";
- Set<String> groupIds = ImmutableSet.<String> of();
- int[] ports = {};
- boolean shouldAuthorizeSelf = true;
- Set<String> returnVal = ImmutableSet.<String> of(generatedMarkerGroup);
-
- // create mocks
- CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = setupStrategy();
- EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
-
- // setup expectations
- expect(options.getGroups()).andReturn(groupIds).atLeastOnce();
- expect(options.getInboundPorts()).andReturn(ports).atLeastOnce();
- RegionNameAndIngressRules regionNameAndIngressRules = new RegionNameAndIngressRules(region, generatedMarkerGroup,
- ports, shouldAuthorizeSelf);
- expect(strategy.securityGroupMap.getUnchecked(regionNameAndIngressRules)).andReturn(group);
-
- // replay mocks
- replay(options);
- replayStrategy(strategy);
-
- // run
- assertEquals(strategy.getSecurityGroupsForTagAndOptions(region, group, options), returnVal);
-
- // verify mocks
- verify(options);
- verifyStrategy(strategy);
- }
-
- public void testGetSecurityGroupsForTagAndOptions_createsNewGroupByDefaultWhenPortsAreSpecifiedWhenDoesntExist()
- throws ExecutionException {
- // setup constants
- String region = Region.AP_SOUTHEAST_1;
- String group = "group";
- String generatedMarkerGroup = "jclouds#group";
- Set<String> groupIds = ImmutableSet.<String> of();
- int[] ports = { 22, 80 };
- boolean shouldAuthorizeSelf = true;
- Set<String> returnVal = ImmutableSet.<String> of(generatedMarkerGroup);
-
- // create mocks
- CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = setupStrategy();
- EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
-
- // setup expectations
- expect(options.getGroups()).andReturn(groupIds).atLeastOnce();
- expect(options.getInboundPorts()).andReturn(ports).atLeastOnce();
- RegionNameAndIngressRules regionNameAndIngressRules = new RegionNameAndIngressRules(region, generatedMarkerGroup,
- ports, shouldAuthorizeSelf);
- expect(strategy.securityGroupMap.getUnchecked(regionNameAndIngressRules)).andReturn(generatedMarkerGroup);
-
- // replay mocks
- replay(options);
- replayStrategy(strategy);
-
- // run
- assertEquals(strategy.getSecurityGroupsForTagAndOptions(region, group, options), returnVal);
-
- // verify mocks
- verify(options);
- verifyStrategy(strategy);
- }
-
- public void testGetSecurityGroupsForTagAndOptions_reusesGroupByDefaultWhenNoPortsAreSpecifiedWhenDoesExist()
- throws ExecutionException {
- // setup constants
- String region = Region.AP_SOUTHEAST_1;
- String group = "group";
- String generatedMarkerGroup = "jclouds#group";
- Set<String> groupIds = ImmutableSet.<String> of();
- int[] ports = {};
- boolean shouldAuthorizeSelf = true;
- Set<String> returnVal = ImmutableSet.<String> of(generatedMarkerGroup);
-
- // create mocks
- CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = setupStrategy();
- EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
-
- // setup expectations
- expect(options.getGroups()).andReturn(groupIds).atLeastOnce();
- expect(options.getInboundPorts()).andReturn(ports).atLeastOnce();
- RegionNameAndIngressRules regionNameAndIngressRules = new RegionNameAndIngressRules(region, generatedMarkerGroup,
- ports, shouldAuthorizeSelf);
- expect(strategy.securityGroupMap.getUnchecked(regionNameAndIngressRules)).andReturn(generatedMarkerGroup);
-
- // replay mocks
- replay(options);
- replayStrategy(strategy);
-
- // run
- assertEquals(strategy.getSecurityGroupsForTagAndOptions(region, group, options), returnVal);
-
- // verify mocks
- verify(options);
- verifyStrategy(strategy);
- }
-
- public void testGetSecurityGroupsForTagAndOptions_reusesGroupByDefaultWhenNoPortsAreSpecifiedWhenDoesExistAndAcceptsUserSuppliedGroups() {
- // setup constants
- String region = Region.AP_SOUTHEAST_1;
- String group = "group";
- String generatedMarkerGroup = "jclouds#group";
- Set<String> groupIds = ImmutableSet.<String> of("group1", "group2");
- int[] ports = {};
- boolean shouldAuthorizeSelf = true;
- boolean groupExisted = true;
- Set<String> returnVal = ImmutableSet.<String> of(generatedMarkerGroup, "group1", "group2");
-
- // create mocks
- CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = setupStrategy();
- EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
-
- // setup expectations
- expect(options.getGroups()).andReturn(groupIds).atLeastOnce();
- RegionNameAndIngressRules regionNameAndIngressRules = new RegionNameAndIngressRules(region, generatedMarkerGroup,
- ports, shouldAuthorizeSelf);
-
- expect(strategy.securityGroupMap.getUnchecked(regionNameAndIngressRules))
- .andReturn(groupExisted ? "group" : null);
-
- // replay mocks
- replay(options);
- replayStrategy(strategy);
-
- // run
- assertEquals(strategy.getSecurityGroupsForTagAndOptions(region, group, options), returnVal);
-
- // verify mocks
- verify(options);
- verifyStrategy(strategy);
- }
-
- private void verifyStrategy(CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy) {
- verify(strategy.makeKeyPair);
- verify(strategy.credentialsMap);
- verify(strategy.securityGroupMap);
- }
-
- @SuppressWarnings("unchecked")
- private CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions setupStrategy() {
- Function<RegionAndName, KeyPair> makeKeyPair = createMock(Function.class);
- ConcurrentMap<RegionAndName, KeyPair> credentialsMap = createMock(ConcurrentMap.class);
- LoadingCache<RegionAndName, String> securityGroupMap = createMock(LoadingCache.class);
- GroupNamingConvention.Factory namingConventionFactory = createMock(GroupNamingConvention.Factory.class);
- GroupNamingConvention namingConvention = createMock(GroupNamingConvention.class);
- expect(namingConventionFactory.create()).andReturn(namingConvention).anyTimes();
- expect(namingConvention.sharedNameForGroup("group")).andReturn("jclouds#group").anyTimes();
- replay(namingConventionFactory);
- replay(namingConvention);
-
- return new CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions(makeKeyPair, credentialsMap,
- securityGroupMap, OPTIONS_PROVIDER, namingConventionFactory);
- }
-
- private void replayStrategy(CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy) {
- replay(strategy.makeKeyPair);
- replay(strategy.credentialsMap);
- replay(strategy.securityGroupMap);
- }
-
-}