@VisibleForTesting void deletePlacementGroup(String region, String group) { checkNotNull(emptyToNull(group), "group must be defined"); // placementGroupName must be unique within an account per // http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/index.html?using_cluster_computing.html String placementGroup = String.format("jclouds#%s#%s", group, region); try { if (client.getPlacementGroupApi().get().describePlacementGroupsInRegion(region, placementGroup).size() > 0) { logger.debug(">> deleting placementGroup(%s)", placementGroup); try { client.getPlacementGroupApi().get().deletePlacementGroupInRegion(region, placementGroup); checkState(placementGroupDeleted.apply(new PlacementGroup(region, placementGroup, "cluster", State.PENDING)), String.format("placementGroup region(%s) name(%s) failed to delete", region, placementGroup)); placementGroupMap.invalidate(new RegionAndName(region, placementGroup)); logger.debug("<< deleted placementGroup(%s)", placementGroup); } catch (IllegalStateException e) { logger.debug("<< inUse placementGroup(%s)", placementGroup); } } } catch (UnsupportedOperationException e) { logger.trace("<< placementGroups unsupported in region %s", region); } }
@VisibleForTesting void deletePlacementGroup(String region, String group) { checkNotNull(emptyToNull(group), "group must be defined"); // placementGroupName must be unique within an account per // http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/index.html?using_cluster_computing.html String placementGroup = String.format("jclouds#%s#%s", group, region); try { if (!client.getPlacementGroupApi().get().describePlacementGroupsInRegion(region, placementGroup).isEmpty()) { logger.debug(">> deleting placementGroup(%s)", placementGroup); try { client.getPlacementGroupApi().get().deletePlacementGroupInRegion(region, placementGroup); checkState(placementGroupDeleted.apply(new PlacementGroup(region, placementGroup, "cluster", State.PENDING)), "placementGroup region(%s) name(%s) failed to delete", region, placementGroup); placementGroupMap.invalidate(new RegionAndName(region, placementGroup)); logger.debug("<< deleted placementGroup(%s)", placementGroup); } catch (IllegalStateException e) { logger.debug("<< inUse placementGroup(%s)", placementGroup); } } } catch (UnsupportedOperationException e) { logger.trace("<< placementGroups unsupported in region %s", region); } }
@VisibleForTesting void deletePlacementGroup(String region, String group) { checkNotNull(emptyToNull(group), "group must be defined"); // placementGroupName must be unique within an account per // http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/index.html?using_cluster_computing.html String placementGroup = String.format("jclouds#%s#%s", group, region); try { if (!client.getPlacementGroupApi().get().describePlacementGroupsInRegion(region, placementGroup).isEmpty()) { logger.debug(">> deleting placementGroup(%s)", placementGroup); try { client.getPlacementGroupApi().get().deletePlacementGroupInRegion(region, placementGroup); checkState(placementGroupDeleted.apply(new PlacementGroup(region, placementGroup, "cluster", State.PENDING)), "placementGroup region(%s) name(%s) failed to delete", region, placementGroup); placementGroupMap.invalidate(new RegionAndName(region, placementGroup)); logger.debug("<< deleted placementGroup(%s)", placementGroup); } catch (IllegalStateException e) { logger.debug("<< inUse placementGroup(%s)", placementGroup); } } } catch (UnsupportedOperationException e) { logger.trace("<< placementGroups unsupported in region %s", region); } }
@Override @AfterClass(groups = { "integration", "live" }) protected void tearDownContext() { if (group != null) { client.getPlacementGroupApi().get().deletePlacementGroupInRegion(group.getRegion(), group.getName()); assert deletedTester.apply(group) : group; } super.tearDownContext(); }
@Test public void testCreatePlacementGroup() { String groupName = PREFIX + "1"; for (String region : supportedRegions) { client.getPlacementGroupApi().get().deletePlacementGroupInRegion(region, groupName); client.getPlacementGroupApi().get().createPlacementGroupInRegion(region, groupName); verifyPlacementGroup(region, groupName); } }
public void deletePlacementGroupInRegion() throws Exception { enqueueRegions(DEFAULT_REGION); enqueue(DEFAULT_REGION, new MockResponse()); placementApi().deletePlacementGroupInRegion(DEFAULT_REGION, "name"); assertPosted(DEFAULT_REGION, "Action=DescribeRegions"); assertPosted(DEFAULT_REGION, "Action=DeletePlacementGroup&GroupName=name"); }
@SuppressWarnings("CheckReturnValue") public void testStartHS1Instance() throws Exception { Template template = view.getComputeService().templateBuilder() .fromHardware(EC2HardwareBuilder.hs1_8xlarge().build()).osFamily(OsFamily.AMZN_LINUX).build(); assert template != null : "The returned template was null, but it should have a value."; assertEquals(template.getHardware().getProviderId(), InstanceType.HS1_8XLARGE); assertEquals(template.getImage().getUserMetadata().get("virtualizationType"), "hvm"); assertEquals(template.getImage().getUserMetadata().get("hypervisor"), "xen"); template.getOptions().runScript(Statements.newStatementList(AdminAccess.standard(), InstallJDK.fromOpenJDK())); String group = PREFIX + "cccluster"; view.getComputeService().destroyNodesMatching(NodePredicates.inGroup(group)); // TODO make this not lookup an explicit region client.getPlacementGroupApi().get().deletePlacementGroupInRegion(null, "jclouds#" + group + "#us-east-1"); try { Set<? extends NodeMetadata> nodes = view.getComputeService().createNodesInGroup(group, 1, template); NodeMetadata node = getOnlyElement(nodes); Reservation<? extends RunningInstance> reservation = getOnlyElement(client.getInstanceApi().get().describeInstancesInRegion(null, node.getProviderId())); getOnlyElement(reservation); } catch (RunNodesException e) { System.err.println(e.getNodeErrors().keySet()); Throwables.propagate(e); } finally { view.getComputeService().destroyNodesMatching(NodePredicates.inGroup(group)); } }
public void deletePlacementGroupInRegion_404() throws Exception { enqueueRegions(DEFAULT_REGION); enqueue(DEFAULT_REGION, new MockResponse().setResponseCode(404)); placementApi().deletePlacementGroupInRegion(DEFAULT_REGION, "name"); assertPosted(DEFAULT_REGION, "Action=DescribeRegions"); assertPosted(DEFAULT_REGION, "Action=DeletePlacementGroup&GroupName=name"); }