http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/extensions/EC2SecurityGroupExtensionExpectTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/extensions/EC2SecurityGroupExtensionExpectTest.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/extensions/EC2SecurityGroupExtensionExpectTest.java deleted file mode 100644 index 496026c..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/extensions/EC2SecurityGroupExtensionExpectTest.java +++ /dev/null @@ -1,583 +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.extensions; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertTrue; - -import java.util.Set; - -import javax.ws.rs.core.MediaType; - -import org.jclouds.compute.domain.SecurityGroup; -import org.jclouds.compute.domain.SecurityGroupBuilder; -import org.jclouds.compute.extensions.SecurityGroupExtension; -import org.jclouds.domain.LocationBuilder; -import org.jclouds.domain.LocationScope; -import org.jclouds.ec2.compute.domain.RegionAndName; -import org.jclouds.ec2.compute.internal.BaseEC2ComputeServiceExpectTest; -import org.jclouds.http.HttpRequest; -import org.jclouds.http.HttpResponse; -import org.jclouds.net.domain.IpPermission; -import org.jclouds.net.domain.IpProtocol; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableMap.Builder; -import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Iterables; -import com.google.common.collect.LinkedHashMultimap; -import com.google.common.collect.Multimap; -import com.google.common.collect.Sets; - -/** - * - * @author Adrian Cole - */ -@Test(groups = "unit", testName = "EC2SecurityGroupExtensionExpectTest") -public class EC2SecurityGroupExtensionExpectTest extends BaseEC2ComputeServiceExpectTest { - - public void testListSecurityGroups() { - HttpRequest describeSecurityGroupsAllRequest = - formSigner.filter(HttpRequest.builder() - .method("POST") - .endpoint("https://ec2." + region + ".amazonaws.com/") - .addHeader("Host", "ec2." + region + ".amazonaws.com") - .addFormParam("Action", "DescribeSecurityGroups").build()); - - HttpResponse describeSecurityGroupsAllResponse = - HttpResponse.builder().statusCode(200) - .payload(payloadFromResourceWithContentType( - "/describe_securitygroups_extension_new.xml", MediaType.APPLICATION_XML)).build(); - - Builder<HttpRequest, HttpResponse> requestResponseMap = ImmutableMap.<HttpRequest, HttpResponse> builder(); - requestResponseMap.put(describeRegionsRequest, describeRegionsResponse); - requestResponseMap.put(describeAvailabilityZonesRequest, describeAvailabilityZonesResponse); - requestResponseMap.put(describeSecurityGroupsAllRequest, describeSecurityGroupsAllResponse); - requestResponseMap.put(createKeyPairRequest, createKeyPairResponse); - requestResponseMap.put(createSecurityGroupRequest, createSecurityGroupResponse); - - requestResponseMap.put(authorizeSecurityGroupIngressRequest22, authorizeSecurityGroupIngressResponse); - requestResponseMap.put(authorizeSecurityGroupIngressRequestGroup, authorizeSecurityGroupIngressResponse); - requestResponseMap.put(describeInstanceRequest, describeInstanceResponse); - - - SecurityGroupExtension extension = requestsSendResponses(requestResponseMap.build()).getSecurityGroupExtension().get(); - - Set<SecurityGroup> groups = extension.listSecurityGroups(); - assertEquals(2, groups.size()); - } - - public void testListSecurityGroupsInLocation() { - HttpRequest describeSecurityGroupsAllRequest = - formSigner.filter(HttpRequest.builder() - .method("POST") - .endpoint("https://ec2." + region + ".amazonaws.com/") - .addHeader("Host", "ec2." + region + ".amazonaws.com") - .addFormParam("Action", "DescribeSecurityGroups").build()); - - HttpResponse describeSecurityGroupsAllResponse = - HttpResponse.builder().statusCode(200) - .payload(payloadFromResourceWithContentType( - "/describe_securitygroups_extension_new.xml", MediaType.APPLICATION_XML)).build(); - - Builder<HttpRequest, HttpResponse> requestResponseMap = ImmutableMap.<HttpRequest, HttpResponse> builder(); - requestResponseMap.put(describeRegionsRequest, describeRegionsResponse); - requestResponseMap.put(describeAvailabilityZonesRequest, describeAvailabilityZonesResponse); - requestResponseMap.put(describeSecurityGroupsAllRequest, describeSecurityGroupsAllResponse); - requestResponseMap.put(createKeyPairRequest, createKeyPairResponse); - requestResponseMap.put(createSecurityGroupRequest, createSecurityGroupResponse); - - requestResponseMap.put(authorizeSecurityGroupIngressRequest22, authorizeSecurityGroupIngressResponse); - requestResponseMap.put(authorizeSecurityGroupIngressRequestGroup, authorizeSecurityGroupIngressResponse); - requestResponseMap.put(describeInstanceRequest, describeInstanceResponse); - - - SecurityGroupExtension extension = requestsSendResponses(requestResponseMap.build()).getSecurityGroupExtension().get(); - - Set<SecurityGroup> groups = extension.listSecurityGroupsInLocation(new LocationBuilder() - .scope(LocationScope.REGION) - .id(region) - .description("region") - .build()); - assertEquals(2, groups.size()); - } - - - public void testListSecurityGroupsForNode() { - HttpRequest describeSecurityGroupsSingleRequest = - formSigner.filter(HttpRequest.builder() - .method("POST") - .endpoint("https://ec2." + region + ".amazonaws.com/") - .addHeader("Host", "ec2." + region + ".amazonaws.com") - .addFormParam("Action", "DescribeSecurityGroups") - .addFormParam("GroupName.1", "sg-3c6ef654").build()); - - HttpResponse describeSecurityGroupsSingleResponse = - HttpResponse.builder().statusCode(200) - .payload(payloadFromResourceWithContentType( - "/describe_securitygroups_extension_single.xml", MediaType.APPLICATION_XML)).build(); - - HttpResponse describeInstanceWithSGResponse = - HttpResponse.builder().statusCode(200) - .payload(payloadFromResourceWithContentType( - "/describe_instances_running_securitygroups.xml", MediaType.APPLICATION_XML)).build(); - - Builder<HttpRequest, HttpResponse> requestResponseMap = ImmutableMap.<HttpRequest, HttpResponse> builder(); - requestResponseMap.put(describeRegionsRequest, describeRegionsResponse); - requestResponseMap.put(describeAvailabilityZonesRequest, describeAvailabilityZonesResponse); - requestResponseMap.put(describeSecurityGroupsSingleRequest, describeSecurityGroupsSingleResponse); - requestResponseMap.put(createKeyPairRequest, createKeyPairResponse); - requestResponseMap.put(createSecurityGroupRequest, createSecurityGroupResponse); - - requestResponseMap.put(authorizeSecurityGroupIngressRequest22, authorizeSecurityGroupIngressResponse); - requestResponseMap.put(authorizeSecurityGroupIngressRequestGroup, authorizeSecurityGroupIngressResponse); - requestResponseMap.put(describeInstanceRequest, describeInstanceWithSGResponse); - - - SecurityGroupExtension extension = requestsSendResponses(requestResponseMap.build()).getSecurityGroupExtension().get(); - - Set<SecurityGroup> groups = extension.listSecurityGroupsForNode(new RegionAndName(region, "i-2baa5550").slashEncode()); - assertEquals(1, groups.size()); - } - - public void testGetSecurityGroupById() { - HttpRequest describeSecurityGroupsSingleRequest = - 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#some-group").build()); - - HttpResponse describeSecurityGroupsSingleResponse = - HttpResponse.builder().statusCode(200) - .payload(payloadFromResourceWithContentType( - "/describe_securitygroups_extension_single.xml", MediaType.APPLICATION_XML)).build(); - - - Builder<HttpRequest, HttpResponse> requestResponseMap = ImmutableMap.<HttpRequest, HttpResponse> builder(); - requestResponseMap.put(describeRegionsRequest, describeRegionsResponse); - requestResponseMap.put(describeAvailabilityZonesRequest, describeAvailabilityZonesResponse); - requestResponseMap.put(describeSecurityGroupsSingleRequest, describeSecurityGroupsSingleResponse); - requestResponseMap.put(createKeyPairRequest, createKeyPairResponse); - requestResponseMap.put(createSecurityGroupRequest, createSecurityGroupResponse); - - requestResponseMap.put(authorizeSecurityGroupIngressRequest22, authorizeSecurityGroupIngressResponse); - requestResponseMap.put(authorizeSecurityGroupIngressRequestGroup, authorizeSecurityGroupIngressResponse); - - - SecurityGroupExtension extension = requestsSendResponses(requestResponseMap.build()).getSecurityGroupExtension().get(); - - SecurityGroup group = extension.getSecurityGroupById(new RegionAndName(region, "jclouds#some-group").slashEncode()); - assertEquals("sg-3c6ef654", group.getProviderId()); - assertEquals(region + "/jclouds#some-group", group.getId()); - } - - public void testCreateSecurityGroup() { - HttpRequest createSecurityGroupExtRequest = - formSigner.filter(HttpRequest.builder() - .method("POST") - .endpoint("https://ec2." + region + ".amazonaws.com/") - .addHeader("Host", "ec2." + region + ".amazonaws.com") - .addFormParam("Action", "CreateSecurityGroup") - .addFormParam("GroupDescription", "jclouds#some-group") - .addFormParam("GroupName", "jclouds#some-group").build()); - - HttpRequest describeSecurityGroupsSingleRequest = - 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#some-group").build()); - - HttpResponse describeSecurityGroupsSingleResponse = - HttpResponse.builder().statusCode(200) - .payload(payloadFromResourceWithContentType( - "/describe_securitygroups_extension_single.xml", MediaType.APPLICATION_XML)).build(); - - - Builder<HttpRequest, HttpResponse> requestResponseMap = ImmutableMap.<HttpRequest, HttpResponse> builder(); - requestResponseMap.put(describeRegionsRequest, describeRegionsResponse); - requestResponseMap.put(describeAvailabilityZonesRequest, describeAvailabilityZonesResponse); - requestResponseMap.put(describeSecurityGroupsSingleRequest, describeSecurityGroupsSingleResponse); - requestResponseMap.put(createKeyPairRequest, createKeyPairResponse); - requestResponseMap.put(createSecurityGroupExtRequest, createSecurityGroupResponse); - - requestResponseMap.put(authorizeSecurityGroupIngressRequest22, authorizeSecurityGroupIngressResponse); - requestResponseMap.put(authorizeSecurityGroupIngressRequestGroup, authorizeSecurityGroupIngressResponse); - - - SecurityGroupExtension extension = requestsSendResponses(requestResponseMap.build()).getSecurityGroupExtension().get(); - - SecurityGroup group = extension.createSecurityGroup("some-group", new LocationBuilder() - .scope(LocationScope.REGION) - .id(region) - .description("region") - .build()); - - assertEquals("sg-3c6ef654", group.getProviderId()); - assertEquals(region + "/jclouds#some-group", group.getId()); - } - - public void testRemoveSecurityGroup() { - HttpRequest describeSecurityGroupsSingleRequest = - 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#some-group").build()); - - HttpResponse describeSecurityGroupsSingleResponse = - HttpResponse.builder().statusCode(200) - .payload(payloadFromResourceWithContentType( - "/describe_securitygroups_extension_single.xml", MediaType.APPLICATION_XML)).build(); - - HttpRequest deleteSecurityGroupRequest = - formSigner.filter(HttpRequest.builder() - .method("POST") - .endpoint("https://ec2." + region + ".amazonaws.com/") - .addHeader("Host", "ec2." + region + ".amazonaws.com") - .addFormParam("Action", "DeleteSecurityGroup") - .addFormParam("GroupName", "jclouds#some-group").build()); - - HttpResponse deleteSecurityGroupResponse = - HttpResponse.builder().statusCode(200) - .payload(payloadFromResourceWithContentType( - "/delete_securitygroup.xml", MediaType.APPLICATION_XML)).build(); - - Builder<HttpRequest, HttpResponse> requestResponseMap = ImmutableMap.<HttpRequest, HttpResponse> builder(); - requestResponseMap.put(describeRegionsRequest, describeRegionsResponse); - requestResponseMap.put(describeAvailabilityZonesRequest, describeAvailabilityZonesResponse); - requestResponseMap.put(describeSecurityGroupsSingleRequest, describeSecurityGroupsSingleResponse); - requestResponseMap.put(deleteSecurityGroupRequest, deleteSecurityGroupResponse); - requestResponseMap.put(createKeyPairRequest, createKeyPairResponse); - requestResponseMap.put(createSecurityGroupRequest, createSecurityGroupResponse); - - requestResponseMap.put(authorizeSecurityGroupIngressRequest22, authorizeSecurityGroupIngressResponse); - requestResponseMap.put(authorizeSecurityGroupIngressRequestGroup, authorizeSecurityGroupIngressResponse); - - - SecurityGroupExtension extension = requestsSendResponses(requestResponseMap.build()).getSecurityGroupExtension().get(); - - assertTrue(extension.removeSecurityGroup(new RegionAndName(region, "jclouds#some-group").slashEncode())); - } - - public void testAddIpPermissionCidrFromIpPermission() { - HttpRequest describeSecurityGroupsSingleRequest = - 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#some-group").build()); - - HttpResponse describeSecurityGroupsSingleResponse = - HttpResponse.builder().statusCode(200) - .payload(payloadFromResourceWithContentType( - "/describe_securitygroups_extension_cidr.xml", MediaType.APPLICATION_XML)).build(); - - - HttpRequest authorizeSecurityGroupIngressRequestRange = - 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", "40") - .addFormParam("GroupName", "jclouds#some-group") - .addFormParam("IpProtocol", "tcp").build()); - - Builder<HttpRequest, HttpResponse> requestResponseMap = ImmutableMap.<HttpRequest, HttpResponse> builder(); - requestResponseMap.put(describeRegionsRequest, describeRegionsResponse); - requestResponseMap.put(describeAvailabilityZonesRequest, describeAvailabilityZonesResponse); - requestResponseMap.put(describeSecurityGroupsSingleRequest, describeSecurityGroupsSingleResponse); - requestResponseMap.put(createKeyPairRequest, createKeyPairResponse); - requestResponseMap.put(createSecurityGroupRequest, createSecurityGroupResponse); - - requestResponseMap.put(authorizeSecurityGroupIngressRequestRange, authorizeSecurityGroupIngressResponse); - - IpPermission.Builder builder = IpPermission.builder(); - - builder.ipProtocol(IpProtocol.TCP); - builder.fromPort(22); - builder.toPort(40); - builder.cidrBlock("0.0.0.0/0"); - - IpPermission perm = builder.build(); - - SecurityGroupExtension extension = requestsSendResponses(requestResponseMap.build()).getSecurityGroupExtension().get(); - - SecurityGroupBuilder groupBuilder = new SecurityGroupBuilder(); - groupBuilder.id("jclouds#some-group"); - groupBuilder.providerId("sg-3c6ef654"); - groupBuilder.name("jclouds#some-group"); - groupBuilder.location(new LocationBuilder() - .scope(LocationScope.REGION) - .id(region) - .description("region") - .build()); - - SecurityGroup origGroup = groupBuilder.build(); - - SecurityGroup newGroup = extension.addIpPermission(perm, origGroup); - - assertEquals(1, newGroup.getIpPermissions().size()); - - IpPermission newPerm = Iterables.getOnlyElement(newGroup.getIpPermissions()); - - assertNotNull(newPerm); - assertEquals(IpProtocol.TCP, newPerm.getIpProtocol()); - assertEquals(22, newPerm.getFromPort()); - assertEquals(40, newPerm.getToPort()); - assertEquals(1, newPerm.getCidrBlocks().size()); - assertTrue(newPerm.getCidrBlocks().contains("0.0.0.0/0")); - } - - public void testAddIpPermissionCidrFromParams() { - HttpRequest describeSecurityGroupsSingleRequest = - 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#some-group").build()); - - HttpResponse describeSecurityGroupsSingleResponse = - HttpResponse.builder().statusCode(200) - .payload(payloadFromResourceWithContentType( - "/describe_securitygroups_extension_cidr.xml", MediaType.APPLICATION_XML)).build(); - - - HttpRequest authorizeSecurityGroupIngressRequestRange = - 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", "40") - .addFormParam("GroupName", "jclouds#some-group") - .addFormParam("IpProtocol", "tcp").build()); - - Builder<HttpRequest, HttpResponse> requestResponseMap = ImmutableMap.<HttpRequest, HttpResponse> builder(); - requestResponseMap.put(describeRegionsRequest, describeRegionsResponse); - requestResponseMap.put(describeAvailabilityZonesRequest, describeAvailabilityZonesResponse); - requestResponseMap.put(describeSecurityGroupsSingleRequest, describeSecurityGroupsSingleResponse); - requestResponseMap.put(createKeyPairRequest, createKeyPairResponse); - requestResponseMap.put(createSecurityGroupRequest, createSecurityGroupResponse); - - requestResponseMap.put(authorizeSecurityGroupIngressRequestRange, authorizeSecurityGroupIngressResponse); - - SecurityGroupExtension extension = requestsSendResponses(requestResponseMap.build()).getSecurityGroupExtension().get(); - - SecurityGroupBuilder groupBuilder = new SecurityGroupBuilder(); - groupBuilder.id("jclouds#some-group"); - groupBuilder.providerId("sg-3c6ef654"); - groupBuilder.name("jclouds#some-group"); - groupBuilder.location(new LocationBuilder() - .scope(LocationScope.REGION) - .id(region) - .description("region") - .build()); - - SecurityGroup origGroup = groupBuilder.build(); - - SecurityGroup newGroup = extension.addIpPermission(IpProtocol.TCP, - 22, - 40, - emptyMultimap(), - ImmutableSet.of("0.0.0.0/0"), - emptyStringSet(), - origGroup); - - assertEquals(1, newGroup.getIpPermissions().size()); - - IpPermission newPerm = Iterables.getOnlyElement(newGroup.getIpPermissions()); - - assertNotNull(newPerm); - assertEquals(IpProtocol.TCP, newPerm.getIpProtocol()); - assertEquals(22, newPerm.getFromPort()); - assertEquals(40, newPerm.getToPort()); - assertEquals(1, newPerm.getCidrBlocks().size()); - assertTrue(newPerm.getCidrBlocks().contains("0.0.0.0/0")); - } - - - public void testAddIpPermissionGroupFromIpPermission() { - HttpRequest describeSecurityGroupsSingleRequest = - 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#some-group").build()); - - HttpResponse describeSecurityGroupsSingleResponse = - HttpResponse.builder().statusCode(200) - .payload(payloadFromResourceWithContentType( - "/describe_securitygroups_extension_group.xml", MediaType.APPLICATION_XML)).build(); - - - HttpRequest authorizeSecurityGroupIngressRequestGroupTenant = - formSigner.filter(HttpRequest.builder() - .method("POST") - .endpoint("https://ec2." + region + ".amazonaws.com/") - .addHeader("Host", "ec2." + region + ".amazonaws.com") - .addFormParam("Action", "AuthorizeSecurityGroupIngress") - .addFormParam("SourceSecurityGroupName", "jclouds#some-group") - .addFormParam("SourceSecurityGroupOwnerId", "993194456877") - .addFormParam("GroupName", "jclouds#some-group").build()); - - Builder<HttpRequest, HttpResponse> requestResponseMap = ImmutableMap.<HttpRequest, HttpResponse> builder(); - requestResponseMap.put(describeRegionsRequest, describeRegionsResponse); - requestResponseMap.put(describeAvailabilityZonesRequest, describeAvailabilityZonesResponse); - requestResponseMap.put(describeSecurityGroupsSingleRequest, describeSecurityGroupsSingleResponse); - requestResponseMap.put(createKeyPairRequest, createKeyPairResponse); - requestResponseMap.put(createSecurityGroupRequest, createSecurityGroupResponse); - - requestResponseMap.put(authorizeSecurityGroupIngressRequestGroupTenant, authorizeSecurityGroupIngressResponse); - - IpPermission.Builder builder = IpPermission.builder(); - - builder.ipProtocol(IpProtocol.TCP); - builder.fromPort(22); - builder.toPort(40); - builder.tenantIdGroupNamePair("993194456877", "jclouds#some-group"); - - IpPermission perm = builder.build(); - - SecurityGroupExtension extension = requestsSendResponses(requestResponseMap.build()).getSecurityGroupExtension().get(); - - SecurityGroupBuilder groupBuilder = new SecurityGroupBuilder(); - groupBuilder.id("jclouds#some-group"); - groupBuilder.providerId("sg-3c6ef654"); - groupBuilder.name("jclouds#some-group"); - groupBuilder.location(new LocationBuilder() - .scope(LocationScope.REGION) - .id(region) - .description("region") - .build()); - groupBuilder.ownerId("993194456877"); - - SecurityGroup origGroup = groupBuilder.build(); - - SecurityGroup newGroup = extension.addIpPermission(perm, origGroup); - - assertEquals(1, newGroup.getIpPermissions().size()); - - IpPermission newPerm = Iterables.getOnlyElement(newGroup.getIpPermissions()); - - assertNotNull(newPerm); - assertEquals(IpProtocol.TCP, newPerm.getIpProtocol()); - assertEquals(22, newPerm.getFromPort()); - assertEquals(40, newPerm.getToPort()); - assertEquals(0, newPerm.getCidrBlocks().size()); - assertEquals(1, newPerm.getTenantIdGroupNamePairs().size()); - assertTrue(newPerm.getTenantIdGroupNamePairs().keySet().contains(origGroup.getOwnerId())); - assertTrue(newPerm.getTenantIdGroupNamePairs().values().contains(origGroup.getName())); - } - - public void testAddIpPermissionGroupFromParams() { - HttpRequest describeSecurityGroupsSingleRequest = - 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#some-group").build()); - - HttpResponse describeSecurityGroupsSingleResponse = - HttpResponse.builder().statusCode(200) - .payload(payloadFromResourceWithContentType( - "/describe_securitygroups_extension_group.xml", MediaType.APPLICATION_XML)).build(); - - - HttpRequest authorizeSecurityGroupIngressRequestGroupTenant = - formSigner.filter(HttpRequest.builder() - .method("POST") - .endpoint("https://ec2." + region + ".amazonaws.com/") - .addHeader("Host", "ec2." + region + ".amazonaws.com") - .addFormParam("Action", "AuthorizeSecurityGroupIngress") - .addFormParam("SourceSecurityGroupName", "jclouds#some-group") - .addFormParam("SourceSecurityGroupOwnerId", "993194456877") - .addFormParam("GroupName", "jclouds#some-group").build()); - - Builder<HttpRequest, HttpResponse> requestResponseMap = ImmutableMap.<HttpRequest, HttpResponse> builder(); - requestResponseMap.put(describeRegionsRequest, describeRegionsResponse); - requestResponseMap.put(describeAvailabilityZonesRequest, describeAvailabilityZonesResponse); - requestResponseMap.put(describeSecurityGroupsSingleRequest, describeSecurityGroupsSingleResponse); - requestResponseMap.put(createKeyPairRequest, createKeyPairResponse); - requestResponseMap.put(createSecurityGroupRequest, createSecurityGroupResponse); - - requestResponseMap.put(authorizeSecurityGroupIngressRequestGroupTenant, authorizeSecurityGroupIngressResponse); - - SecurityGroupExtension extension = requestsSendResponses(requestResponseMap.build()).getSecurityGroupExtension().get(); - - SecurityGroupBuilder groupBuilder = new SecurityGroupBuilder(); - groupBuilder.id("jclouds#some-group"); - groupBuilder.providerId("sg-3c6ef654"); - groupBuilder.name("jclouds#some-group"); - groupBuilder.ownerId("993194456877"); - groupBuilder.location(new LocationBuilder() - .scope(LocationScope.REGION) - .id(region) - .description("region") - .build()); - - SecurityGroup origGroup = groupBuilder.build(); - - ImmutableMultimap.Builder<String, String> permBuilder = ImmutableMultimap.builder(); - permBuilder.put(origGroup.getOwnerId(), origGroup.getName()); - - SecurityGroup newGroup = extension.addIpPermission(IpProtocol.TCP, - 22, - 40, - permBuilder.build(), - emptyStringSet(), - emptyStringSet(), - origGroup); - - assertEquals(1, newGroup.getIpPermissions().size()); - - IpPermission newPerm = Iterables.getOnlyElement(newGroup.getIpPermissions()); - - assertNotNull(newPerm); - assertEquals(IpProtocol.TCP, newPerm.getIpProtocol()); - assertEquals(22, newPerm.getFromPort()); - assertEquals(40, newPerm.getToPort()); - assertEquals(0, newPerm.getCidrBlocks().size()); - assertEquals(1, newPerm.getTenantIdGroupNamePairs().size()); - assertTrue(newPerm.getTenantIdGroupNamePairs().keySet().contains(origGroup.getOwnerId())); - assertTrue(newPerm.getTenantIdGroupNamePairs().values().contains(origGroup.getName())); - } - - private Multimap<String, String> emptyMultimap() { - return LinkedHashMultimap.create(); - } - - private Set<String> emptyStringSet() { - return Sets.newLinkedHashSet(); - } -}
http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/extensions/EC2SecurityGroupExtensionLiveTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/extensions/EC2SecurityGroupExtensionLiveTest.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/extensions/EC2SecurityGroupExtensionLiveTest.java deleted file mode 100644 index 4054e06..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/extensions/EC2SecurityGroupExtensionLiveTest.java +++ /dev/null @@ -1,36 +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.extensions; - -import org.jclouds.compute.extensions.internal.BaseSecurityGroupExtensionLiveTest; -import org.testng.annotations.Test; - - -/** - * Live test for ec2 {@link SecurityGroupExtension} implementation - * - * @author Andrew Bayer - * - */ -@Test(groups = "live", singleThreaded = true, testName = "EC2SecurityGroupExtensionLiveTest") -public class EC2SecurityGroupExtensionLiveTest extends BaseSecurityGroupExtensionLiveTest { - - public EC2SecurityGroupExtensionLiveTest() { - provider = "ec2"; - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/AddElasticIpsToNodemetadataTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/AddElasticIpsToNodemetadataTest.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/AddElasticIpsToNodemetadataTest.java deleted file mode 100644 index 7926362..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/AddElasticIpsToNodemetadataTest.java +++ /dev/null @@ -1,90 +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.functions; - -import static org.testng.Assert.assertEquals; - -import org.jclouds.compute.domain.NodeMetadata; -import org.jclouds.compute.domain.NodeMetadataBuilder; -import org.jclouds.compute.domain.NodeMetadata.Status; -import org.jclouds.ec2.compute.domain.RegionAndName; -import org.testng.annotations.Test; - -import com.google.common.cache.CacheBuilder; -import com.google.common.cache.CacheLoader; -import com.google.common.cache.LoadingCache; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; - -/** - * @author Adrian Cole - */ -@Test(groups = "unit", singleThreaded = true, testName = "AddElasticIpsToNodemetadataTest") -public class AddElasticIpsToNodemetadataTest { - - NodeMetadata node = new NodeMetadataBuilder().status(Status.RUNNING).group("zkclustertest").name("foo").hostname( - "ip-10-212-81-7").privateAddresses(ImmutableSet.of("10.212.81.7")).publicAddresses( - ImmutableSet.of("174.129.173.155")).imageId("us-east-1/ami-63be790a").id("us-east-1/i-911444f0") - .providerId("i-911444f0").tags(ImmutableSet.of("Empty")).userMetadata(ImmutableMap.of("Name", "foo")) - .build(); - - @Test - public void testReturnsNodeWithElasticIpWhenFoundInCacheAndNodeHadAPublicIp() throws Exception { - RegionAndName key = new RegionAndName("us-east-1", node.getProviderId()); - String val = "1.1.1.1"; - LoadingCache<RegionAndName, String> cache = cacheOf(key, val); - - AddElasticIpsToNodemetadata fn = new AddElasticIpsToNodemetadata(cache); - - assertEquals(fn.apply(node).getPublicAddresses(), ImmutableSet.of("1.1.1.1")); - } - - @Test - public void testReturnsNodeWithIpWhenFoundInCacheAndNodeHadNoPublicIp() throws Exception { - RegionAndName key = new RegionAndName("us-east-1", node.getProviderId()); - String val = "1.1.1.1"; - LoadingCache<RegionAndName, String> cache = cacheOf(key, val); - - AddElasticIpsToNodemetadata fn = new AddElasticIpsToNodemetadata(cache); - - assertEquals(fn.apply( - NodeMetadataBuilder.fromNodeMetadata(node).publicAddresses(ImmutableSet.<String> of()).build()) - .getPublicAddresses(), ImmutableSet.of("1.1.1.1")); - } - - @Test - public void testReturnsSameNodeWhenNotFoundInCache() throws Exception { - RegionAndName key = new RegionAndName("us-east-1", node.getProviderId()); - String val = null; - LoadingCache<RegionAndName, String> cache = cacheOf(key, val); - - AddElasticIpsToNodemetadata fn = new AddElasticIpsToNodemetadata(cache); - - assertEquals(fn.apply(node).getPublicAddresses(), ImmutableSet.of("174.129.173.155")); - } - - private LoadingCache<RegionAndName, String> cacheOf(final RegionAndName key, final String val) { - return CacheBuilder.newBuilder().build(new CacheLoader<RegionAndName, String>() { - - @Override - public String load(RegionAndName in) throws Exception { - return key.equals(in) ? val : null; - } - - }); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/CreateUniqueKeyPairTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/CreateUniqueKeyPairTest.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/CreateUniqueKeyPairTest.java deleted file mode 100644 index ddee5e1..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/CreateUniqueKeyPairTest.java +++ /dev/null @@ -1,116 +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.functions; - -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 java.net.UnknownHostException; - -import org.jclouds.ec2.EC2ApiMetadata; -import org.jclouds.ec2.EC2Api; -import org.jclouds.ec2.domain.KeyPair; -import org.jclouds.ec2.features.KeyPairApi; -import org.testng.annotations.Test; - -import com.google.common.base.Optional; -import com.google.common.base.Supplier; -import com.google.common.base.Suppliers; -import com.google.inject.AbstractModule; -import com.google.inject.Guice; -import com.google.inject.TypeLiteral; -import com.google.inject.name.Names; - -/** - * @author Adrian Cole - */ -@Test(groups = "unit", testName = "CreateUniqueKeyPairTest") -public class CreateUniqueKeyPairTest { - - @Test - public void testApply() throws UnknownHostException { - final EC2Api client = createMock(EC2Api.class); - KeyPairApi keyClient = createMock(KeyPairApi.class); - KeyPair pair = createMock(KeyPair.class); - - expect(client.getKeyPairApi()).andReturn((Optional) Optional.of(keyClient)).atLeastOnce(); - - expect(keyClient.createKeyPairInRegion("region", "jclouds#group#1")).andReturn(pair); - - replay(client); - replay(keyClient); - - CreateUniqueKeyPair parser = Guice.createInjector(new AbstractModule() { - - @Override - protected void configure() { - Names.bindProperties(binder(),new EC2ApiMetadata().getDefaultProperties()); - bind(new TypeLiteral<Supplier<String>>() { - }).toInstance(Suppliers.ofInstance("1")); - bind(EC2Api.class).toInstance(client); - } - - }).getInstance(CreateUniqueKeyPair.class); - - assertEquals(parser.createNewKeyPairInRegion("region", "group"), pair); - - verify(client); - verify(keyClient); - } - - @SuppressWarnings( { "unchecked" }) - @Test - public void testApplyWithIllegalStateException() throws UnknownHostException { - final EC2Api client = createMock(EC2Api.class); - KeyPairApi keyClient = createMock(KeyPairApi.class); - final Supplier<String> uniqueIdSupplier = createMock(Supplier.class); - - KeyPair pair = createMock(KeyPair.class); - - expect(client.getKeyPairApi()).andReturn((Optional) Optional.of(keyClient)).atLeastOnce(); - - expect(uniqueIdSupplier.get()).andReturn("1"); - expect(keyClient.createKeyPairInRegion("region", "jclouds#group#1")).andThrow(new IllegalStateException()); - expect(uniqueIdSupplier.get()).andReturn("2"); - expect(keyClient.createKeyPairInRegion("region", "jclouds#group#2")).andReturn(pair); - - replay(client); - replay(keyClient); - replay(uniqueIdSupplier); - - CreateUniqueKeyPair parser = Guice.createInjector(new AbstractModule() { - - @Override - protected void configure() { - Names.bindProperties(binder(),new EC2ApiMetadata().getDefaultProperties()); - bind(new TypeLiteral<Supplier<String>>() { - }).toInstance(uniqueIdSupplier); - bind(EC2Api.class).toInstance(client); - } - - }).getInstance(CreateUniqueKeyPair.class); - - assertEquals(parser.createNewKeyPairInRegion("region", "group"), pair); - - verify(client); - verify(keyClient); - verify(uniqueIdSupplier); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/EC2ImageParserTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/EC2ImageParserTest.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/EC2ImageParserTest.java deleted file mode 100644 index 808051c..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/EC2ImageParserTest.java +++ /dev/null @@ -1,124 +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.functions; - -import static org.testng.Assert.assertEquals; - -import java.util.Map; -import java.util.Set; - -import org.jclouds.compute.config.BaseComputeServiceContextModule; -import org.jclouds.compute.domain.Image.Status; -import org.jclouds.compute.domain.ImageBuilder; -import org.jclouds.compute.domain.OperatingSystem; -import org.jclouds.compute.domain.OsFamily; -import org.jclouds.compute.reference.ComputeServiceConstants; -import org.jclouds.domain.Location; -import org.jclouds.domain.LocationBuilder; -import org.jclouds.domain.LocationScope; -import org.jclouds.domain.LoginCredentials; -import org.jclouds.ec2.compute.config.EC2ComputeServiceDependenciesModule; -import org.jclouds.ec2.compute.strategy.EC2PopulateDefaultLoginCredentialsForImageStrategy; -import org.jclouds.ec2.compute.strategy.ReviseParsedImage; -import org.jclouds.ec2.domain.Image; -import org.jclouds.ec2.xml.DescribeImagesResponseHandlerTest; -import org.jclouds.json.Json; -import org.jclouds.json.config.GsonModule; -import org.testng.annotations.Test; - -import com.google.common.base.Predicates; -import com.google.common.base.Suppliers; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Iterables; -import com.google.common.collect.Sets; -import com.google.inject.Guice; - -/** - * @author Adrian Cole - */ -@Test(groups = "unit", testName = "EC2ImageParserTest") -public class EC2ImageParserTest { - - public void testParseAmznImage() { - - Set<org.jclouds.compute.domain.Image> result = convertImages("/amzn_images.xml"); - for (org.jclouds.compute.domain.Image image : result) { - assertEquals(image.getStatus(), Status.AVAILABLE); - assertEquals(image.getBackendStatus(), "available"); - } - - assertImageEquals(Iterables.get(result, 0), new ImageBuilder().operatingSystem( - new OperatingSystem.Builder().family(OsFamily.UNRECOGNIZED).arch("paravirtual").version("").description( - "137112412989/amzn-ami-0.9.7-beta.i386-ebs").is64Bit(false).build()).description("Amazon") - .defaultCredentials(LoginCredentials.builder().user("ec2-user").build()).id("us-east-1/ami-82e4b5c7").name( - "amzn-ami-0.9.7-beta.i386-ebs").providerId("ami-82e4b5c7").location(defaultLocation) - .userMetadata(ImmutableMap.of("owner", "137112412989", "rootDeviceType", "ebs")).status( - Status.AVAILABLE).backendStatus("available").build()); - - assertImageEquals(Iterables.get(result, 3), new ImageBuilder().operatingSystem( - new OperatingSystem.Builder().family(OsFamily.UNRECOGNIZED).arch("paravirtual").version("").description( - "amzn-ami-us-west-1/amzn-ami-0.9.7-beta.x86_64.manifest.xml").is64Bit(true).build()) - .description("Amazon Linux AMI x86_64 S3").defaultCredentials(LoginCredentials.builder().user("ec2-user").build()) - .id("us-east-1/ami-f2e4b5b7").providerId("ami-f2e4b5b7").name("amzn-ami-0.9.7-beta.x86_64-S3").location( - defaultLocation) - .userMetadata(ImmutableMap.of("owner", "137112412989", "rootDeviceType", "ebs")).status( - Status.AVAILABLE).backendStatus("available").build()); - - assertImageEquals(Iterables.get(result, 4), new ImageBuilder().operatingSystem( - new OperatingSystem.Builder().family(OsFamily.WINDOWS).arch("hvm").version("2008").description( - "amazon/NameGivesNoClue_Server-2008-R2_SP1-Language_Packs-64Bit-Base-2012.05.10") - .is64Bit(true).build()) - .description("Microsoft Windows Server 2008 R2 SP1 Datacenter 64-bit Multi-language AMI provided by Amazon") - .defaultCredentials(LoginCredentials.builder().user("root").build()) - .id("us-east-1/ami-85457ff1").providerId("ami-85457ff1").name("NameGivesNoClue_Server-2008-R2_SP1-Language_Packs-64Bit-Base-2012.05.10") - .location(defaultLocation) - .userMetadata(ImmutableMap.of("owner", "801119661308", "rootDeviceType", "ebs")) - .status(Status.AVAILABLE).backendStatus("available").build()); - - } - - private void assertImageEquals(org.jclouds.compute.domain.Image actual, org.jclouds.compute.domain.Image expected) { - // Note that ImageImpl.equals does not compare operating system etc; there's an explicit comment: - // equals from super is sufficient to establish identity equivalence - assertEquals(actual, expected); - assertEquals(actual.getOperatingSystem(), expected.getOperatingSystem()); - assertEquals(actual.getStatus(), expected.getStatus()); - assertEquals(actual.getBackendStatus(), expected.getBackendStatus()); - assertEquals(actual.getVersion(), expected.getVersion()); - assertEquals(actual.getDescription(), expected.getDescription()); - assertEquals(actual.getDefaultCredentials(), expected.getDefaultCredentials()); - } - - static Location defaultLocation = new LocationBuilder().scope(LocationScope.REGION).id("us-east-1").description( - "us-east-1").build(); - - public static Set<org.jclouds.compute.domain.Image> convertImages(String resource) { - - Map<OsFamily, Map<String, String>> map = new BaseComputeServiceContextModule() { - }.provideOsVersionMap(new ComputeServiceConstants.ReferenceData(), Guice.createInjector(new GsonModule()) - .getInstance(Json.class)); - - Set<Image> result = DescribeImagesResponseHandlerTest.parseImages(resource); - EC2ImageParser parser = new EC2ImageParser(EC2ComputeServiceDependenciesModule.toPortableImageStatus, - new EC2PopulateDefaultLoginCredentialsForImageStrategy(), map, Suppliers - .<Set<? extends Location>> ofInstance(ImmutableSet.<Location> of(defaultLocation)), Suppliers - .ofInstance(defaultLocation), new ReviseParsedImage.NoopReviseParsedImage()); - return Sets.newLinkedHashSet(Iterables.filter(Iterables.transform(result, parser), Predicates.notNull())); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/EC2SecurityGroupToSecurityGroupTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/EC2SecurityGroupToSecurityGroupTest.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/EC2SecurityGroupToSecurityGroupTest.java deleted file mode 100644 index 61eff5b..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/EC2SecurityGroupToSecurityGroupTest.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * 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.functions; - -import static org.testng.Assert.assertEquals; - -import java.util.Set; - -import org.jclouds.compute.domain.SecurityGroup; -import org.jclouds.domain.Location; -import org.jclouds.domain.LocationBuilder; -import org.jclouds.domain.LocationScope; -import org.jclouds.ec2.util.IpPermissions; -import org.jclouds.net.domain.IpPermission; -import org.testng.annotations.Test; - -import com.google.common.base.Supplier; -import com.google.common.collect.ImmutableSet; - -/** - * @author Andrew Bayer - */ -@Test(groups = "unit", testName = "EC2SecurityGroupToSecurityGroupTest") -public class EC2SecurityGroupToSecurityGroupTest { - - static Location provider = new LocationBuilder().scope(LocationScope.REGION).id("us-east-1") - .description("us-east-1").build(); - - @Test - public void testApply() { - IpPermissions authorization = IpPermissions.permitAnyProtocol(); - - org.jclouds.ec2.domain.SecurityGroup origGroup = org.jclouds.ec2.domain.SecurityGroup.builder() - .region("us-east-1") - .id("some-id") - .name("some-group") - .ownerId("some-owner") - .description("some-description") - .ipPermission(authorization) - .build(); - - EC2SecurityGroupToSecurityGroup parser = createGroupParser(ImmutableSet.of(provider)); - - SecurityGroup group = parser.apply(origGroup); - - assertEquals(group.getLocation(), provider); - assertEquals(group.getId(), provider.getId() + "/" + origGroup.getName()); - assertEquals(group.getProviderId(), origGroup.getId()); - assertEquals(group.getName(), origGroup.getName()); - assertEquals(group.getIpPermissions(), (Set<IpPermission>)origGroup); - assertEquals(group.getOwnerId(), origGroup.getOwnerId()); - } - - private EC2SecurityGroupToSecurityGroup createGroupParser(final ImmutableSet<Location> locations) { - Supplier<Set<? extends Location>> locationSupplier = new Supplier<Set<? extends Location>>() { - - @Override - public Set<? extends Location> get() { - return locations; - } - - }; - - EC2SecurityGroupToSecurityGroup parser = new EC2SecurityGroupToSecurityGroup(locationSupplier); - - return parser; - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/PresentInstancesTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/PresentInstancesTest.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/PresentInstancesTest.java deleted file mode 100644 index d27b4e9..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/PresentInstancesTest.java +++ /dev/null @@ -1,69 +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.functions; - -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 java.util.Set; - -import org.jclouds.ec2.EC2Api; -import org.jclouds.ec2.compute.domain.RegionAndName; -import org.jclouds.ec2.domain.Reservation; -import org.jclouds.ec2.domain.RunningInstance; -import org.jclouds.ec2.features.InstanceApi; -import org.testng.annotations.Test; - -import com.google.common.base.Optional; -import com.google.common.collect.ImmutableSet; - -/** - * @author Adrian Cole - */ -@Test(groups = "unit") -public class PresentInstancesTest { - RunningInstance instance1 = createMock(RunningInstance.class); - RunningInstance instance2 = createMock(RunningInstance.class); - - @SuppressWarnings("unchecked") - @Test - public void testWhenInstancesPresentSingleCall() { - - EC2Api client = createMock(EC2Api.class); - InstanceApi instanceClient = createMock(InstanceApi.class); - - expect(client.getInstanceApi()).andReturn((Optional) Optional.of(instanceClient)); - - // avoid imatcher fail. if you change this, be sure to check multiple jres - expect(instanceClient.describeInstancesInRegion("us-east-1", "i-aaaa", "i-bbbb")).andReturn( - Set.class.cast(ImmutableSet.of(Reservation.builder().region("us-east-1") - .instances(ImmutableSet.of(instance1, instance2)).build()))); - - replay(client, instanceClient); - - PresentInstances fn = new PresentInstances(client); - - assertEquals(fn.apply(ImmutableSet.of(new RegionAndName("us-east-1", "i-aaaa"), new RegionAndName("us-east-1", - "i-bbbb"))), ImmutableSet.of(instance1, instance2)); - - verify(client, instanceClient); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/RunningInstanceToNodeMetadataTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/RunningInstanceToNodeMetadataTest.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/RunningInstanceToNodeMetadataTest.java deleted file mode 100644 index b6c04c6..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/RunningInstanceToNodeMetadataTest.java +++ /dev/null @@ -1,298 +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.functions; - -import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m1_small; -import static org.testng.Assert.assertEquals; - -import java.net.UnknownHostException; -import java.util.Map; -import java.util.Set; - -import org.jclouds.compute.domain.Hardware; -import org.jclouds.compute.domain.Image; -import org.jclouds.compute.domain.NodeMetadata; -import org.jclouds.compute.domain.NodeMetadataBuilder; -import org.jclouds.compute.domain.OperatingSystem; -import org.jclouds.compute.domain.OsFamily; -import org.jclouds.compute.domain.NodeMetadata.Status; -import org.jclouds.compute.functions.GroupNamingConvention; -import org.jclouds.domain.Credentials; -import org.jclouds.domain.Location; -import org.jclouds.domain.LocationBuilder; -import org.jclouds.domain.LocationScope; -import org.jclouds.domain.LoginCredentials; -import org.jclouds.ec2.EC2ApiMetadata; -import org.jclouds.ec2.compute.config.EC2ComputeServiceDependenciesModule; -import org.jclouds.ec2.compute.domain.RegionAndName; -import org.jclouds.ec2.domain.InstanceState; -import org.jclouds.ec2.domain.RunningInstance; -import org.jclouds.ec2.xml.DescribeInstancesResponseHandlerTest; -import org.jclouds.javax.annotation.Nullable; -import org.testng.annotations.Test; - -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.ImmutableMap; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Iterables; -import com.google.inject.AbstractModule; -import com.google.inject.Guice; -import com.google.inject.name.Names; - -/** - * @author Adrian Cole - */ -@Test(groups = "unit", testName = "RunningInstanceToNodeMetadataTest") -public class RunningInstanceToNodeMetadataTest { - - public void testAllStatesCovered() { - - for (InstanceState status : InstanceState.values()) { - assert EC2ComputeServiceDependenciesModule.toPortableNodeStatus.containsKey(status) : status; - } - - } - - @Test - public void testPrivateIpAddressIncorrectlyInPublicAddressFieldGoesToPrivateAddressCollection() { - RunningInstance instance = RunningInstance.builder().instanceId("id").imageId("image").instanceType("m1.small") - .instanceState(InstanceState.RUNNING).rawState("running").region("us-east-1").ipAddress("10.1.1.1").build(); - - RunningInstanceToNodeMetadata parser = createNodeParser(ImmutableSet.<Hardware> of(), ImmutableSet - .<Location> of(), ImmutableSet.<Image> of(), ImmutableMap.<String, Credentials> of()); - - assertEquals(parser.apply(instance).toString(), new NodeMetadataBuilder().status(Status.RUNNING).backendStatus("running").publicAddresses( - ImmutableSet.<String> of()).privateAddresses(ImmutableSet.of("10.1.1.1")).id("us-east-1/id").imageId( - "us-east-1/image").providerId("id").build().toString()); - } - - @Test - public void testPublicIpAddressIncorrectlyInPrivateAddressFieldGoesToPublicAddressCollection() { - RunningInstance instance = RunningInstance.builder().instanceId("id").imageId("image").instanceType("m1.small") - .instanceState(InstanceState.RUNNING).rawState("running").region("us-east-1").privateIpAddress("1.1.1.1").build(); - - RunningInstanceToNodeMetadata parser = createNodeParser(ImmutableSet.<Hardware> of(), ImmutableSet - .<Location> of(), ImmutableSet.<Image> of(), ImmutableMap.<String, Credentials> of()); - - assertEquals(parser.apply(instance).toString(), new NodeMetadataBuilder().status(Status.RUNNING).backendStatus("running").privateAddresses( - ImmutableSet.<String> of()).publicAddresses(ImmutableSet.of("1.1.1.1")).id("us-east-1/id").imageId( - "us-east-1/image").providerId("id").build().toString()); - } - - static Location provider = new LocationBuilder().scope(LocationScope.REGION).id("us-east-1") - .description("us-east-1").build(); - - @Test - public void testApplyWhereTagDoesntMatchAndImageHardwareAndLocationNotFoundButCredentialsFound() - throws UnknownHostException { - LoginCredentials creds = LoginCredentials.builder().user("root").password("abdce").build(); - - RunningInstanceToNodeMetadata parser = createNodeParser(ImmutableSet.<Hardware> of(), ImmutableSet - .<Location> of(), ImmutableSet.<Image> of(), ImmutableMap.<String, Credentials> of( - "node#us-east-1/i-0799056f", creds)); - - RunningInstance server = firstInstanceFromResource("/describe_instances_running.xml"); - - assertEquals( - parser.apply(server).toString(), - new NodeMetadataBuilder().status(Status.RUNNING).backendStatus("running").hostname("ip-10-243-42-70") - .publicAddresses(ImmutableSet.<String> of()).privateAddresses(ImmutableSet.of("10.243.42.70")) - .publicAddresses(ImmutableSet.of("174.129.81.68")).credentials(creds) - .imageId("us-east-1/ami-82e4b5c7").id("us-east-1/i-0799056f").providerId("i-0799056f").build().toString()); - } - - @Test - public void testApplyWhereTagDoesntMatchAndImageHardwareAndLocationNotFound() throws UnknownHostException { - RunningInstanceToNodeMetadata parser = createNodeParser(ImmutableSet.<Hardware> of(), ImmutableSet - .<Location> of(), ImmutableSet.<Image> of(), ImmutableMap.<String, Credentials> of()); - - RunningInstance server = firstInstanceFromResource("/describe_instances_running.xml"); - - assertEquals(parser.apply(server).toString(), - new NodeMetadataBuilder().hostname("ip-10-243-42-70").status(Status.RUNNING).backendStatus("running") - .publicAddresses(ImmutableSet.<String> of()).privateAddresses(ImmutableSet.of("10.243.42.70")) - .publicAddresses(ImmutableSet.of("174.129.81.68")).imageId("us-east-1/ami-82e4b5c7") - .id("us-east-1/i-0799056f").providerId("i-0799056f").build().toString()); - } - - @Test - public void testApplyWhereTagDoesntMatchAndLocationFoundAndImageAndHardwareNotFound() throws UnknownHostException { - RunningInstanceToNodeMetadata parser = createNodeParser(ImmutableSet.<Hardware> of(), ImmutableSet.of(provider), - ImmutableSet.<Image> of(), ImmutableMap.<String, Credentials> of()); - - RunningInstance server = firstInstanceFromResource("/describe_instances_running.xml"); - NodeMetadata expected = new NodeMetadataBuilder().hostname("ip-10-243-42-70").status(Status.RUNNING).backendStatus("running") - .privateAddresses(ImmutableSet.of("10.243.42.70")).publicAddresses(ImmutableSet.of("174.129.81.68")) - .imageId("us-east-1/ami-82e4b5c7").id("us-east-1/i-0799056f").providerId("i-0799056f") - .location(provider).build(); - - assertEquals(parser.apply(server).toString(), expected.toString()); - } - - @Test - public void testApplyWhereTagDoesntMatchAndImageAndLocationFoundAndHardwareNotFound() throws UnknownHostException { - RunningInstanceToNodeMetadata parser = createNodeParser(ImmutableSet.<Hardware> of(), ImmutableSet.of(provider), - EC2ImageParserTest.convertImages("/amzn_images.xml"), ImmutableMap.<String, Credentials> of()); - - RunningInstance server = firstInstanceFromResource("/describe_instances_running.xml"); - - assertEquals( - parser.apply(server).toString(), - new NodeMetadataBuilder() - .status(Status.RUNNING).backendStatus("running") - .hostname("ip-10-243-42-70") - .privateAddresses(ImmutableSet.of("10.243.42.70")) - .publicAddresses(ImmutableSet.of("174.129.81.68")) - .imageId("us-east-1/ami-82e4b5c7") - .operatingSystem( - new OperatingSystem.Builder().family(OsFamily.UNRECOGNIZED).version("").arch("paravirtual") - .description("137112412989/amzn-ami-0.9.7-beta.i386-ebs").is64Bit(false).build()) - .id("us-east-1/i-0799056f").providerId("i-0799056f").location(provider).build().toString()); - } - - @Test - public void testApplyWhereTagDoesntMatchAndImageHardwareAndLocationFound() throws UnknownHostException { - RunningInstanceToNodeMetadata parser = createNodeParser(ImmutableSet.of(m1_small().build()), ImmutableSet - .of(provider), EC2ImageParserTest.convertImages("/amzn_images.xml"), ImmutableMap - .<String, Credentials> of()); - - RunningInstance server = firstInstanceFromResource("/describe_instances_running.xml"); - - assertEquals( - parser.apply(server).toString(), - new NodeMetadataBuilder() - .hostname("ip-10-243-42-70") - .status(Status.RUNNING).backendStatus("running") - .privateAddresses(ImmutableSet.of("10.243.42.70")) - .publicAddresses(ImmutableSet.of("174.129.81.68")) - .imageId("us-east-1/ami-82e4b5c7") - .hardware(m1_small().build()) - .operatingSystem( - new OperatingSystem.Builder().family(OsFamily.UNRECOGNIZED).version("").arch("paravirtual") - .description("137112412989/amzn-ami-0.9.7-beta.i386-ebs").is64Bit(false).build()) - .id("us-east-1/i-0799056f").providerId("i-0799056f").location(provider).build().toString()); - } - - @Test - public void testHandleMissingAMIs() { - - // Handle the case when the installed AMI no longer can be found in AWS. - - // Create a null-returning function to simulate that the AMI can't be found. - CacheLoader<RegionAndName, Image> nullReturningFunction = new CacheLoader<RegionAndName, Image>() { - - @Override - public Image load(@Nullable RegionAndName from) { - return null; - } - }; - LoadingCache<RegionAndName, Image> instanceToImage = CacheBuilder.newBuilder().build(nullReturningFunction); - - RunningInstanceToNodeMetadata parser = createNodeParser(ImmutableSet.of(m1_small().build()), ImmutableSet - .of(provider), ImmutableMap.<String, Credentials> of(), - EC2ComputeServiceDependenciesModule.toPortableNodeStatus, instanceToImage); - - RunningInstance server = firstInstanceFromResource("/describe_instances_running.xml"); - - assertEquals( - parser.apply(server).toString(), - new NodeMetadataBuilder().hostname("ip-10-243-42-70").status(Status.RUNNING).backendStatus("running") - .privateAddresses(ImmutableSet.of("10.243.42.70")).publicAddresses(ImmutableSet.of("174.129.81.68")) - .imageId("us-east-1/ami-82e4b5c7").id("us-east-1/i-0799056f").providerId("i-0799056f") - .hardware(m1_small().build()).location(provider).build().toString()); - } - - @Test - public void testGroupNameIsSetWhenCustomKeyNameIsSetAndSecurityGroupIsGenerated() { - checkGroupName(RunningInstance.builder().instanceId("id").imageId("image").instanceType("m1.small") - .instanceState(InstanceState.RUNNING).rawState("running").region("us-east-1").keyName("custom-key") - .groupName("jclouds#groupname").build()); - } - - @Test - public void testGroupNameIsSetWhenCustomSecurityGroupIsSetAndKeyNameIsGenerated() { - checkGroupName(RunningInstance.builder().instanceId("id").imageId("image").instanceType("m1.small") - .instanceState(InstanceState.RUNNING).rawState("running").region("us-east-1").groupName("custom-sec") - .keyName("jclouds#groupname#23").build()); - } - - protected RunningInstance firstInstanceFromResource(String resource) { - return Iterables.get(Iterables.get(DescribeInstancesResponseHandlerTest.parseRunningInstances(resource), 0), 0); - } - - protected RunningInstanceToNodeMetadata createNodeParser(final ImmutableSet<Hardware> hardware, - final ImmutableSet<Location> locations, final Set<org.jclouds.compute.domain.Image> images, - Map<String, Credentials> credentialStore) { - Map<InstanceState, Status> instanceToNodeStatus = EC2ComputeServiceDependenciesModule.toPortableNodeStatus; - - CacheLoader<RegionAndName, Image> getRealImage = new CacheLoader<RegionAndName, Image>() { - - @Override - public Image load(@Nullable RegionAndName from) { - return ImagesToRegionAndIdMap.imagesToMap(images).get(from); - } - }; - LoadingCache<RegionAndName, Image> instanceToImage = CacheBuilder.newBuilder().build(getRealImage); - return createNodeParser(hardware, locations, credentialStore, instanceToNodeStatus, instanceToImage); - } - - private void checkGroupName(RunningInstance instance) { - assertEquals("groupname", createNodeParser(ImmutableSet.<Hardware> of(), ImmutableSet - .<Location> of(), ImmutableSet.<Image> of(), ImmutableMap.<String, Credentials> of()) - .apply(instance).getGroup()); - } - - private RunningInstanceToNodeMetadata createNodeParser(final ImmutableSet<Hardware> hardware, - final ImmutableSet<Location> locations, Map<String, Credentials> credentialStore, - Map<InstanceState, Status> instanceToNodeStatus, LoadingCache<RegionAndName, Image> instanceToImage) { - Supplier<Set<? extends Location>> locationSupplier = new Supplier<Set<? extends Location>>() { - - @Override - public Set<? extends Location> get() { - return locations; - } - - }; - Supplier<Set<? extends Hardware>> hardwareSupplier = new Supplier<Set<? extends Hardware>>() { - - @Override - public Set<? extends Hardware> get() { - return hardware; - } - - }; - - GroupNamingConvention.Factory namingConvention = Guice.createInjector(new AbstractModule() { - - @Override - protected void configure() { - Names.bindProperties(binder(),new EC2ApiMetadata().getDefaultProperties()); - } - - }).getInstance(GroupNamingConvention.Factory.class); - - RunningInstanceToNodeMetadata parser = new RunningInstanceToNodeMetadata(instanceToNodeStatus, credentialStore, - Suppliers.<LoadingCache<RegionAndName, ? extends Image>> ofInstance(instanceToImage), locationSupplier, - hardwareSupplier, namingConvention); - return parser; - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/WindowsLoginCredentialsFromEncryptedDataTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/WindowsLoginCredentialsFromEncryptedDataTest.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/WindowsLoginCredentialsFromEncryptedDataTest.java deleted file mode 100644 index 532c86b..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/functions/WindowsLoginCredentialsFromEncryptedDataTest.java +++ /dev/null @@ -1,77 +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.functions; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; - -import org.jclouds.date.DateService; -import org.jclouds.date.internal.SimpleDateFormatDateService; -import org.jclouds.domain.LoginCredentials; -import org.jclouds.ec2.compute.domain.PasswordDataAndPrivateKey; -import org.jclouds.ec2.domain.PasswordData; -import org.jclouds.encryption.internal.JCECrypto; -import org.testng.annotations.Test; - -/** - * @author Richard Downer - */ -public class WindowsLoginCredentialsFromEncryptedDataTest { - - private static final String PRIVATE_KEY = "-----BEGIN RSA PRIVATE KEY-----\n" + - "MIIEowIBAAKCAQEAmN6GOSMnyGNWN19ETBh11tJB5OGs3Dps8kPWqAhF9RyL/mKwkW26vH+h/5Z5\n" + - "cA5T80pK72kNnXObFaMHNoX3lavrc6yXF+8F3f1tlFX2Z+iB1pYXz1oBPqT6oOmc2XzcsJuJRakd\n" + - "zwRwHDaqljpaW7+TZlxhMa1DmUkD/HHMxDCK8jbUIZDc6BZSrnj2uPwHwW737NRE4aC3fcu4LMwf\n" + - "b2VotbNGNiAnNmrb/vtIIGkFE8NYEMpiz0WYTWX4eVKpJImv1PR6G1fMLSvudJs0ARObuLDvuonn\n" + - "SCFFdkibrwMKYbHVGGh6FoY1Vy0sqI55dgQU1kSNouiDgOGxgx+TIwIDAQABAoIBAHCS/nk5QGS7\n" + - "cpRYXa1EHhNSxx/MaUXM6MoH1x3q6cm1egqdlrWh/vAtdZkIsOkqQ/xX65Me493dcomegwNN6KOZ\n" + - "9Uw7/xCq/sEZjga8vzaJ7IOgCGy0NVJyn/a70rv+zW5pO8/G2KLI+95rC3iSBFSoYd3xjcnNdIh/\n" + - "UqYnD8oxYpKmf7418pMPsBrkglkFlbVBPiDXdpoSziqSN6uWQG4Yh0WR87aElhM9JJW50Hh6h7g5\n" + - "OvgCBzS8G+KXCjqimk108+/ed5Nl6VhPAf79yCVZUueKBhaf2r0Kkyxg7M/Y+LJwcoUusIP7Cv7G\n" + - "xyzG2vi21prWRCm2sVCUDyQy5qECgYEA92jGVAaB3OGEUIXn7eVE3U3FQH37XcJMGsHqBIzDG13p\n" + - "C97HdN21rwRkz+G2eAsIxA+p9BsO7dSmtKC60kl6iMRgltS3W7xoC37N9BtjhpciHcLg8c70oyDx\n" + - "qHiLKuDi90mZ1FPmWupO4FJnGEB3evHUKZSpTrVVMzt+tyEn/psCgYEAni1hrYoMkQgN3sEC3CKB\n" + - "0jQkrOMvY219B8Tdf9LXSuP6z9POagDBDhkeT3xn8rAOmOfVGHYdO0CvPqmAkmXhf+g+OREdecQa\n" + - "uY0FmvcTt+Dx0c6pRZmm5AhvUVXFXqONsSg79iviXbUy5Hik0k5HTs5E6B4obrh5W+xfMTUXghkC\n" + - "gYBn92uAW8uumkYT4HF6EuJBbTD6zPYYjFGW3O4OQ2ip02jfSBrhDVoP1fTXNq6K+3gPi9WLcuNv\n" + - "JfF37iMTwzTuzDcaqwDyV9YRHpRFhEzqfhAkGYSVmLZM5scmWKGCv0YhTJiMFUWz5sqGkZopIs4S\n" + - "qBTT9FjBbooDIXk6U4CPCQKBgFdVBxEhnz6UC9RpDIMuKi88yuMJrChhUx7u+ryQVH3s0ZXdg6HT\n" + - "OMPn6mxIa7v6qJSTq3wN+qW0WQ1n2Kz7wz0zpOctI/EO7RJ1YhrlP+XONLV6PMtIwnQ0lAF8MbTG\n" + - "6HxfknugTyMd4DN0yMu0nHpOOI1P2VMIVzkBkK1CevBBAoGBALROGR7a+eijHdp0/A0chfUoBmud\n" + - "/TsUt+0g/vf1p69rMt6DqEGMgMtp2jIRnwvLElS7gVqnCTEclxNU/0rCXR+V7ImJm8J4f0ff8m0Y\n" + - "Fir9nfCYStszo25NvLFfynS9d/aoBuvqGJaiQyNXiyBJ4MaxxFYagzAWTnDX+kzTlkZ2\n" + - "-----END RSA PRIVATE KEY-----"; - private static final String ENCRYPTED_PASSWORD = "gO1oMoIjjIifv2iqcfIKiQD7ziOTVXsuaBJFEQrZdb8uJH/LsAiJXZeGKEeXlHl/oMoR3HEIoYuHxl+p5iHdrpP889RmxWBDGOWC5iTUzK6CRa5mFmF1I5Lpt7v2YeVoQWihSM8B19BEdBdY1svQp9nyhPB4AqLDrY28x/OrmRh/qYq953i6Y4Z8c76OHqqGcUYM4ePysRlcizSgQjdkEDmKC10Ak3OFRRx3/LqYsFIMiOHeg47APg+UANNTyRiTIia5FDhSeHJzaeYCBRQ7UYH0z2rg4cX3YjOz/MoznjHiaaN4MO+5N3v84VawnqwKOvlwPyI2bmz0+9Tr6DKzqA=="; - - protected final DateService dateService = new SimpleDateFormatDateService(); - - @Test - public void testApply() throws Exception { - WindowsLoginCredentialsFromEncryptedData f = new WindowsLoginCredentialsFromEncryptedData(new JCECrypto()); - - PasswordData passwordData = PasswordData.builder() - .instanceId("i-2574e22a") - .timestamp(dateService.iso8601DateParse("2012-07-30T07:27:23.000+0000")) - .passwordData(ENCRYPTED_PASSWORD).build(); - - LoginCredentials credentials = f.apply(new PasswordDataAndPrivateKey(passwordData, PRIVATE_KEY)); - - assertEquals(credentials.getUser(), "Administrator"); - assertEquals(credentials.getPassword(), "u4.y9mb;nR."); - assertFalse(credentials.getOptionalPrivateKey().isPresent()); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/internal/BaseEC2ComputeServiceContextExpectTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/internal/BaseEC2ComputeServiceContextExpectTest.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/internal/BaseEC2ComputeServiceContextExpectTest.java deleted file mode 100644 index cc9790b..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/compute/internal/BaseEC2ComputeServiceContextExpectTest.java +++ /dev/null @@ -1,42 +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 java.util.Properties; - -import org.jclouds.compute.ComputeServiceContext; -import org.jclouds.ec2.internal.BaseEC2ApiExpectTest; -import org.jclouds.http.HttpRequest; -import org.jclouds.http.HttpResponse; - -import com.google.common.base.Function; -import com.google.inject.Module; - -public abstract class BaseEC2ComputeServiceContextExpectTest<T> extends BaseEC2ApiExpectTest<T> implements - Function<ComputeServiceContext, T> { - - @Override - public T createClient(Function<HttpRequest, HttpResponse> fn, Module module, Properties props) { - return apply(createComputeServiceContext(fn, module, props)); - } - - private ComputeServiceContext createComputeServiceContext(Function<HttpRequest, HttpResponse> fn, Module module, - Properties props) { - return createInjector(fn, module, props).getInstance(ComputeServiceContext.class); - } - -}
