@Override public boolean apply(SecurityGroup group) { return Iterables.any(group.getIngressRules(), new Predicate<IngressRule>() { @Override public boolean apply(IngressRule rule) { return rule.getCIDR() != null && rule.getCIDR().equals(cidr); } }); }
@Override public boolean apply(SecurityGroup group) { return Iterables.any(group.getIngressRules(), new Predicate<IngressRule>() { @Override public boolean apply(IngressRule rule) { return rule.getStartPort() <= port && rule.getEndPort() >= port; } }); }
@Override public boolean apply(SecurityGroup group) { return Iterables.any(group.getIngressRules(), new Predicate<IngressRule>() { @Override public boolean apply(IngressRule rule) { return rule.getCIDR() != null && rule.getCIDR().equals(cidr) && rule.getStartPort() <= port && rule.getEndPort() >= port; } }); }
public static void deleteNetworkRules(CloudStackClient cloudStackClient, SecurityGroup securityGroup) { for (IngressRule rule : securityGroup.getIngressRules()) { cloudStackClient.getSecurityGroupClient().revokeIngressRule(rule.getId()); } }
@Test public void testRuleCidrMatches() { assertTrue(Iterables.any(group().getIngressRules(), ruleCidrMatches("tcp", 40, 50, ImmutableSet.of("1.1.1.1/24")))); assertFalse(Iterables.any(group().getIngressRules(), ruleCidrMatches("tcp", 40, 50, ImmutableSet.of("2.2.2.2/24")))); }
@Test public void testRuleGroupMatches() { assertTrue(Iterables.any(group().getIngressRules(), ruleGroupMatches("tcp", 22, 22, ImmutableMultimap.<String, String>builder().put("adrian", "adriancole").build()))); assertFalse(Iterables.any(group().getIngressRules(), ruleGroupMatches("tcp", 22, 22, ImmutableMultimap.<String, String>builder().put("adrian", "somegroup").build()))); assertFalse(Iterables.any(group().getIngressRules(), ruleGroupMatches("tcp", 22, 22, ImmutableMultimap.<String, String>builder().put("someuser", "adriancole").build()))); } }
@Override public boolean removeSecurityGroup(String id) { checkNotNull(id, "id"); org.jclouds.cloudstack.domain.SecurityGroup group = api.getSecurityGroupApi().getSecurityGroup(id); if (group == null) { invalidateCache(id); return false; } for (IngressRule rule : group.getIngressRules()) { jobComplete.apply(api.getSecurityGroupApi().revokeIngressRule(rule.getId())); } api.getSecurityGroupApi().deleteSecurityGroup(id); invalidateCache(id); return true; }
@Override public SecurityGroup removeIpPermission(IpPermission ipPermission, SecurityGroup group) { checkNotNull(group, "group"); checkNotNull(ipPermission, "ipPermission"); String id = checkNotNull(group.getId(), "group.getId()"); org.jclouds.cloudstack.domain.SecurityGroup rawGroup = api.getSecurityGroupApi() .getSecurityGroup(id); if (!ipPermission.getCidrBlocks().isEmpty()) { for (IngressRule rule : filter(rawGroup.getIngressRules(), ruleCidrMatches(ipPermission.getIpProtocol().toString(), ipPermission.getFromPort(), ipPermission.getToPort(), ipPermission.getCidrBlocks()))) { jobComplete.apply(api.getSecurityGroupApi().revokeIngressRule(rule.getId())); } } if (!ipPermission.getTenantIdGroupNamePairs().isEmpty()) { for (IngressRule rule : filter(rawGroup.getIngressRules(), ruleGroupMatches(ipPermission.getIpProtocol().toString(), ipPermission.getFromPort(), ipPermission.getToPort(), ipPermission.getTenantIdGroupNamePairs()))) { jobComplete.apply(api.getSecurityGroupApi().revokeIngressRule(rule.getId())); } } return getSecurityGroupById(id); }
protected void checkGroup(SecurityGroup group) { // http://bugs.cloud.com/show_bug.cgi?id=8968 if (group.getIngressRules().size() <= 1) assertEquals(group, client.getSecurityGroupClient().getSecurityGroup(group.getId())); assert group.getId() != null : group; assert group.getName() != null : group; assert group.getAccount() != null : group; assert group.getDomain() != null : group; assert group.getDomainId() != null : group; assert group.getIngressRules() != null : group; }
@Override public SecurityGroup apply(org.jclouds.cloudstack.domain.SecurityGroup group) { SecurityGroupBuilder builder = new SecurityGroupBuilder(); builder.id(group.getId()); builder.providerId(group.getId()); builder.name(group.getName()); builder.ownerId(group.getAccount()); builder.ipPermissions(transform(group.getIngressRules(), ruleToPermission)); return builder.build(); } }
protected void checkGroup(SecurityGroup group) { // http://bugs.cloud.com/show_bug.cgi?id=8968 if (group.getIngressRules().size() <= 1) { assertEquals(group, client.getSecurityGroupApi().getSecurityGroup(group.getId())); assertEquals(group, client.getSecurityGroupApi().getSecurityGroupByName(group.getName())); } assert group.getId() != null : group; assert group.getName() != null : group; assert group.getAccount() != null : group; assert group.getDomain() != null : group; assert group.getDomainId() != null : group; assert group.getIngressRules() != null : group; }
@AfterGroups(groups = "live") @Override protected void tearDownContext() { if (vm != null) { assertTrue(jobComplete.apply(client.getVirtualMachineClient().destroyVirtualMachine(vm.getId()))); } if (group != null) { for (IngressRule rule : group.getIngressRules()) assertTrue(jobComplete.apply(client.getSecurityGroupClient().revokeIngressRule(rule.getId())), rule.toString()); client.getSecurityGroupClient().deleteSecurityGroup(group.getId()); assertEquals(client.getSecurityGroupClient().getSecurityGroup(group.getId()), null); } super.tearDownContext(); }
@AfterGroups(groups = "live") @Override protected void tearDownContext() { if (vm != null) { assertTrue(jobComplete.apply(client.getVirtualMachineApi().destroyVirtualMachine(vm.getId()))); } if (group != null) { for (IngressRule rule : group.getIngressRules()) assertTrue(jobComplete.apply(client.getSecurityGroupApi().revokeIngressRule(rule.getId())), rule.toString()); client.getSecurityGroupApi().deleteSecurityGroup(group.getId()); assertEquals(client.getSecurityGroupApi().getSecurityGroup(group.getId()), null); } super.tearDownContext(); }
@Test public void testCreateDestroySecurityGroup() { try { zone = Iterables.find(client.getZoneClient().listZones(), new Predicate<Zone>() { @Override public boolean apply(Zone arg0) { return arg0.isSecurityGroupsEnabled(); } }); securityGroupsSupported = true; for (SecurityGroup securityGroup : client.getSecurityGroupClient().listSecurityGroups( ListSecurityGroupsOptions.Builder.named(prefix))) { for (IngressRule rule : securityGroup.getIngressRules()) assertTrue(jobComplete.apply(client.getSecurityGroupClient().revokeIngressRule(rule.getId())), rule.toString()); client.getSecurityGroupClient().deleteSecurityGroup(securityGroup.getId()); } group = client.getSecurityGroupClient().createSecurityGroup(prefix); assertEquals(group.getName(), prefix); checkGroup(group); try { client.getSecurityGroupClient().createSecurityGroup(prefix); fail("Expected IllegalStateException"); } catch (IllegalStateException e) { } } catch (NoSuchElementException e) { e.printStackTrace(); } }
IngressRule ICMPPingRule = Iterables.find(group.getIngressRules(), new Predicate<IngressRule>() { assert cidr.equals(ICMPPingRule.getCIDR()) : ICMPPingRule; IngressRule SSHRule = Iterables.find(group.getIngressRules(), new Predicate<IngressRule>() {
public T fromSecurityGroup(SecurityGroup in) { return this .id(in.getId()) .account(in.getAccount()) .name(in.getName()) .description(in.getDescription()) .domain(in.getDomain()) .domainId(in.getDomainId()) .jobId(in.getJobId()) .jobStatus(in.getJobStatus()) .ingressRules(in.getIngressRules()); } }
@Test public void testCreateDestroySecurityGroup() { try { zone = Iterables.find(client.getZoneApi().listZones(), new Predicate<Zone>() { @Override public boolean apply(Zone arg0) { return arg0.isSecurityGroupsEnabled(); } }); securityGroupsSupported = true; for (SecurityGroup securityGroup : client.getSecurityGroupApi().listSecurityGroups( ListSecurityGroupsOptions.Builder.named(prefix))) { for (IngressRule rule : securityGroup.getIngressRules()) assertTrue(jobComplete.apply(client.getSecurityGroupApi().revokeIngressRule(rule.getId())), rule.toString()); client.getSecurityGroupApi().deleteSecurityGroup(securityGroup.getId()); } group = client.getSecurityGroupApi().createSecurityGroup(prefix); assertEquals(group.getName(), prefix); checkGroup(group); try { client.getSecurityGroupApi().createSecurityGroup(prefix); fail("Expected IllegalStateException"); } catch (IllegalStateException e) { } } catch (NoSuchElementException e) { e.printStackTrace(); } }
public T fromSecurityGroup(SecurityGroup in) { return this .id(in.getId()) .account(in.getAccount()) .name(in.getName()) .description(in.getDescription()) .domain(in.getDomain()) .domainId(in.getDomainId()) .jobId(in.getJobId()) .jobStatus(in.getJobStatus()) .ingressRules(in.getIngressRules()); } }
@Test public void testApply() { IngressRule ruleToConvert = IngressRule.builder() .id("some-id") .account("some-account") .securityGroupName("some-group-name") .protocol(IpProtocol.TCP.toString()) .startPort(10) .endPort(20) .CIDR("0.0.0.0/0") .build(); org.jclouds.cloudstack.domain.SecurityGroup origGroup = org.jclouds.cloudstack.domain.SecurityGroup.builder() .id("some-id") .name("some-group") .description("some-description") .account("some-account") .ingressRules(ImmutableSet.of(ruleToConvert)) .build(); CloudStackSecurityGroupToSecurityGroup parser = createGroupParser(); SecurityGroup group = parser.apply(origGroup); assertEquals(group.getId(), origGroup.getId()); assertEquals(group.getProviderId(), origGroup.getId()); assertEquals(group.getName(), origGroup.getName()); assertEquals(group.getOwnerId(), origGroup.getAccount()); assertEquals(group.getIpPermissions(), ImmutableSet.copyOf(transform(origGroup.getIngressRules(), ruleConverter))); }
public T fromSecurityGroup(SecurityGroup in) { return this .id(in.getId()) .account(in.getAccount()) .name(in.getName()) .description(in.getDescription()) .domain(in.getDomain()) .domainId(in.getDomainId()) .jobId(in.getJobId()) .jobStatus(in.getJobStatus()) .ingressRules(in.getIngressRules()) .tags(in.getTags()); } }