Repository: jclouds Updated Branches: refs/heads/master 34b54ad16 -> d98348d50
Better predicate signature for node operations Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/d98348d5 Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/d98348d5 Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/d98348d5 Branch: refs/heads/master Commit: d98348d503348a49dffd689093b27d7104d52279 Parents: 34b54ad Author: Ignasi Barrera <[email protected]> Authored: Wed Sep 21 12:50:15 2016 +0200 Committer: Ignasi Barrera <[email protected]> Committed: Fri Sep 23 10:22:23 2016 +0200 ---------------------------------------------------------------------- .../compute/strategy/EC2ListNodesStrategy.java | 2 +- .../org/jclouds/compute/ComputeService.java | 20 +++++++++--------- .../compute/internal/BaseComputeService.java | 22 ++++++++++---------- .../compute/strategy/ListNodesStrategy.java | 2 +- .../impl/AdaptingComputeServiceStrategies.java | 2 +- .../internal/BaseComputeServiceLiveTest.java | 2 +- .../compute/GoogleComputeEngineService.java | 2 +- 7 files changed, 26 insertions(+), 26 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/d98348d5/apis/ec2/src/main/java/org/jclouds/ec2/compute/strategy/EC2ListNodesStrategy.java ---------------------------------------------------------------------- diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/compute/strategy/EC2ListNodesStrategy.java b/apis/ec2/src/main/java/org/jclouds/ec2/compute/strategy/EC2ListNodesStrategy.java index 2f0204a..1baec63 100644 --- a/apis/ec2/src/main/java/org/jclouds/ec2/compute/strategy/EC2ListNodesStrategy.java +++ b/apis/ec2/src/main/java/org/jclouds/ec2/compute/strategy/EC2ListNodesStrategy.java @@ -103,7 +103,7 @@ public class EC2ListNodesStrategy implements ListNodesStrategy { } @Override - public Set<? extends NodeMetadata> listDetailsOnNodesMatching(Predicate<ComputeMetadata> filter) { + public Set<? extends NodeMetadata> listDetailsOnNodesMatching(Predicate<? super NodeMetadata> filter) { Iterable<? extends RunningInstance> instances = pollRunningInstances(); Iterable<? extends NodeMetadata> nodes = filter(transform(filter(instances, notNull()), runningInstanceToNodeMetadata), and(notNull(), filter)); http://git-wip-us.apache.org/repos/asf/jclouds/blob/d98348d5/compute/src/main/java/org/jclouds/compute/ComputeService.java ---------------------------------------------------------------------- diff --git a/compute/src/main/java/org/jclouds/compute/ComputeService.java b/compute/src/main/java/org/jclouds/compute/ComputeService.java index 9a1c06a..7489c18 100644 --- a/compute/src/main/java/org/jclouds/compute/ComputeService.java +++ b/compute/src/main/java/org/jclouds/compute/ComputeService.java @@ -103,7 +103,7 @@ public interface ComputeService { /** * @return all nodes with one of the provided ids available to the current user. */ - Set<? extends NodeMetadata> listNodesByIds(Iterable<String> ids); + Set<? extends ComputeMetadata> listNodesByIds(Iterable<String> ids); /** * The list locations command returns all the valid locations for nodes. A location has a scope, @@ -197,7 +197,7 @@ public interface ComputeService { * @throws NoSuchElementException * if no nodes matched the predicate specified */ - Set<? extends NodeMetadata> resumeNodesMatching(Predicate<NodeMetadata> filter); + Set<? extends NodeMetadata> resumeNodesMatching(Predicate<? super NodeMetadata> filter); /** * suspend the node, given its id. This will result in @@ -227,7 +227,7 @@ public interface ComputeService { * @throws NoSuchElementException * if no nodes matched the predicate specified */ - Set<? extends NodeMetadata> suspendNodesMatching(Predicate<NodeMetadata> filter); + Set<? extends NodeMetadata> suspendNodesMatching(Predicate<? super NodeMetadata> filter); /** * destroy the node, given its id. If it is the only node in a tag set, the dependent resources @@ -242,7 +242,7 @@ public interface ComputeService { * * @return list of nodes destroyed */ - Set<? extends NodeMetadata> destroyNodesMatching(Predicate<NodeMetadata> filter); + Set<? extends NodeMetadata> destroyNodesMatching(Predicate<? super NodeMetadata> filter); /** * reboot the node, given its id. @@ -258,7 +258,7 @@ public interface ComputeService { * @throws NoSuchElementException * if no nodes matched the predicate specified */ - Set<? extends NodeMetadata> rebootNodesMatching(Predicate<NodeMetadata> filter); + Set<? extends NodeMetadata> rebootNodesMatching(Predicate<? super NodeMetadata> filter); /** * Find a node by its id. @@ -272,27 +272,27 @@ public interface ComputeService { * @param filter * how to select the nodes you are interested in details on. */ - Set<? extends NodeMetadata> listNodesDetailsMatching(Predicate<ComputeMetadata> filter); + Set<? extends NodeMetadata> listNodesDetailsMatching(Predicate<? super NodeMetadata> filter); /** * * @see ComputeService#runScriptOnNodesMatching(Predicate, Statement, RunScriptOptions) */ - Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<NodeMetadata> filter, String runScript) + Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<? super NodeMetadata> filter, String runScript) throws RunScriptOnNodesException; /** * * @see ComputeService#runScriptOnNodesMatching(Predicate, Statement, RunScriptOptions) */ - Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<NodeMetadata> filter, + Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<? super NodeMetadata> filter, Statement runScript) throws RunScriptOnNodesException; /** * * @see ComputeService#runScriptOnNodesMatching(Predicate, Statement, RunScriptOptions) */ - Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<NodeMetadata> filter, String runScript, + Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<? super NodeMetadata> filter, String runScript, RunScriptOptions options) throws RunScriptOnNodesException; /** @@ -313,7 +313,7 @@ public interface ComputeService { * @see org.jclouds.compute.predicates.NodePredicates#runningInGroup(String) * @see org.jclouds.scriptbuilder.domain.Statements */ - Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<NodeMetadata> filter, + Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<? super NodeMetadata> filter, Statement runScript, RunScriptOptions options) throws RunScriptOnNodesException; /** http://git-wip-us.apache.org/repos/asf/jclouds/blob/d98348d5/compute/src/main/java/org/jclouds/compute/internal/BaseComputeService.java ---------------------------------------------------------------------- diff --git a/compute/src/main/java/org/jclouds/compute/internal/BaseComputeService.java b/compute/src/main/java/org/jclouds/compute/internal/BaseComputeService.java index 84b3b4d..8dc5c51 100644 --- a/compute/src/main/java/org/jclouds/compute/internal/BaseComputeService.java +++ b/compute/src/main/java/org/jclouds/compute/internal/BaseComputeService.java @@ -256,7 +256,7 @@ public class BaseComputeService implements ComputeService { * {@inheritDoc} */ @Override - public Set<? extends NodeMetadata> destroyNodesMatching(Predicate<NodeMetadata> filter) { + 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>>() { @@ -317,7 +317,7 @@ public class BaseComputeService implements ComputeService { // no-op; to be overridden } - Iterable<? extends NodeMetadata> nodesMatchingFilterAndNotTerminated(Predicate<NodeMetadata> filter) { + Iterable<? extends NodeMetadata> nodesMatchingFilterAndNotTerminated(Predicate<? super NodeMetadata> filter) { return filter(detailsOnAllNodes(), and(checkNotNull(filter, "filter"), not(TERMINATED))); } @@ -326,7 +326,7 @@ public class BaseComputeService implements ComputeService { * if none found */ Iterable<? extends NodeMetadata> nodesMatchingFilterAndNotTerminatedExceptionIfNotFound( - Predicate<NodeMetadata> filter) { + Predicate<? super NodeMetadata> filter) { Iterable<? extends NodeMetadata> nodes = nodesMatchingFilterAndNotTerminated(filter); if (Iterables.isEmpty(nodes)) throw new NoSuchElementException("no nodes matched filter: " + filter); @@ -360,7 +360,7 @@ public class BaseComputeService implements ComputeService { * {@inheritDoc} */ @Override - public Set<? extends NodeMetadata> listNodesDetailsMatching(Predicate<ComputeMetadata> filter) { + public Set<? extends NodeMetadata> listNodesDetailsMatching(Predicate<? super NodeMetadata> filter) { checkNotNull(filter, "filter"); logger.trace(">> listing node details matching(%s)", filter); Set<? extends NodeMetadata> set = newLinkedHashSet(listNodesStrategy.listDetailsOnNodesMatching(filter)); @@ -434,7 +434,7 @@ public class BaseComputeService implements ComputeService { * {@inheritDoc} */ @Override - public Set<? extends NodeMetadata> rebootNodesMatching(Predicate<NodeMetadata> filter) { + public Set<? extends NodeMetadata> rebootNodesMatching(Predicate<? super NodeMetadata> filter) { logger.debug(">> rebooting nodes matching(%s)", filter); Set<NodeMetadata> rebootNodes = ImmutableSet.copyOf(transformParallel(nodesMatchingFilterAndNotTerminated(filter), new Function<NodeMetadata, ListenableFuture<? extends NodeMetadata>>() { @@ -475,7 +475,7 @@ public class BaseComputeService implements ComputeService { * {@inheritDoc} */ @Override - public Set<? extends NodeMetadata> resumeNodesMatching(Predicate<NodeMetadata> filter) { + public Set<? extends NodeMetadata> resumeNodesMatching(Predicate<? super NodeMetadata> filter) { logger.debug(">> resuming nodes matching(%s)", filter); Set<NodeMetadata> resumeNodes = ImmutableSet.copyOf(transformParallel(nodesMatchingFilterAndNotTerminated(filter), new Function<NodeMetadata, ListenableFuture<? extends NodeMetadata>>() { @@ -516,7 +516,7 @@ public class BaseComputeService implements ComputeService { * {@inheritDoc} */ @Override - public Set<? extends NodeMetadata> suspendNodesMatching(Predicate<NodeMetadata> filter) { + public Set<? extends NodeMetadata> suspendNodesMatching(Predicate<? super NodeMetadata> filter) { logger.debug(">> suspending nodes matching(%s)", filter); Set<NodeMetadata> suspendNodes = ImmutableSet.copyOf(transformParallel(nodesMatchingFilterAndNotTerminated(filter), new Function<NodeMetadata, ListenableFuture<? extends NodeMetadata>>() { @@ -545,7 +545,7 @@ public class BaseComputeService implements ComputeService { * {@inheritDoc} */ @Override - public Map<NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<NodeMetadata> filter, String runScript) + public Map<NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<? super NodeMetadata> filter, String runScript) throws RunScriptOnNodesException { return runScriptOnNodesMatching(filter, Statements.literal(checkNotNull(runScript, "runScript"))); } @@ -554,13 +554,13 @@ public class BaseComputeService implements ComputeService { * {@inheritDoc} */ @Override - public Map<NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<NodeMetadata> filter, Statement runScript) + public Map<NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<? super NodeMetadata> filter, Statement runScript) throws RunScriptOnNodesException { return runScriptOnNodesMatching(filter, runScript, RunScriptOptions.NONE); } @Override - public Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<NodeMetadata> filter, + public Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<? super NodeMetadata> filter, String runScript, RunScriptOptions options) throws RunScriptOnNodesException { return runScriptOnNodesMatching(filter, Statements.literal(checkNotNull(runScript, "runScript")), options); } @@ -569,7 +569,7 @@ public class BaseComputeService implements ComputeService { * {@inheritDoc} */ @Override - public Map<NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<NodeMetadata> filter, Statement runScript, + public Map<NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<? super NodeMetadata> filter, Statement runScript, RunScriptOptions options) throws RunScriptOnNodesException { checkNotNull(filter, "filter"); http://git-wip-us.apache.org/repos/asf/jclouds/blob/d98348d5/compute/src/main/java/org/jclouds/compute/strategy/ListNodesStrategy.java ---------------------------------------------------------------------- diff --git a/compute/src/main/java/org/jclouds/compute/strategy/ListNodesStrategy.java b/compute/src/main/java/org/jclouds/compute/strategy/ListNodesStrategy.java index e6e5396..6b17476 100644 --- a/compute/src/main/java/org/jclouds/compute/strategy/ListNodesStrategy.java +++ b/compute/src/main/java/org/jclouds/compute/strategy/ListNodesStrategy.java @@ -25,7 +25,7 @@ public interface ListNodesStrategy { Iterable<? extends ComputeMetadata> listNodes(); - Iterable<? extends NodeMetadata> listDetailsOnNodesMatching(Predicate<ComputeMetadata> filter); + Iterable<? extends NodeMetadata> listDetailsOnNodesMatching(Predicate<? super NodeMetadata> filter); Iterable<? extends NodeMetadata> listNodesByIds(Iterable<String> ids); } http://git-wip-us.apache.org/repos/asf/jclouds/blob/d98348d5/compute/src/main/java/org/jclouds/compute/strategy/impl/AdaptingComputeServiceStrategies.java ---------------------------------------------------------------------- diff --git a/compute/src/main/java/org/jclouds/compute/strategy/impl/AdaptingComputeServiceStrategies.java b/compute/src/main/java/org/jclouds/compute/strategy/impl/AdaptingComputeServiceStrategies.java index da38747..c5be402 100644 --- a/compute/src/main/java/org/jclouds/compute/strategy/impl/AdaptingComputeServiceStrategies.java +++ b/compute/src/main/java/org/jclouds/compute/strategy/impl/AdaptingComputeServiceStrategies.java @@ -118,7 +118,7 @@ public class AdaptingComputeServiceStrategies<N, H, I, L> implements CreateNodeW } @Override - public Iterable<? extends NodeMetadata> listDetailsOnNodesMatching(Predicate<ComputeMetadata> filter) { + public Iterable<? extends NodeMetadata> listDetailsOnNodesMatching(Predicate<? super NodeMetadata> filter) { return filter(transform(client.listNodes(), nodeMetadataAdapter), filter); } http://git-wip-us.apache.org/repos/asf/jclouds/blob/d98348d5/compute/src/test/java/org/jclouds/compute/internal/BaseComputeServiceLiveTest.java ---------------------------------------------------------------------- diff --git a/compute/src/test/java/org/jclouds/compute/internal/BaseComputeServiceLiveTest.java b/compute/src/test/java/org/jclouds/compute/internal/BaseComputeServiceLiveTest.java index 61ed6b0..462300d 100644 --- a/compute/src/test/java/org/jclouds/compute/internal/BaseComputeServiceLiveTest.java +++ b/compute/src/test/java/org/jclouds/compute/internal/BaseComputeServiceLiveTest.java @@ -644,7 +644,7 @@ public abstract class BaseComputeServiceLiveTest extends BaseComputeServiceConte })); - SortedSet<? extends NodeMetadata> listedNodes = ImmutableSortedSet.copyOf(client.listNodesByIds(nodeIds)); + SortedSet<? extends ComputeMetadata> listedNodes = ImmutableSortedSet.copyOf(client.listNodesByIds(nodeIds)); // newTreeSet is here because elementsEqual cares about ordering. assertTrue(Iterables.elementsEqual(nodes, listedNodes), "nodes and listNodesByIds should be identical: was " + listedNodes + " but should be " + nodes); http://git-wip-us.apache.org/repos/asf/jclouds/blob/d98348d5/providers/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineService.java ---------------------------------------------------------------------- diff --git a/providers/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineService.java b/providers/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineService.java index 74c7c57..acf456a 100644 --- a/providers/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineService.java +++ b/providers/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineService.java @@ -136,7 +136,7 @@ public final class GoogleComputeEngineService extends BaseComputeService { } @Override - public Set<? extends NodeMetadata> destroyNodesMatching(Predicate<NodeMetadata> filter) { + 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
