protected void cleanupAndSleep(String groupName) { try { client.deleteSecurityGroupInRegion(null, groupName); Thread.sleep(2000); } catch (Exception e) { } }
@Override public boolean removeSecurityGroup(String id) { checkNotNull(id, "id"); String[] parts = AWSUtils.parseHandle(id); String region = parts[0]; String groupName = parts[1]; boolean deleted = false; if (!client.getSecurityGroupApi().get().describeSecurityGroupsInRegion(region, groupName).isEmpty()) { client.getSecurityGroupApi().get().deleteSecurityGroupInRegion(region, groupName); deleted = true; } groupCreator.invalidate(new RegionNameAndIngressRules(region, groupName, null, false, null)); return deleted; }
@Override public boolean removeSecurityGroup(String id) { checkNotNull(id, "id"); String[] parts = AWSUtils.parseHandle(id); String region = parts[0]; String groupName = parts[1]; if (!client.getSecurityGroupApi().get().describeSecurityGroupsInRegion(region, groupName).isEmpty()) { client.getSecurityGroupApi().get().deleteSecurityGroupInRegion(region, groupName); // TODO: test this clear happens groupCreator.invalidate(new RegionNameAndIngressRules(region, groupName, null, false, null)); return true; } return false; }
@Override public boolean removeSecurityGroup(String id) { checkNotNull(id, "id"); String[] parts = AWSUtils.parseHandle(id); String region = parts[0]; String groupName = parts[1]; boolean deleted = false; if (!client.getSecurityGroupApi().get().describeSecurityGroupsInRegion(region, groupName).isEmpty()) { client.getSecurityGroupApi().get().deleteSecurityGroupInRegion(region, groupName); deleted = true; } groupCreator.invalidate(new RegionNameAndIngressRules(region, groupName, null, false, null)); return deleted; }
/** * @throws IllegalStateException If the security group was in use */ @VisibleForTesting void deleteSecurityGroup(String region, String group) { checkNotNull(emptyToNull(region), "region must be defined"); checkNotNull(emptyToNull(group), "group must be defined"); String groupName = namingConvention.create().sharedNameForGroup(group); if (!client.getSecurityGroupApi().get().describeSecurityGroupsInRegion(region, groupName).isEmpty()) { logger.debug(">> deleting securityGroup(%s)", groupName); client.getSecurityGroupApi().get().deleteSecurityGroupInRegion(region, groupName); // TODO: test this clear happens securityGroupMap.invalidate(new RegionNameAndIngressRules(region, groupName, null, false, null)); logger.debug("<< deleted securityGroup(%s)", groupName); } }
@Test void testCreateSecurityGroup() { String groupName = PREFIX + "1"; cleanupAndSleep(groupName); try { String groupDescription = PREFIX + "1 description"; client.deleteSecurityGroupInRegion(null, groupName); client.createSecurityGroupInRegion(null, groupName, groupDescription); verifySecurityGroup(groupName, groupDescription); } finally { client.deleteSecurityGroupInRegion(null, groupName); } }
@Test(enabled = false) void testCreateSecurityGroupIngressCidr() throws InterruptedException, ExecutionException, TimeoutException { securityGroupName = instancePrefix + "ingress"; try { client.getSecurityGroupApi().get().deleteSecurityGroupInRegion(null, securityGroupName); } catch (Exception e) { } client.getSecurityGroupApi().get().createSecurityGroupInRegion(null, securityGroupName, securityGroupName); for (int port : new int[] { 80, 443, 22 }) { client.getSecurityGroupApi().get().authorizeSecurityGroupIngressInRegion(null, securityGroupName, IpProtocol.TCP, port, port, "0.0.0.0/0"); } }
@Test(enabled = false) void testCreateSecurityGroupIngressCidr() throws InterruptedException, ExecutionException, TimeoutException { securityGroupName = INSTANCE_PREFIX + "ingress"; try { client.getSecurityGroupApi().get().deleteSecurityGroupInRegion(null, securityGroupName); } catch (Exception e) { } client.getSecurityGroupApi().get().createSecurityGroupInRegion(null, securityGroupName, securityGroupName); client.getSecurityGroupApi().get().authorizeSecurityGroupIngressInRegion(null, securityGroupName, IpProtocol.TCP, 80, 80, "0.0.0.0/0"); client.getSecurityGroupApi().get().authorizeSecurityGroupIngressInRegion(null, securityGroupName, IpProtocol.TCP, 443, 443, "0.0.0.0/0"); client.getSecurityGroupApi().get().authorizeSecurityGroupIngressInRegion(null, securityGroupName, IpProtocol.TCP, 22, 22, "0.0.0.0/0"); }
public void testDeleteSecurityGroupByNameWhen404() { HttpResponse deleteResponse = HttpResponse.builder().statusCode(404).build(); EC2Api apiWhenNotExist = requestsSendResponses( describeRegionsRequest, describeRegionsResponse, deleteByName, deleteResponse); apiWhenNotExist.getSecurityGroupApi().get().deleteSecurityGroupInRegion("us-east-1", "jclouds#some-group"); } }
@AfterTest void cleanup() throws InterruptedException, ExecutionException, TimeoutException { if (address != null) client.getElasticIPAddressApi().get().releaseAddressInRegion(null, address); if (instanceId != null) client.getInstanceApi().get().terminateInstancesInRegion(null, instanceId); if (keyPair != null) client.getKeyPairApi().get().deleteKeyPairInRegion(null, keyPair.getKeyName()); if (securityGroupName != null) client.getSecurityGroupApi().get().deleteSecurityGroupInRegion(null, securityGroupName); }
protected static void cleanupExtendedStuffInRegion(String region, SecurityGroupApi securityGroupClient, KeyPairApi keyPairClient, String group) throws InterruptedException { try { for (SecurityGroup secgroup : securityGroupClient.describeSecurityGroupsInRegion(region)) if (secgroup.getName().startsWith("jclouds#" + group) || secgroup.getName().equals(group)) { securityGroupClient.deleteSecurityGroupInRegion(region, secgroup.getName()); } } catch (Exception e) { } try { for (KeyPair pair : keyPairClient.describeKeyPairsInRegion(region)) if (pair.getKeyName().startsWith("jclouds#" + group) || pair.getKeyName().equals(group)) { keyPairClient.deleteKeyPairInRegion(region, pair.getKeyName()); } } catch (Exception e) { } Thread.sleep(2000); }
public void testDeleteSecurityGroupByName() { HttpResponse deleteResponse = HttpResponse.builder().statusCode(200) .payload(payloadFromResourceWithContentType("/delete_securitygroup.xml", "text/xml")).build(); EC2Api apiWhenNotExist = requestsSendResponses( describeRegionsRequest, describeRegionsResponse, deleteByName, deleteResponse); apiWhenNotExist.getSecurityGroupApi().get().deleteSecurityGroupInRegion("us-east-1", "jclouds#some-group"); }
assertEventually(new GroupHasNoPermissions(client, group2Name)); } finally { client.deleteSecurityGroupInRegion(null, group2Name); client.deleteSecurityGroupInRegion(null, group1Name);
assertEventually(new GroupHasNoPermissions(client, group2Name)); } finally { client.deleteSecurityGroupInRegion(null, group2Name); client.deleteSecurityGroupInRegion(null, group1Name);
assertEventually(new GroupHasNoPermissions(client, group2Name)); } finally { client.deleteSecurityGroupInRegion(null, group2Name); client.deleteSecurityGroupInRegion(null, group1Name);
client.getSecurityGroupApi().get().deleteSecurityGroupInRegion(null, securityGroupName); } catch (Exception e) { e.printStackTrace();
@Test void testAuthorizeSecurityGroupIngressSourcePort() { String groupName = PREFIX + "ingress"; cleanupAndSleep(groupName); try { client.createSecurityGroupInRegion(null, groupName, groupName); client.authorizeSecurityGroupIngressInRegion(null, groupName, IpProtocol.TCP, 80, 80, "0.0.0.0/0"); assertEventually(new GroupHasPermission(client, groupName, new TCPPort80AllIPs())); client.revokeSecurityGroupIngressInRegion(null, groupName, IpProtocol.TCP, 80, 80, "0.0.0.0/0"); assertEventually(new GroupHasNoPermissions(client, groupName)); } finally { client.deleteSecurityGroupInRegion(null, groupName); } }
@Test void testAuthorizeSecurityGroupIngressCidr() { String groupName = PREFIX + "ingress"; cleanupAndSleep(groupName); try { client.createSecurityGroupInRegion(null, groupName, groupName); client.authorizeSecurityGroupIngressInRegion(null, groupName, IpProtocol.TCP, 80, 80, "0.0.0.0/0"); assertEventually(new GroupHasPermission(client, groupName, new TCPPort80AllIPs())); client.revokeSecurityGroupIngressInRegion(null, groupName, IpProtocol.TCP, 80, 80, "0.0.0.0/0"); assertEventually(new GroupHasNoPermissions(client, groupName)); } finally { client.deleteSecurityGroupInRegion(null, groupName); } }
@Test(timeout = TestConstants.ITEST_TIMEOUT) public void testFirewallAuthorizationIsIdempotent() throws IOException { if (EC2ComputeService.class.isInstance(context.getComputeService())) { EC2Api api = context.unwrapApi(EC2Api.class); String groupName = "jclouds#" + clusterSpec.getClusterName(); api.getSecurityGroupApi().get().createSecurityGroupInRegion(region, groupName, "group description"); try { manager.addRule( Rule.create().destination(instances).port(23344) ); /* The second call should not throw an exception. */ manager.addRule( Rule.create().destination(instances).port(23344) ); manager.authorizeAllRules(); } finally { api.getSecurityGroupApi().get() .deleteSecurityGroupInRegion(region, groupName); } } }