@Override public Set<? extends ComputeMetadata> listNodes() { return listDetailsOnNodesMatching(NodePredicates.all()); }
@Override public Iterable<? extends ComputeMetadata> listNodes() { return listDetailsOnNodesMatching(NodePredicates.all()); }
@Override public Iterable<? extends ComputeMetadata> listNodes() { return listDetailsOnNodesMatching(NodePredicates.all()); }
@Override public Iterable<? extends ComputeMetadata> listNodes() { return listDetailsOnNodesMatching(NodePredicates.all()); }
private Set<? extends NodeMetadata> detailsOnAllNodes() { return newLinkedHashSet(listNodesStrategy.listDetailsOnNodesMatching(all())); }
@Override public Set<? extends ComputeMetadata> listNodes() { return listDetailsOnNodesMatching(NodePredicates.all()); }
@Override public Iterable<? extends NodeMetadata> listNodesByIds(Iterable<String> ids) { return FluentIterable.from(listDetailsOnNodesMatching(all())).filter(withIds(toArray(ids, String.class))).toSet(); }
@Override public Iterable<? extends NodeMetadata> listNodesByIds(Iterable<String> ids) { return FluentIterable.from(listDetailsOnNodesMatching(all())).filter(withIds(toArray(ids, String.class))).toSet(); }
@Override public Iterable<? extends NodeMetadata> listNodesByIds(Iterable<String> ids) { return FluentIterable.from(listDetailsOnNodesMatching(all())).filter(withIds(toArray(ids, String.class))).toSet(); }
@Override public Set<? extends NodeMetadata> destroyNodesMatching(Predicate<NodeMetadata> filter) { // GCE does not return TERMINATED nodes, so in practice no node will never reach the TERMINATED // state, and the deleted nodes will never be returned. // In order to be able to clean up the resources associated to the deleted nodes, we have to retrieve // the details of the nodes before deleting them. Set<? extends NodeMetadata> nodes = newHashSet(filter(listNodesDetailsMatching(all()), filter)); super.destroyNodesMatching(filter); // This returns an empty list (a list of null elements) in GCE, as the api does not return deleted nodes cleanUpIncidentalResourcesOfDeadNodes(nodes); return nodes; }
@Override public Set<? extends NodeMetadata> destroyNodesMatching(Predicate<? super NodeMetadata> filter) { // GCE does not return TERMINATED nodes, so in practice no node will never reach the TERMINATED // state, and the deleted nodes will never be returned. // In order to be able to clean up the resources associated to the deleted nodes, we have to retrieve // the details of the nodes before deleting them. Set<? extends NodeMetadata> nodes = newHashSet(filter(listNodesDetailsMatching(all()), filter)); super.destroyNodesMatching(filter); // This returns an empty list (a list of null elements) in GCE, as the api does not return deleted nodes cleanUpIncidentalResourcesOfDeadNodes(nodes); return nodes; }
@Override public boolean apply(String groupName) { return isEmpty(filter(computeService.listNodesDetailsMatching(all()), inGroup(groupName))); } }
@Override public boolean apply(String groupName) { return isEmpty(filter(computeService.listNodesDetailsMatching(all()), inGroup(groupName))); } }
@Override public boolean apply(String groupName) { return isEmpty(filter(computeService.listNodesDetailsMatching(all()), inGroup(groupName))); } }
@Override public boolean apply(String groupName) { return all(filter(computeService.listNodesDetailsMatching(all()), inGroup(groupName)), TERMINATED); } }
@Override public boolean apply(String groupName) { return all(filter(computeService.listNodesDetailsMatching(all()), inGroup(groupName)), TERMINATED); } }
private Set<? extends NodeMetadata> refreshNodes() { return filter(client.listNodesDetailsMatching(all()), and(inGroup(group), not(TERMINATED))); }
private void get(ComputeService computeService) { if (nodeElement.getId() != null) { log(String.format("get id: %s", nodeElement.getId())); logDetails(computeService, computeService.getNodeMetadata(nodeElement.getId())); } else { log(String.format("get group: %s", nodeElement.getGroup())); for (ComputeMetadata node : Iterables.filter(computeService.listNodesDetailsMatching(NodePredicates.all()), NodePredicates.inGroup(nodeElement.getGroup()))) { logDetails(computeService, 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(enabled = true, alwaysRun = true, dependsOnMethods = { "testListNodes", "testGetNodesWithDetails", "testListNodesByIds" }) public void testDestroyNodes() { int toDestroy = refreshNodes().size(); Set<? extends NodeMetadata> destroyed = client.destroyNodesMatching(inGroup(group)); assertEquals(toDestroy, destroyed.size()); waitGracePeriodForDestroyedNodes(); 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(); } }