computeService = ctxBuilder.buildView(ComputeServiceContext.class).getComputeService();
void bindComputeService(ComputeService computeService) { String name = computeService.getContext().unwrap().getName(); if (name != null) { computeServiceMap.put(name, computeService); } }
ComputeServiceContext context = ContextBuilder.newBuilder("aws-ec2") .credentials("accessKey", "secretAccessKey") .buildView(ComputeServiceContext.class); ComputeService computeService = context.getComputeService(); AWSEC2Api ec2Api = context.unwrapApi(AWSEC2Api.class);
@Test(groups = { "integration", "live" }, singleThreaded = true, dependsOnMethods = "testRemoveIpPermissionWithCidrExclusionGroup", alwaysRun = true) public void testDeleteSecurityGroup() { skipIfSecurityGroupsNotSupported(); ComputeService computeService = view.getComputeService(); Optional<SecurityGroupExtension> securityGroupExtension = computeService.getSecurityGroupExtension(); assertTrue(securityGroupExtension.isPresent(), "security group extension was not present"); Optional<SecurityGroup> optGroup = getGroup(securityGroupExtension.get()); assertTrue(optGroup.isPresent()); SecurityGroup group = optGroup.get(); assertTrue(securityGroupExtension.get().removeSecurityGroup(group.getId())); }
@Test public void testDefaultTemplateBuilder() throws IOException { Template defaultTemplate = view.getComputeService().templateBuilder().build(); assertEquals(defaultTemplate.getImage().getOperatingSystem().getVersion(), "10.04"); assertEquals(defaultTemplate.getImage().getOperatingSystem().is64Bit(), true); assertEquals(defaultTemplate.getImage().getOperatingSystem().getFamily(), OsFamily.UBUNTU); assertEquals(getCores(defaultTemplate.getHardware()), 0.5d); }
@Test(groups = { "integration", "live" }, singleThreaded = true, dependsOnMethods = "testCreateImage") public void testSpawnNodeFromImage() throws RunNodesException { ComputeService computeService = view.getComputeService(); Optional<? extends Image> optImage = getImage(); assertTrue(optImage.isPresent()); NodeMetadata node = Iterables.getOnlyElement(computeService.createNodesInGroup("test-create-image", 1, view .getComputeService() // fromImage does not use the arg image's id (but we do need to set location) .templateBuilder().imageId(optImage.get().getId()).fromImage(optImage.get()).build())); checkReachable(node); view.getComputeService().destroyNode(node.getId()); }
@Test(groups = { "integration", "live" }, singleThreaded = true, dependsOnMethods = { "testCreateImage", "testSpawnNodeFromImage" }) public void testDeleteImage() { ComputeService computeService = view.getComputeService(); Optional<ImageExtension> imageExtension = computeService.getImageExtension(); assertTrue(imageExtension.isPresent(), "image extension was not present"); Optional<? extends Image> optImage = getImage(); assertTrue(optImage.isPresent()); Image image = optImage.get(); assertTrue(imageExtension.get().deleteImage(image.getId())); }
@Test public void testBiggestTemplateBuilder() throws IOException { Template template = view.getComputeService().templateBuilder().biggest().build(); assertEquals(getCores(template.getHardware()), 16.0d); assertEquals(template.getHardware().getRam(), 16); assertEquals(getSpace(template.getHardware()), 100.0d); assertEquals(template.getHardware().getVolumes().get(0).getType(), Volume.Type.LOCAL); }
@Test(groups = { "integration", "live" }, dependsOnMethods = "testCreateSecurityGroup") public void testCreateNodeWithSecurityGroup() 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().securityGroups(groupId))); try { Set<SecurityGroup> groups = securityGroupExtension.get().listSecurityGroupsForNode(node.getId()); assertEquals(groups.size(), 1, "node has " + groups.size() + " groups"); assertEquals(getOnlyElement(groups).getId(), groupId); } finally { computeService.destroyNodesMatching(inGroup(node.getGroup())); } }
@Test(groups = { "integration", "live" }, singleThreaded = true) public void testCreateImage() throws RunNodesException, InterruptedException, ExecutionException { ComputeService computeService = view.getComputeService(); Optional<ImageExtension> imageExtension = computeService.getImageExtension(); assertTrue(imageExtension.isPresent(), "image extension was not present"); Template template = getNodeTemplate(); NodeMetadata node = Iterables.getOnlyElement(computeService.createNodesInGroup("test-create-image", 1, template)); checkReachable(node); logger.info("Creating image from node %s, started with template: %s", node, template); ImageTemplate newImageTemplate = imageExtension.get().buildImageTemplateFromNode("test-create-image", node.getId()); Image image = imageExtension.get().createImage(newImageTemplate).get(); logger.info("Image created: %s", image); assertEquals("test-create-image", image.getName()); imageId = image.getId(); computeService.destroyNode(node.getId()); Optional<? extends Image> optImage = getImage(); assertTrue(optImage.isPresent()); }
private void deleteSecurityGroupFromAnotherView(SecurityGroup seedGroup) { ComputeServiceContext localView = createView(setupProperties(), setupModules()); try { ComputeService localComputeService = localView.getComputeService(); Optional<SecurityGroupExtension> securityGroupExtension = localComputeService.getSecurityGroupExtension(); assertTrue(securityGroupExtension.isPresent(), "security extension was not present"); final SecurityGroupExtension security = securityGroupExtension.get(); boolean deleted = security.removeSecurityGroup(seedGroup.getId()); assertTrue(deleted, "just created security group failed deletion"); } finally { localView.close(); } }
@Test public void testTemplateBuilderCanUseImageId() throws Exception { Template defaultTemplate = view.getComputeService().templateBuilder().build(); view.close(); setupContext(); Template template = view.getComputeService().templateBuilder().imageId(defaultTemplate.getImage().getId()) .locationId(defaultTemplate.getLocation().getId()).build(); assertEquals(template.getImage(), defaultTemplate.getImage()); }
@Test void testDescribeInstances() { for (String region : view.unwrapApi(AWSEC2Api.class).getAvailabilityZoneAndRegionApi().get().describeRegions().keySet()) { Set<? extends Reservation<? extends RunningInstance>> allResults = client.describeInstancesInRegion(region); assertNotNull(allResults); for (Reservation<? extends RunningInstance> result : allResults) { assertNotNull(result.getReservationId()); } } } }
private void cleanup() { if (securityGroupsSupported) { ComputeService computeService = view.getComputeService(); Optional<SecurityGroupExtension> securityGroupExtension = computeService.getSecurityGroupExtension(); if (securityGroupExtension.isPresent()) { Optional<SecurityGroup> group = getGroup(securityGroupExtension.get()); if (group.isPresent()) { securityGroupExtension.get().removeSecurityGroup(group.get().getId()); } } } }
@Test public void testAndExperiment() { ComputeServiceContext context = null; try { context = computeContextForKnownArgumentsAndConstantPassword(); assertEquals(context.getComputeService().listAssignableLocations().size(), 4); } finally { if (context != null) context.close(); } }
@Override protected void checkUserMetadataContains(NodeMetadata node, ImmutableMap<String, String> userMetadata) { if (view.unwrapApi(EC2Api.class).getTagApi().isPresent()) { super.checkUserMetadataContains(node, userMetadata); } else { assertTrue(node.getUserMetadata().isEmpty(), "not expecting metadata when tag extension isn't present: " + node); } }
@Test(enabled = true, dependsOnMethods = { "testListNodes", "testGetNodesWithDetails", "testListNodesByIds" }) public void testDestroyNodes() { int toDestroy = refreshNodes().size(); Set<? extends NodeMetadata> destroyed = client.destroyNodesMatching(inGroup(group)); assertEquals(toDestroy, destroyed.size()); for (NodeMetadata node : filter(client.listNodesDetailsMatching(all()), inGroup(group))) { assert node.getStatus() == Status.TERMINATED : node; assert view.utils().credentialStore().get("node#" + node.getId()) == null : "credential should have been null for " + "node#" + node.getId(); } }
@Test public void testTemplateBuilderFindsGigabitUplink() throws IOException { ComputeServiceContext context = null; try { Properties overrides = setupProperties(); overrides.setProperty(PROPERTY_SOFTLAYER_VIRTUALGUEST_PORT_SPEED, "1000"); context = createView(overrides, setupModules()); // TODO add something to the template about port speed? context.getComputeService().templateBuilder().build(); } finally { if (context != null) context.close(); } }
@Test(expectedExceptions = AWSResponseException.class) void testInvalidFilterInstances() { for (String region : view.unwrapApi(EC2Api.class).getAvailabilityZoneAndRegionApi().get().describeRegions().keySet()) { Set<? extends Reservation<? extends RunningInstance>> filterResults = client.describeInstancesInRegionWithFilter(region, ImmutableMultimap.<String, String>builder() .put("invalid-key", "some-value") .build()); } }}