@Override public SecurityGroup getSecurityGroupById(String id) { checkNotNull(id, "id"); org.jclouds.cloudstack.domain.SecurityGroup rawGroup = api.getSecurityGroupApi().getSecurityGroup(id); if (rawGroup == null) { return null; } return groupConverter.apply(rawGroup); }
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; }
@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); }
@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(); }