@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); groupCreator.invalidate(new RegionNameAndIngressRules(region, group.getName(), null, false, null)); return true; } else { for (Map.Entry<RegionAndName, String> cachedSg : groupCreator.asMap().entrySet()) { if (groupId.equals(cachedSg.getValue())) { groupCreator.invalidate(cachedSg.getKey()); break; } } return false; } }
@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); groupCreator.invalidate(new RegionNameAndIngressRules(region, group.getName(), null, false, null)); return true; } else { for (Map.Entry<RegionAndName, String> cachedSg : groupCreator.asMap().entrySet()) { if (groupId.equals(cachedSg.getValue())) { groupCreator.invalidate(cachedSg.getKey()); break; } } return false; } }
@Override protected void cleanupResource(Resource resource) { securityGroupApi().deleteSecurityGroupInRegionById(null, resource.id); }
@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; }
@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()); } } }
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"); }