@Override public SecurityGroup addIpPermission(IpPermission ipPermission, SecurityGroup group) { String region = AWSUtils.getRegionFromLocationOrNull(group.getLocation()); String id = group.getProviderId(); client.getSecurityGroupApi().get().authorizeSecurityGroupIngressInRegion(region, id, ipPermission); return getSecurityGroupById(group.getId()); }
@Override public boolean removeSecurityGroup(String id) { checkNotNull(id, "id"); String[] parts = AWSUtils.parseHandle(id); String region = parts[0]; String groupId = parts[1]; org.jclouds.ec2.domain.SecurityGroup group = Iterables.getFirst( client.getSecurityGroupApi().get().describeSecurityGroupsInRegionById(region, groupId), null); if (group != null) { client.getSecurityGroupApi().get().deleteSecurityGroupInRegionById(region, groupId); // TODO: test this clear happens groupCreator.invalidate(new RegionNameAndIngressRules(region, group.getName(), null, false)); return true; } return false; }
@Override public SecurityGroup removeIpPermission(IpPermission ipPermission, SecurityGroup group) { String region = AWSUtils.getRegionFromLocationOrNull(group.getLocation()); String id = group.getProviderId(); client.getSecurityGroupApi().get().revokeSecurityGroupIngressInRegion(region, id, ipPermission); return getSecurityGroupById(group.getId()); }
@Override protected Resource createResourceForTagging(String prefix) { try { return new Resource(securityGroupApi().createSecurityGroupInRegionAndReturnId(null, prefix, prefix), SECURITY_GROUP); } catch (IllegalStateException e) { return new Resource(Iterables.get(securityGroupApi().describeSecurityGroupsInRegion(null, prefix), 0).getId(), SECURITY_GROUP); } }
options.vpcId(vpcId); String id = securityApi.createSecurityGroupInRegionAndReturnId(region, name, name, options); boolean created = securityGroupEventualConsistencyDelay.apply(new RegionAndName(region, name)); if (!created) Set<SecurityGroup> securityGroups = securityApi.describeSecurityGroupsInRegionById(region, id); if (securityGroups.isEmpty()) { throw new IllegalStateException(String.format("security group %s/%s not found after creating", region, name)); securityApi.authorizeSecurityGroupIngressInRegion(region, id, perms); logger.debug("<< authorized securityGroup(%s)", name);
cleanupAndSleep(group1Name); try { final String group1Id = AWSSecurityGroupApi.class.cast(client).createSecurityGroupInRegionAndReturnId(null, group1Name, group1Name); final String group2Id = AWSSecurityGroupApi.class.cast(client).createSecurityGroupInRegionAndReturnId(null, group2Name, group2Name); Thread.sleep(100); // eventual consistent ensureGroupsExist(group1Name, group2Name); AWSSecurityGroupApi.class.cast(client).authorizeSecurityGroupIngressInRegion(null, group1Id, IpPermissions.permit(IpProtocol.TCP).port(80)); assertEventually(new GroupHasPermission(client, group1Name, new TCPPort80AllIPs())); IpPermissions group2CanHttpGroup1 = IpPermissions.permit(IpProtocol.TCP).port(80) .originatingFromSecurityGroupId(group1Id); AWSSecurityGroupApi.class.cast(client).authorizeSecurityGroupIngressInRegion(null, group2Id, group2CanHttpGroup1); assertEventually(new GroupHasPermission(client, group2Name, new Predicate<IpPermission>() { AWSSecurityGroupApi.class.cast(client).revokeSecurityGroupIngressInRegion(null, group2Id, group2CanHttpGroup1); assertEventually(new GroupHasNoPermissions(client, group2Name));
securityApi.createSecurityGroupInRegion(region, name, name); boolean created = securityGroupEventualConsistencyDelay.apply(new RegionAndName(region, name)); if (!created) String myOwnerId = Iterables.get(securityApi.describeSecurityGroupsInRegion(region, name), 0).getOwnerId(); permissions.add(IpPermission.builder() .fromPort(0) securityApi.authorizeSecurityGroupIngressInRegion(region, id, perms); logger.debug("<< authorized securityGroup(%s)", name);
@Test void testCreateSecurityGroupInVpc() { String region = "us-west-2"; String groupName = PREFIX + "1" + new Random().nextInt(10000); String description = "jclouds testCreateSecurityGroupInVpc"; VPCApi vpcClient = AWSEC2Api.class.cast(ec2Api).getVPCApi().get(); AWSSecurityGroupApi sgClient = AWSSecurityGroupApi.class.cast(client); VPC vpc = vpcClient.createVpc(region, "10.0.0.0/16", CreateVpcOptions.NONE); try { String sgId = sgClient.createSecurityGroupInRegionAndReturnId( region, groupName, description, CreateSecurityGroupOptions.Builder.vpcId(vpc.id())); try { Set<SecurityGroup> securityGroups = sgClient.describeSecurityGroupsInRegionWithFilter( region, ImmutableMultimap.of("vpc-id", vpc.id(), "group-id", sgId)); SecurityGroup sg = Iterables.getOnlyElement(securityGroups); assertEquals(sg.getId(), sgId); assertEquals(sg.getId(), sgId); } finally { sgClient.deleteSecurityGroupInRegionById(region, sgId); } } finally { vpcClient.deleteVpc(region, vpc.id()); } } }
String groupId = securityGroupApi.createSecurityGroupInRegionAndReturnId(region, group, group); securityGroupApi.authorizeSecurityGroupIngressInRegion(region, groupId, permit(IpProtocol.TCP).port(22)); assertEquals(securityGroupApi.describeSecurityGroupsInRegion(region, group).size(), 1);
@Override public SecurityGroup getSecurityGroupById(String id) { checkNotNull(id, "id"); String[] parts = AWSUtils.parseHandle(id); String region = parts[0]; String groupId = parts[1]; Set<? extends org.jclouds.ec2.domain.SecurityGroup> rawGroups = client.getSecurityGroupApi().get().describeSecurityGroupsInRegionById(region, groupId); return getOnlyElement(transform(filter(rawGroups, notNull()), groupConverter)); }
@Override protected void cleanupResource(Resource resource) { securityGroupApi().deleteSecurityGroupInRegionById(null, resource.id); }
public void describeSecurityGroupsGiving404() throws Exception { enqueueRegions(DEFAULT_REGION); enqueue(DEFAULT_REGION, new MockResponse().setResponseCode(404)); Set<SecurityGroup> results = securityGroupApi().describeSecurityGroupsInRegion(DEFAULT_REGION); assertEquals(results, ImmutableSet.of()); assertPosted(DEFAULT_REGION, "Action=DescribeRegions"); assertPosted(DEFAULT_REGION, "Action=DescribeSecurityGroups"); }
public void createSecurityGroupsInRegionAndReturnId() throws Exception { enqueueRegions(DEFAULT_REGION); enqueue(DEFAULT_REGION, new MockResponse().setBody(createSecurityGroupResponse)); String result = securityGroupApi().createSecurityGroupInRegionAndReturnId(DEFAULT_REGION, "WebServers", "Web Servers", CreateSecurityGroupOptions.Builder.vpcId("vpc-614cc409")); assertEquals(result, "sg-0a42d66a"); assertPosted(DEFAULT_REGION, "Action=DescribeRegions"); assertPosted(DEFAULT_REGION, "Action=CreateSecurityGroup&GroupName=WebServers&GroupDescription=Web%20Servers&VpcId=vpc-614cc409"); }
public void describeSecurityGroupsFiltered() throws Exception { enqueueRegions(DEFAULT_REGION); enqueue(DEFAULT_REGION, new MockResponse().setBody(describeSecurityGroupsResponse)); Set<SecurityGroup> results = securityGroupApi().describeSecurityGroupsInRegionWithFilter(DEFAULT_REGION, ImmutableMultimap.of("group-name", "WebServers", "vpc-id", "vpc-614cc409")); SecurityGroup result = Iterables.getOnlyElement(results); assertEquals(result.getId(), "sg-1a2b3c4d"); assertPosted(DEFAULT_REGION, "Action=DescribeRegions"); assertPosted(DEFAULT_REGION, "Action=DescribeSecurityGroups&Filter.1.Name=group-name&Filter.1.Value.1=WebServers&Filter.2.Name=vpc-id&Filter.2.Value.1=vpc-614cc409"); }
options.vpcId(vpcId); String id = securityApi.createSecurityGroupInRegionAndReturnId(region, name, name, options); boolean created = securityGroupEventualConsistencyDelay.apply(new RegionAndName(region, name)); if (!created) Set<SecurityGroup> securityGroups = securityApi.describeSecurityGroupsInRegionById(region, id); if (securityGroups.isEmpty()) { throw new IllegalStateException(String.format("security group %s/%s not found after creating", region, name)); securityApi.authorizeSecurityGroupIngressInRegion(region, id, perms); logger.debug("<< authorized securityGroup(%s)", name);
@Override public SecurityGroup getSecurityGroupById(String id) { checkNotNull(id, "id"); String[] parts = AWSUtils.parseHandle(id); String region = parts[0]; String groupId = parts[1]; Set<? extends org.jclouds.ec2.domain.SecurityGroup> rawGroups = client.getSecurityGroupApi().get().describeSecurityGroupsInRegionById(region, groupId); return getOnlyElement(transform(filter(rawGroups, notNull()), groupConverter)); }
public void deleteSecurityGroups() throws Exception { enqueueRegions(DEFAULT_REGION); enqueue(DEFAULT_REGION, new MockResponse().setBody(deleteSecurityGroupResponse)); securityGroupApi().deleteSecurityGroupInRegionById(DEFAULT_REGION, "sg-1a2b3c4d"); assertPosted(DEFAULT_REGION, "Action=DescribeRegions"); assertPosted(DEFAULT_REGION, "Action=DeleteSecurityGroup&GroupId=sg-1a2b3c4d"); }
@SuppressWarnings("deprecation") public void describeSecurityGroups() throws Exception { enqueueRegions(DEFAULT_REGION); enqueue(DEFAULT_REGION, new MockResponse().setBody(describeSecurityGroupsResponse)); Set<SecurityGroup> results = securityGroupApi().describeSecurityGroupsInRegion(DEFAULT_REGION); SecurityGroup result = Iterables.getOnlyElement(results); assertEquals(result.getId(), "sg-1a2b3c4d"); assertEquals(result.getRegion(), "us-east-1"); assertEquals(result.getName(), "WebServers"); assertEquals(result.getOwnerId(), "123456789012"); assertEquals(result.getDescription(), "Web Servers"); assertPosted(DEFAULT_REGION, "Action=DescribeRegions"); assertPosted(DEFAULT_REGION, "Action=DescribeSecurityGroups"); }
cleanupAndSleep(group1Name); try { final String group1Id = AWSSecurityGroupApi.class.cast(client).createSecurityGroupInRegionAndReturnId(null, group1Name, group1Name); String group2Id = AWSSecurityGroupApi.class.cast(client).createSecurityGroupInRegionAndReturnId(null, group2Name, group2Name); ensureGroupsExist(group1Name, group2Name);
client.createSecurityGroupInRegionAndReturnId("region", "group", "group", new CreateSecurityGroupOptions().vpcId("vpc"))).andReturn("sg-123456"); expect(group.getOwnerId()).andReturn("ownerId"); client.authorizeSecurityGroupIngressInRegion("region", "sg-123456", permissions.build()); expect(client.describeSecurityGroupsInRegionById("region", "sg-123456")) .andReturn(Set.class.cast(groups));