You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by an...@apache.org on 2014/07/03 18:09:08 UTC
git commit: JCLOUDS-470. Include region in group name for
AWSEC2SecurityGroupExtension.
Repository: jclouds
Updated Branches:
refs/heads/1.7.x c85d728a5 -> c0d7b3d24
JCLOUDS-470. Include region in group name for AWSEC2SecurityGroupExtension.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/c0d7b3d2
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/c0d7b3d2
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/c0d7b3d2
Branch: refs/heads/1.7.x
Commit: c0d7b3d248d666228b2cc23df6d003a263f23b34
Parents: c85d728
Author: Andrew Bayer <an...@gmail.com>
Authored: Fri Feb 14 12:09:41 2014 -0800
Committer: Andrew Phillips <an...@apache.org>
Committed: Thu Jul 3 12:08:42 2014 -0400
----------------------------------------------------------------------
.../AWSEC2SecurityGroupExtension.java | 18 +++--
.../AWSEC2SecurityGroupExtensionExpectTest.java | 76 +++++++++++++++++---
2 files changed, 73 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c0d7b3d2/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/extensions/AWSEC2SecurityGroupExtension.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/extensions/AWSEC2SecurityGroupExtension.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/extensions/AWSEC2SecurityGroupExtension.java
index 3b04335..d159957 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/extensions/AWSEC2SecurityGroupExtension.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/extensions/AWSEC2SecurityGroupExtension.java
@@ -22,11 +22,16 @@ import static com.google.common.collect.Iterables.filter;
import static com.google.common.collect.Iterables.getOnlyElement;
import static com.google.common.collect.Iterables.transform;
-import java.util.Set;
-
import javax.inject.Inject;
import javax.inject.Named;
+import java.util.Set;
+import com.google.common.base.Function;
+import com.google.common.base.Supplier;
+import com.google.common.cache.LoadingCache;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Multimap;
+import com.google.common.util.concurrent.ListeningExecutorService;
import org.jclouds.Constants;
import org.jclouds.aws.ec2.AWSEC2Api;
import org.jclouds.aws.util.AWSUtils;
@@ -41,13 +46,6 @@ import org.jclouds.location.Region;
import org.jclouds.net.domain.IpPermission;
import org.jclouds.net.domain.IpProtocol;
-import com.google.common.base.Function;
-import com.google.common.base.Supplier;
-import com.google.common.cache.LoadingCache;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Multimap;
-import com.google.common.util.concurrent.ListeningExecutorService;
-
/**
* An extension to compute service to allow for the manipulation of {@link SecurityGroup}s. Implementation
* is optional by providers.
@@ -79,7 +77,7 @@ public class AWSEC2SecurityGroupExtension extends EC2SecurityGroupExtension {
false);
groupCreator.getUnchecked(regionAndName);
- String groupId = groupNameToId.apply(markerGroup);
+ String groupId = groupNameToId.apply(regionAndName.slashEncode());
return getSecurityGroupById(regionAndName.getRegion() + "/" + groupId);
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c0d7b3d2/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/extensions/AWSEC2SecurityGroupExtensionExpectTest.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/extensions/AWSEC2SecurityGroupExtensionExpectTest.java b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/extensions/AWSEC2SecurityGroupExtensionExpectTest.java
index f13737a..04a98a5 100644
--- a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/extensions/AWSEC2SecurityGroupExtensionExpectTest.java
+++ b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/extensions/AWSEC2SecurityGroupExtensionExpectTest.java
@@ -20,10 +20,17 @@ 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 java.util.Set;
+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;
import org.jclouds.aws.ec2.compute.internal.BaseAWSEC2ComputeServiceExpectTest;
import org.jclouds.compute.domain.SecurityGroup;
import org.jclouds.compute.domain.SecurityGroupBuilder;
@@ -36,15 +43,6 @@ 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 Andrew Bayer
@@ -354,6 +352,62 @@ public class AWSEC2SecurityGroupExtensionExpectTest extends BaseAWSEC2ComputeSer
assertTrue(newPerm.getTenantIdGroupNamePairs().values().contains(origGroup.getProviderId()));
}
+ 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());
+
+ HttpRequest describeSecurityGroupsByIdRequest =
+ formSigner.filter(HttpRequest.builder()
+ .method("POST")
+ .endpoint("https://ec2." + region + ".amazonaws.com/")
+ .addHeader("Host", "ec2." + region + ".amazonaws.com")
+ .addFormParam("Action", "DescribeSecurityGroups")
+ .addFormParam("GroupId.1", "sg-3c6ef654").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(describeSecurityGroupsByIdRequest, 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 + "/sg-3c6ef654", group.getId());
+ }
+
private Multimap<String, String> emptyMultimap() {
return LinkedHashMultimap.create();
}