@Test(groups = { "integration", "live" }, dependsOnMethods = "testCreateSecurityGroup") public void testCreateNodeWithInboundPorts() throws RunNodesException, InterruptedException, ExecutionException { ComputeService computeService = view.getComputeService(); Optional<SecurityGroupExtension> securityGroupExtension = computeService.getSecurityGroupExtension(); assertTrue(securityGroupExtension.isPresent(), "security group extension was not present"); NodeMetadata node = getOnlyElement(computeService.createNodesInGroup(nodeGroup, 1, options().inboundPorts(22, 23, 24, 8000))); try { Set<SecurityGroup> groups = securityGroupExtension.get().listSecurityGroupsForNode(node.getId()); assertEquals(groups.size(), 1, "node has " + groups.size() + " groups"); SecurityGroup group = getOnlyElement(groups); assertEquals(group.getIpPermissions().size(), 2); assertTrue(group.getIpPermissions().contains(IpPermissions.permit(TCP).fromPort(22).to(24))); assertTrue(group.getIpPermissions().contains(IpPermissions.permit(TCP).port(8000))); } finally { computeService.destroyNodesMatching(inGroup(node.getGroup())); } }