private Optional<SecurityGroup> getGroup(SecurityGroupExtension ext) { return Iterables.tryFind(ext.listSecurityGroups(), new Predicate<SecurityGroup>() { @Override public boolean apply(SecurityGroup input) { return input.getId().equals(groupId); } }); }
Iterable<String> securityGroupNames = Iterables.transform(securityGroupExtension.listSecurityGroups(), new Function<org.jclouds.compute.domain.SecurityGroup, String>() { @Override public String apply(@Nullable org.jclouds.compute.domain.SecurityGroup input) {
public void testListSecurityGroups() { Builder<HttpRequest, HttpResponse> requestResponseMap = ImmutableMap.<HttpRequest, HttpResponse> builder(); requestResponseMap.put(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess); requestResponseMap.put(extensionsOfNovaRequest, extensionsOfNovaResponse); requestResponseMap.put(list, listResponse); SecurityGroupExtension extension = requestsSendResponses(requestResponseMap.build()).getSecurityGroupExtension().get(); Set<SecurityGroup> groups = extension.listSecurityGroups(); assertEquals(groups.size(), 1); }
Iterable<String> securityGroupNames = Iterables.transform(securityGroupExtension.listSecurityGroups(), new Function<org.jclouds.compute.domain.SecurityGroup, String>() { @Override public String apply(@Nullable org.jclouds.compute.domain.SecurityGroup input) {
@Test(groups = { "integration", "live" }, singleThreaded = true) public void testListSecurityGroups() throws RunNodesException, InterruptedException, ExecutionException { skipIfSecurityGroupsNotSupported(); ComputeService computeService = view.getComputeService(); Optional<SecurityGroupExtension> securityGroupExtension = computeService.getSecurityGroupExtension(); assertTrue(securityGroupExtension.isPresent(), "security extension was not present"); for (SecurityGroup securityGroup : securityGroupExtension.get().listSecurityGroups()) { logger.info(securityGroup.toString()); } }
private void verifyAndDeleteSecurityGroup(SecurityGroupExtension security, int countBeforeAdd, final SecurityGroup testGroup) { logger.info("Loading security groups"); Set<SecurityGroup> afterAdd = security.listSecurityGroups(); final int countAfterAdd = afterAdd.size(); logger.info("Found %d security groups", countAfterAdd); assertEquals(countAfterAdd, countBeforeAdd + 1); final Predicate<SecurityGroup> findTestGroup = new Predicate<SecurityGroup>() { @Override public boolean apply(SecurityGroup input) { return input.getName().equals(testGroup.getName()); } }; final SecurityGroup created = Iterables.find(afterAdd, findTestGroup); assertNotNull(created, "Did not find security group created as expected"); logger.info("Removing %s", testGroup.getName()); security.removeSecurityGroup(testGroup.getId()); logger.info("Loading security groups"); Set<SecurityGroup> afterRemove = security.listSecurityGroups(); final int sizeAfterRemove = afterRemove.size(); logger.info("Found %d security groups", sizeAfterRemove); assertEquals(sizeAfterRemove, countBeforeAdd); final Optional<SecurityGroup> removed = Iterables.tryFind(afterRemove, findTestGroup); assertTrue(!removed.isPresent(), "Did not remove test security group as expected"); } }
@Test(groups = {"integration", "live"}, singleThreaded = true) public void testListSecurityGroups() throws Exception { skipIfSecurityGroupsNotSupported(); final long begin = new Date().getTime(); ComputeService computeService = view.getComputeService(); Optional<SecurityGroupExtension> securityGroupExtension = computeService.getSecurityGroupExtension(); assertTrue(securityGroupExtension.isPresent(), "security extension was not present"); logger.info("Loading security groups"); final SecurityGroupExtension security = securityGroupExtension.get(); Set<SecurityGroup> beforeAdd = security.listSecurityGroups(); int countBeforeAdd = beforeAdd.size(); logger.info("Found %d security groups", countBeforeAdd); String someUnlikelyName = String.valueOf(new Random().nextInt(1000000) + 1000000); logger.info("Adding security group %s", someUnlikelyName); final SecurityGroup testGroup = security.createSecurityGroup(someUnlikelyName, getNodeTemplate().getLocation()); try { verifyAndDeleteSecurityGroup(security, countBeforeAdd, testGroup); } catch (Exception e) { logger.error(e, "Exception caught, live test leaking security group %s", testGroup.getName()); throw e; } final long end = new Date().getTime(); assertTrue(end - begin < TimeUnit.MINUTES.toMillis(5)); // see https://issues.apache.org/jira/browse/JCLOUDS-1235 }
public void testListSecurityGroups() { HttpRequest describeSecurityGroupsAllRequest = formSigner.filter(HttpRequest.builder() .method("POST") .endpoint("https://ec2." + region + ".amazonaws.com/") .addHeader("Host", "ec2." + region + ".amazonaws.com") .addFormParam("Action", "DescribeSecurityGroups").build()); HttpResponse describeSecurityGroupsAllResponse = HttpResponse.builder().statusCode(200) .payload(payloadFromResourceWithContentType( "/describe_securitygroups_extension_new.xml", MediaType.APPLICATION_XML)).build(); Builder<HttpRequest, HttpResponse> requestResponseMap = ImmutableMap.<HttpRequest, HttpResponse> builder(); requestResponseMap.put(describeRegionsRequest, describeRegionsResponse); requestResponseMap.put(describeAvailabilityZonesRequest, describeAvailabilityZonesResponse); requestResponseMap.put(describeSecurityGroupsAllRequest, describeSecurityGroupsAllResponse); requestResponseMap.put(createKeyPairRequest, createKeyPairResponse); requestResponseMap.put(createSecurityGroupRequest, createSecurityGroupResponse); requestResponseMap.put(authorizeSecurityGroupIngressRequest22, authorizeSecurityGroupIngressResponse); requestResponseMap.put(authorizeSecurityGroupIngressRequestGroup, authorizeSecurityGroupIngressResponse); requestResponseMap.put(describeInstanceRequest, describeInstanceResponse); SecurityGroupExtension extension = requestsSendResponses(requestResponseMap.build()).getSecurityGroupExtension().get(); Set<SecurityGroup> groups = extension.listSecurityGroups(); assertEquals(2, groups.size()); }
Optional<SecurityGroup> secGroup = Iterables.tryFind(securityGroupExtension.get().listSecurityGroups(), new Predicate<SecurityGroup>() { @Override
Optional<SecurityGroup> secGroup = Iterables.tryFind(securityGroupExtension.get().listSecurityGroups(), new Predicate<SecurityGroup>() { @Override
Optional<SecurityGroup> secGroup = Iterables.tryFind(securityGroupExtension.get().listSecurityGroups(), new Predicate<SecurityGroup>() { @Override
public void testListSecurityGroups() { HttpRequest listSecurityGroups = HttpRequest.builder().method("GET") .endpoint("http://localhost:8080/client/api") .addQueryParam("response", "json") .addQueryParam("command", "listSecurityGroups") .addQueryParam("listAll", "true") .addQueryParam("apiKey", "APIKEY") .addQueryParam("signature", "o+d8xxWT1Pa+I57SG2caFAblBYA=") .addHeader("Accept", "application/json") .build(); HttpResponse listSecurityGroupsResponse = HttpResponse.builder().statusCode(200) .payload(payloadFromResource("/listsecuritygroupsresponse.json")) .build(); Map<HttpRequest, HttpResponse> requestResponseMap = ImmutableMap.<HttpRequest, HttpResponse> builder() .put(listTemplates, listTemplatesResponse) .put(listOsTypes, listOsTypesResponse) .put(listOsCategories, listOsCategoriesResponse) .put(listZones, listZonesResponse) .put(listServiceOfferings, listServiceOfferingsResponse) .put(listAccounts, listAccountsResponse) .put(listNetworks, listNetworksResponse) .put(getZone, getZoneResponse) .put(listSecurityGroups, listSecurityGroupsResponse) .build(); SecurityGroupExtension extension = requestsSendResponses(requestResponseMap).getSecurityGroupExtension().get(); Set<SecurityGroup> groups = extension.listSecurityGroups(); assertEquals(groups.size(), 5); }
@Override public void provisionNetwork(VirtualNetwork network) { String name = network.config().get(VirtualNetwork.NETWORK_ID); SecurityGroupExtension extension = location.getComputeService().getSecurityGroupExtension().get(); Set<SecurityGroup> groups = extension.listSecurityGroups(); String id = null; // Look for existing security group with the desired name for (SecurityGroup each : groups) { if (each.getName().equalsIgnoreCase(name)) { id = each.getId(); break; } } // If not found then create a new group if (id == null) { Location region = location.getComputeService().listAssignableLocations().iterator().next(); SecurityGroup added = extension.createSecurityGroup(name, region); id = added.getId(); IpPermission rules = IpPermission.builder() .cidrBlock(network.config().get(VirtualNetwork.NETWORK_CIDR).toString()) .ipProtocol(IpProtocol.TCP) .fromPort(1) .toPort(65535) .build(); extension.addIpPermission(rules, added); LOG.info("Added new security group {} with ID {}: {}", new Object[] { added.getName(), id, rules.toString() }); } // Use the OpenStack UUID as the virtual network id network.sensors().set(VirtualNetwork.NETWORK_ID, id); }