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()); } }
public SecurityGroup build() { return new SecurityGroup(id, account, name, description, domain, domainId, jobId, jobStatus, ingressRules); }
public static void deleteByName(CloudStackClient cloudStackClient, String securityGroupName) { try { SecurityGroup securityGroup = getByName(cloudStackClient, securityGroupName); LOG.info("Deleting SecurityGroup {}", securityGroup.getName()); cloudStackClient.getSecurityGroupClient().deleteSecurityGroup(securityGroup.getId()); } catch (NoSuchElementException e) { LOG.warn("Exception retrieving SecurityGroup (most likely it does not yet exist){}: {}", securityGroupName, e); } }
@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.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; }
String cidr = getCurrentCIDR(); ImmutableSet<String> cidrs = ImmutableSet.of(cidr); assertTrue(jobComplete.apply(client.getSecurityGroupClient().authorizeIngressICMPToCIDRs(group.getId(), 0, 8, cidrs)), group.toString()); assertTrue(jobComplete.apply(client.getSecurityGroupClient().authorizeIngressPortsToCIDRs(group.getId(), "TCP", 22, 22, cidrs)), group.toString()); AccountInDomainOptions.Builder.accountInDomain(group.getAccount(), group.getDomainId()); IngressRule ICMPPingRule = Iterables.find(group.getIngressRules(), new Predicate<IngressRule>() { assert cidr.equals(ICMPPingRule.getCIDR()) : ICMPPingRule; IngressRule SSHRule = Iterables.find(group.getIngressRules(), new Predicate<IngressRule>() {
@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(); } }
@Override public int compareTo(SecurityGroup o) { return id.compareTo(o.getId()); } }
@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(); }
@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 ext) { return name.equals(ext.getName()); }
.<SecurityGroup> builder() .add(SecurityGroup .builder() .id("13") .name("default") .add(SecurityGroup.builder().id("12").name("adriancole").account("adrian").domainId("1").domain("ROOT").build()) .add(SecurityGroup.builder().id("15").name("2").description("description").account("adrian").domainId("1") .domain("ROOT").build()) .add(SecurityGroup.builder().id("14").name("1").description("description").account("adrian").domainId("1") .domain("ROOT").ingressRules(ImmutableSet.of( .build()) .add(SecurityGroup .builder() .id("16") .name("with1and2")
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; }
@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))); }
String cidr = getCurrentCIDR(); ImmutableSet<String> cidrs = ImmutableSet.of(cidr); assertTrue(jobComplete.apply(client.getSecurityGroupApi().authorizeIngressICMPToCIDRs(group.getId(), 0, 8, cidrs)), group.toString()); assertTrue(jobComplete.apply(client.getSecurityGroupApi().authorizeIngressPortsToCIDRs(group.getId(), "TCP", 22, 22, cidrs)), group.toString()); AccountInDomainOptions.Builder.accountInDomain(group.getAccount(), group.getDomainId()); IngressRule ICMPPingRule = Iterables.find(group.getIngressRules(), new Predicate<IngressRule>() { assert cidr.equals(ICMPPingRule.getCIDR()) : ICMPPingRule; IngressRule SSHRule = Iterables.find(group.getIngressRules(), new Predicate<IngressRule>() {
@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(); } }
@Override public int compareTo(SecurityGroup o) { return id.compareTo(o.getId()); } }
@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(); }
private void cleanupOrphanedSecurityGroupsInZone(Set<String> groups, String zoneId) { Zone zone = zoneIdToZone.get().getUnchecked(zoneId); if (supportsSecurityGroups().apply(zone)) { for (String group : groups) { for (SecurityGroup securityGroup : Iterables.filter(client.getSecurityGroupApi().listSecurityGroups(), SecurityGroupPredicates.nameMatches(namingConvention.create().containsGroup(group)))) { ZoneAndName zoneAndName = ZoneAndName.fromZoneAndName(zoneId, securityGroup.getName()); logger.debug(">> deleting securityGroup(%s)", zoneAndName); client.getSecurityGroupApi().deleteSecurityGroup(securityGroup.getId()); // TODO: test this clear happens securityGroupMap.invalidate(zoneAndName); logger.debug("<< deleted securityGroup(%s)", zoneAndName); } } } }
@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; } }); }