/** * {@inheritDoc} */ @Override public void destroyNode(String id) { NodeMetadata destroyedNodeOrNull = doDestroyNode(id); if (destroyedNodeOrNull != null) cleanUpIncidentalResourcesOfDeadNodes(ImmutableSet.of(destroyedNodeOrNull)); }
/** * {@inheritDoc} */ @Override public void destroyNode(String id) { NodeMetadata destroyedNodeOrNull = doDestroyNode(id); if (destroyedNodeOrNull != null) cleanUpIncidentalResourcesOfDeadNodes(ImmutableSet.of(destroyedNodeOrNull)); }
/** * {@inheritDoc} */ @Override public void destroyNode(String id) { NodeMetadata destroyedNodeOrNull = doDestroyNode(id); if (destroyedNodeOrNull != null) cleanUpIncidentalResourcesOfDeadNodes(ImmutableSet.of(destroyedNodeOrNull)); }
/** * {@inheritDoc} */ @Override public void destroyNode(String id) { NodeMetadata destroyedNodeOrNull = doDestroyNode(id); if (destroyedNodeOrNull != null) cleanUpIncidentalResourcesOfDeadNodes(ImmutableSet.of(destroyedNodeOrNull)); }
/** * {@inheritDoc} */ @Override public Set<? extends NodeMetadata> destroyNodesMatching(Predicate<? super NodeMetadata> filter) { logger.debug(">> destroying nodes matching(%s)", filter); Set<NodeMetadata> destroyNodes = ImmutableSet.copyOf(transformParallel(nodesMatchingFilterAndNotTerminated(filter), new Function<NodeMetadata, ListenableFuture<? extends NodeMetadata>>() { // TODO make an async interface instead of re-wrapping @Override public ListenableFuture<NodeMetadata> apply(final NodeMetadata from) { return userExecutor.submit(new Callable<NodeMetadata>() { public NodeMetadata call() throws Exception { doDestroyNode(from.getId()); return from; } public String toString() { return "destroyNode(" + from.getId() + ")"; } }); } }, userExecutor, null, logger, "destroyNodesMatching(" + filter + ")")); logger.debug("<< destroyed(%d)", destroyNodes.size()); cleanUpIncidentalResourcesOfDeadNodes(destroyNodes); return destroyNodes; }
/** * {@inheritDoc} */ @Override public Set<? extends NodeMetadata> destroyNodesMatching(Predicate<NodeMetadata> filter) { logger.debug(">> destroying nodes matching(%s)", filter); Set<NodeMetadata> set = ImmutableSet.copyOf(transformParallel(nodesMatchingFilterAndNotTerminated(filter), new Function<NodeMetadata, ListenableFuture<? extends NodeMetadata>>() { // TODO make an async interface instead of re-wrapping @Override public ListenableFuture<NodeMetadata> apply(final NodeMetadata from) { return userExecutor.submit(new Callable<NodeMetadata>() { public NodeMetadata call() throws Exception { doDestroyNode(from.getId()); return from; } public String toString() { return "destroyNode(" + from.getId() + ")"; } }); } }, userExecutor, null, logger, "destroyNodesMatching(" + filter + ")")); logger.debug("<< destroyed(%d)", set.size()); cleanUpIncidentalResourcesOfDeadNodes(set); return set; }
/** * {@inheritDoc} */ @Override public Set<? extends NodeMetadata> destroyNodesMatching(Predicate<? super NodeMetadata> filter) { logger.debug(">> destroying nodes matching(%s)", filter); Set<NodeMetadata> destroyNodes = ImmutableSet.copyOf(transformParallel(nodesMatchingFilterAndNotTerminated(filter), new Function<NodeMetadata, ListenableFuture<? extends NodeMetadata>>() { // TODO make an async interface instead of re-wrapping @Override public ListenableFuture<NodeMetadata> apply(final NodeMetadata from) { return userExecutor.submit(new Callable<NodeMetadata>() { public NodeMetadata call() throws Exception { doDestroyNode(from.getId()); return from; } public String toString() { return "destroyNode(" + from.getId() + ")"; } }); } }, userExecutor, null, logger, "destroyNodesMatching(" + filter + ")")); logger.debug("<< destroyed(%d)", destroyNodes.size()); cleanUpIncidentalResourcesOfDeadNodes(destroyNodes); return destroyNodes; }
/** * {@inheritDoc} */ @Override public Set<? extends NodeMetadata> destroyNodesMatching(Predicate<NodeMetadata> filter) { logger.debug(">> destroying nodes matching(%s)", filter); Set<NodeMetadata> set = ImmutableSet.copyOf(transformParallel(nodesMatchingFilterAndNotTerminated(filter), new Function<NodeMetadata, ListenableFuture<? extends NodeMetadata>>() { // TODO make an async interface instead of re-wrapping @Override public ListenableFuture<NodeMetadata> apply(final NodeMetadata from) { return userExecutor.submit(new Callable<NodeMetadata>() { public NodeMetadata call() throws Exception { doDestroyNode(from.getId()); return from; } public String toString() { return "destroyNode(" + from.getId() + ")"; } }); } }, userExecutor, null, logger, "destroyNodesMatching(" + filter + ")")); logger.debug("<< destroyed(%d)", set.size()); cleanUpIncidentalResourcesOfDeadNodes(set); return set; }