You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ad...@apache.org on 2014/11/04 23:22:51 UTC
[4/4] git commit: Migrate off PaginatedIterable to Iterator. Fix some
live test bugs.
Migrate off PaginatedIterable to Iterator. Fix some live test bugs.
Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/commit/7427ba23
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/tree/7427ba23
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/diff/7427ba23
Branch: refs/heads/master
Commit: 7427ba23800dfa2bbc3f79473e5cd00ce9365deb
Parents: a9ea2ad
Author: Adrian Cole <ac...@twitter.com>
Authored: Tue Nov 4 11:19:22 2014 -0800
Committer: Adrian Cole <ac...@twitter.com>
Committed: Tue Nov 4 14:21:36 2014 -0800
----------------------------------------------------------------------
.../GoogleComputeEngineFallbacks.java | 11 +++
.../compute/GoogleComputeEngineService.java | 21 ++---
.../GoogleComputeEngineServiceAdapter.java | 81 ++++++++++----------
...GoogleComputeEngineServiceContextModule.java | 5 +-
...ogleComputeEngineSecurityGroupExtension.java | 25 +++---
.../functions/NetworkToSecurityGroup.java | 4 +-
.../features/AddressApi.java | 58 ++++----------
.../googlecomputeengine/features/DiskApi.java | 48 +++---------
.../features/DiskTypeApi.java | 45 +++--------
.../features/FirewallApi.java | 47 +++---------
.../features/ForwardingRuleApi.java | 15 ++--
.../features/GlobalOperationApi.java | 54 ++++---------
.../features/HttpHealthCheckApi.java | 13 ++--
.../googlecomputeengine/features/ImageApi.java | 48 +++---------
.../features/InstanceApi.java | 46 ++---------
.../features/MachineTypeApi.java | 42 +++-------
.../features/NetworkApi.java | 50 +++---------
.../googlecomputeengine/features/RegionApi.java | 49 +++---------
.../features/RegionOperationApi.java | 49 +++---------
.../googlecomputeengine/features/RouteApi.java | 44 +++--------
.../features/SnapshotApi.java | 49 +++---------
.../features/TargetPoolApi.java | 20 ++---
.../googlecomputeengine/features/ZoneApi.java | 45 +++--------
.../features/ZoneOperationApi.java | 48 +++---------
.../functions/internal/AdvancingIterator.java | 48 ++++++++++++
.../internal/BaseToIteratorOfListPage.java | 67 ++++++++++++++++
.../functions/internal/BaseToPagedIterable.java | 69 -----------------
.../BaseWithRegionToIteratorOfListPage.java | 71 +++++++++++++++++
.../internal/BaseWithRegionToPagedIterable.java | 72 -----------------
.../BaseWithZoneToIteratorOfListPage.java | 72 +++++++++++++++++
.../internal/BaseWithZoneToPagedIterable.java | 72 -----------------
.../functions/internal/ParseAddresses.java | 17 ++--
.../functions/internal/ParseDiskTypes.java | 17 ++--
.../functions/internal/ParseDisks.java | 16 ++--
.../functions/internal/ParseFirewalls.java | 15 ++--
.../internal/ParseForwardingRules.java | 16 ++--
.../internal/ParseGlobalOperations.java | 16 ++--
.../internal/ParseHttpHealthChecks.java | 15 ++--
.../functions/internal/ParseImages.java | 15 ++--
.../functions/internal/ParseInstances.java | 17 ++--
.../functions/internal/ParseMachineTypes.java | 17 ++--
.../functions/internal/ParseNetworks.java | 15 ++--
.../internal/ParseRegionOperations.java | 17 ++--
.../functions/internal/ParseRegions.java | 15 ++--
.../functions/internal/ParseRoutes.java | 15 ++--
.../functions/internal/ParseSnapshots.java | 15 ++--
.../functions/internal/ParseTargetPools.java | 15 ++--
.../functions/internal/ParseZoneOperations.java | 16 ++--
.../functions/internal/ParseZones.java | 15 ++--
.../googlecomputeengine/internal/ListPages.java | 42 ++++++++++
.../PageSystemExpectTest.java | 21 +++--
.../GoogleComputeEngineServiceExpectTest.java | 2 -
.../GoogleComputeEngineServiceLiveTest.java | 2 +-
.../functions/NetworkToSecurityGroupTest.java | 8 +-
.../features/AddressApiExpectTest.java | 7 +-
.../features/AddressApiLiveTest.java | 13 +---
.../features/DiskApiExpectTest.java | 7 +-
.../features/DiskApiLiveTest.java | 21 +++--
.../features/DiskTypeApiExpectTest.java | 6 +-
.../features/DiskTypeApiLiveTest.java | 20 ++---
.../features/FirewallApiExpectTest.java | 7 +-
.../features/FirewallApiLiveTest.java | 9 +--
.../features/ForwardingRuleApiExpectTest.java | 8 +-
.../features/GlobalOperationApiExpectTest.java | 6 +-
.../features/GlobalOperationApiLiveTest.java | 71 ++++++-----------
.../features/HttpHealthCheckApiExpectTest.java | 9 +--
.../features/ImageApiExpectTest.java | 7 +-
.../features/ImageApiLiveTest.java | 23 ++----
.../features/InstanceApiExpectTest.java | 6 +-
.../features/InstanceApiLiveTest.java | 74 +++++++++---------
.../features/MachineTypeApiExpectTest.java | 6 +-
.../features/MachineTypeApiLiveTest.java | 20 ++---
.../features/NetworkApiExpectTest.java | 10 +--
.../features/NetworkApiLiveTest.java | 15 ++--
.../features/RegionApiExpectTest.java | 7 +-
.../features/RegionApiLiveTest.java | 19 ++---
.../features/RegionOperationApiExpectTest.java | 7 +-
.../features/RegionOperationApiLiveTest.java | 71 ++++++-----------
.../features/RouteApiExpectTest.java | 7 +-
.../features/RouteApiLiveTest.java | 13 ++--
.../features/SnapshotApiExpectTest.java | 7 +-
.../features/SnapshotApiLiveTest.java | 20 +++--
.../features/TargetPoolApiExpectTest.java | 4 +-
.../features/TargetPoolApiLiveTest.java | 19 +++--
.../features/ZoneApiExpectTest.java | 7 +-
.../features/ZoneApiLiveTest.java | 18 ++---
.../features/ZoneOperationApiExpectTest.java | 9 +--
.../features/ZoneOperationApiLiveTest.java | 66 ++++++----------
.../BaseGoogleComputeEngineApiLiveTest.java | 43 ++++-------
89 files changed, 952 insertions(+), 1457 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineFallbacks.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineFallbacks.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineFallbacks.java
index 4cdbad1..4ba6eae 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineFallbacks.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineFallbacks.java
@@ -23,9 +23,13 @@ import static com.google.common.primitives.Ints.asList;
import static org.jclouds.Fallbacks.valOnNotFoundOr404;
import static org.jclouds.http.HttpUtils.returnValueOnCodeOrNull;
+import java.util.Iterator;
+
import org.jclouds.Fallback;
import org.jclouds.googlecomputeengine.domain.ListPage;
+import com.google.common.collect.Iterators;
+
public final class GoogleComputeEngineFallbacks {
public static class NullOn400or404 implements Fallback<Object> {
@Override public Object createOrPropagate(Throwable t) throws Exception {
@@ -35,9 +39,16 @@ public final class GoogleComputeEngineFallbacks {
throw propagate(t);
}
}
+
public static final class EmptyListPageOnNotFoundOr404 implements Fallback<Object> {
@Override public ListPage<Object> createOrPropagate(Throwable t) throws Exception {
return valOnNotFoundOr404(ListPage.create(null, null), t);
}
}
+
+ public static final class EmptyIteratorOnNotFoundOr404 implements Fallback<Object> {
+ @Override public Iterator<Object> createOrPropagate(Throwable t) throws Exception {
+ return valOnNotFoundOr404(Iterators.emptyIterator(), t);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineService.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineService.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineService.java
index d6418ea..a523e64 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineService.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineService.java
@@ -23,6 +23,7 @@ import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_S
import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_TERMINATED;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.OPERATION_COMPLETE_INTERVAL;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.OPERATION_COMPLETE_TIMEOUT;
+import static org.jclouds.googlecomputeengine.internal.ListPages.concat;
import static org.jclouds.util.Predicates2.retry;
import java.util.Map;
@@ -72,7 +73,6 @@ import com.google.common.base.Function;
import com.google.common.base.Optional;
import com.google.common.base.Predicate;
import com.google.common.base.Supplier;
-import com.google.common.collect.Sets;
import com.google.common.util.concurrent.Atomics;
import com.google.common.util.concurrent.ListeningExecutorService;
@@ -151,21 +151,14 @@ public class GoogleComputeEngineService extends BaseComputeService {
protected void cleanUpNetworksAndFirewallsForGroup(final String groupName) {
String resourceName = namingConvention.create().sharedNameForGroup(groupName);
- final Network network = api.getNetworkApi(project.get()).get(resourceName);
+ Network network = api.getNetworkApi(project.get()).get(resourceName);
FirewallApi firewallApi = api.getFirewallApi(project.get());
- Predicate<Firewall> firewallBelongsToNetwork = new Predicate<Firewall>() {
- @Override
- public boolean apply(Firewall input) {
- return input != null && input.network().equals(network.selfLink());
- }
- };
-
- Set<AtomicReference<Operation>> operations = Sets.newLinkedHashSet();
- for (Firewall firewall : firewallApi.list().concat().filter(firewallBelongsToNetwork)) {
- operations.add(new AtomicReference<Operation>(firewallApi.delete(firewall.name())));
- }
- for (AtomicReference<Operation> operation : operations) {
+ for (Firewall firewall : concat(firewallApi.list())) {
+ if (firewall == null || !firewall.network().equals(network.selfLink())) {
+ continue;
+ }
+ AtomicReference<Operation> operation = Atomics.newReference(firewallApi.delete(firewall.name()));
retry(operationDonePredicate, operationCompleteCheckTimeout, operationCompleteCheckInterval,
MILLISECONDS).apply(operation);
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceAdapter.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceAdapter.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceAdapter.java
index f306d2d..3a80bea 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceAdapter.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceAdapter.java
@@ -20,6 +20,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState;
import static com.google.common.collect.Iterables.contains;
import static com.google.common.collect.Iterables.filter;
+import static com.google.common.collect.Iterables.transform;
import static com.google.common.collect.Iterables.tryFind;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.CENTOS_PROJECT;
@@ -30,16 +31,19 @@ import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.GCE_I
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.OPERATION_COMPLETE_INTERVAL;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.OPERATION_COMPLETE_TIMEOUT;
import static org.jclouds.googlecomputeengine.domain.Instance.NetworkInterface.AccessConfig.Type;
+import static org.jclouds.googlecomputeengine.internal.ListPages.concat;
import static org.jclouds.googlecomputeengine.predicates.InstancePredicates.isBootDisk;
import static org.jclouds.util.Predicates2.retry;
import java.net.URI;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicReference;
+import javax.inject.Inject;
import javax.inject.Named;
import org.jclouds.collect.Memoized;
@@ -61,6 +65,7 @@ import org.jclouds.googlecomputeengine.domain.Image;
import org.jclouds.googlecomputeengine.domain.Instance;
import org.jclouds.googlecomputeengine.domain.Instance.AttachedDisk;
import org.jclouds.googlecomputeengine.domain.Instance.AttachedDisk.Mode;
+import org.jclouds.googlecomputeengine.domain.ListPage;
import org.jclouds.googlecomputeengine.domain.MachineType;
import org.jclouds.googlecomputeengine.domain.Operation;
import org.jclouds.googlecomputeengine.domain.Zone;
@@ -74,13 +79,13 @@ import com.google.common.base.Objects;
import com.google.common.base.Predicate;
import com.google.common.base.Supplier;
import com.google.common.collect.FluentIterable;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.primitives.Ints;
import com.google.common.util.concurrent.Atomics;
import com.google.common.util.concurrent.UncheckedTimeoutException;
-import com.google.inject.Inject;
public final class GoogleComputeEngineServiceAdapter implements ComputeServiceAdapter<InstanceInZone, MachineTypeInZone, Image, Zone> {
@@ -241,25 +246,25 @@ public final class GoogleComputeEngineServiceAdapter implements ComputeServiceAd
@Override
public Iterable<MachineTypeInZone> listHardwareProfiles() {
- ImmutableSet.Builder<MachineTypeInZone> builder = ImmutableSet.builder();
+ ImmutableList.Builder<MachineTypeInZone> builder = ImmutableList.builder();
for (final Location zone : zones.get().values()) {
- builder.addAll(api.getMachineTypeApi(userProject.get())
- .listInZone(zone.getId())
- .concat()
- .filter(new Predicate<MachineType>() {
- @Override
- public boolean apply(MachineType input) {
- return input.deprecated() == null;
- }
- })
- .transform(new Function<MachineType, MachineTypeInZone>() {
-
- @Override
- public MachineTypeInZone apply(MachineType arg0) {
- return new MachineTypeInZone(arg0, arg0.zone());
- }
- }));
+ for (Iterator<ListPage<MachineType>> i = api.getMachineTypeApi(userProject.get()).listInZone(zone.getId());
+ i.hasNext(); ) {
+ builder.addAll(FluentIterable.from(i.next()).filter(new Predicate<MachineType>() {
+ @Override
+ public boolean apply(MachineType input) {
+ return input.deprecated() == null;
+ }
+ }).transform(new Function<MachineType, MachineTypeInZone>() {
+
+ @Override
+ public MachineTypeInZone apply(MachineType arg0) {
+ return new MachineTypeInZone(arg0, arg0.zone());
+ }
+ }));
+ }
+
}
return builder.build();
@@ -267,15 +272,14 @@ public final class GoogleComputeEngineServiceAdapter implements ComputeServiceAd
@Override
public Iterable<Image> listImages() {
- return ImmutableSet.<Image>builder()
- .addAll(api.getImageApi(userProject.get()).list().concat())
- .addAll(api.getImageApi(DEBIAN_PROJECT).list().concat())
- .addAll(api.getImageApi(CENTOS_PROJECT).list().concat())
- .build();
+ return Iterables.concat( //
+ concat(api.getImageApi(userProject.get()).list()), //
+ concat(api.getImageApi(DEBIAN_PROJECT).list()), //
+ concat(api.getImageApi(CENTOS_PROJECT).list()));
}
@SuppressWarnings("deprecation")
-@Override
+ @Override
public Image getImage(String id) {
return Objects.firstNonNull(api.getImageApi(userProject.get()).get(id),
Objects.firstNonNull(api.getImageApi(DEBIAN_PROJECT).get(id),
@@ -285,7 +289,7 @@ public final class GoogleComputeEngineServiceAdapter implements ComputeServiceAd
@Override
public Iterable<Zone> listLocations() {
- return api.getZoneApi(userProject.get()).list().concat();
+ return concat(api.getZoneApi(userProject.get()).list());
}
@Override
@@ -300,19 +304,18 @@ public final class GoogleComputeEngineServiceAdapter implements ComputeServiceAd
@Override
public Iterable<InstanceInZone> listNodes() {
- return FluentIterable.from(zones.get().values()).transformAndConcat(new Function<Location, ImmutableSet<InstanceInZone>>() {
- @Override
- public ImmutableSet<InstanceInZone> apply(final Location input) {
- return api.getInstanceApi(userProject.get()).listInZone(input.getId()).concat()
- .transform(new Function<Instance, InstanceInZone>() {
-
- @Override
- public InstanceInZone apply(Instance arg0) {
- return new InstanceInZone(arg0, input.getId());
- }
- }).toSet();
- }
- }).toSet();
+ return FluentIterable.from(zones.get().values())
+ .transformAndConcat(new Function<Location, Iterable<InstanceInZone>>() {
+ @Override
+ public Iterable<InstanceInZone> apply(final Location input) {
+ return transform(concat(api.getInstanceApi(userProject.get()).listInZone(input.getId())),
+ new Function<Instance, InstanceInZone>() {
+ @Override public InstanceInZone apply(Instance arg0) {
+ return new InstanceInZone(arg0, input.getId());
+ }
+ });
+ }
+ }).toList();
}
@Override
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/config/GoogleComputeEngineServiceContextModule.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/config/GoogleComputeEngineServiceContextModule.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/config/GoogleComputeEngineServiceContextModule.java
index 99f27e1..70c2b23 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/config/GoogleComputeEngineServiceContextModule.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/config/GoogleComputeEngineServiceContextModule.java
@@ -19,6 +19,7 @@ package org.jclouds.googlecomputeengine.compute.config;
import static com.google.common.collect.Iterables.transform;
import static com.google.common.collect.Maps.uniqueIndex;
import static org.jclouds.Constants.PROPERTY_SESSION_INTERVAL;
+import static org.jclouds.googlecomputeengine.internal.ListPages.concat;
import java.net.URI;
import java.util.Map;
@@ -212,7 +213,7 @@ public class GoogleComputeEngineServiceContextModule
new Supplier<Map<URI, ? extends Location>>() {
@Override
public Map<URI, ? extends Location> get() {
- return uniqueIndex(transform(api.getZoneApi(userProject.get()).list().concat(), zoneToLocation),
+ return uniqueIndex(transform(concat(api.getZoneApi(userProject.get()).list()), zoneToLocation),
new Function<Location, URI>() {
@Override
public URI apply(Location input) {
@@ -236,7 +237,7 @@ public class GoogleComputeEngineServiceContextModule
new Supplier<Map<URI, Region>>() {
@Override
public Map<URI, Region> get() {
- return uniqueIndex(api.getRegionApi(userProject.get()).list().concat(),
+ return uniqueIndex(concat(api.getRegionApi(userProject.get()).list()),
new Function<Region, URI>() {
@Override
public URI apply(Region input) {
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/extensions/GoogleComputeEngineSecurityGroupExtension.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/extensions/GoogleComputeEngineSecurityGroupExtension.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/extensions/GoogleComputeEngineSecurityGroupExtension.java
index 3d46764..98abf0e 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/extensions/GoogleComputeEngineSecurityGroupExtension.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/extensions/GoogleComputeEngineSecurityGroupExtension.java
@@ -22,6 +22,7 @@ import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.OPERATION_COMPLETE_INTERVAL;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.OPERATION_COMPLETE_TIMEOUT;
import static org.jclouds.googlecomputeengine.compute.strategy.CreateNodesWithGroupEncodedIntoNameThenAddToSet.DEFAULT_INTERNAL_NETWORK_RANGE;
+import static org.jclouds.googlecomputeengine.internal.ListPages.concat;
import static org.jclouds.googlecomputeengine.predicates.NetworkFirewallPredicates.equalsIpPermission;
import static org.jclouds.googlecomputeengine.predicates.NetworkFirewallPredicates.providesIpPermission;
import static org.jclouds.util.Predicates2.retry;
@@ -102,7 +103,7 @@ public class GoogleComputeEngineSecurityGroupExtension implements SecurityGroupE
@Override
public Set<SecurityGroup> listSecurityGroups() {
- return api.getNetworkApi(userProject.get()).list().concat().transform(groupConverter).toSet();
+ return FluentIterable.from(concat(api.getNetworkApi(userProject.get()).list())).transform(groupConverter).toSet();
}
@Override
@@ -172,7 +173,7 @@ public class GoogleComputeEngineSecurityGroupExtension implements SecurityGroupE
ListOptions options = new ListOptions.Builder().filter("network eq .*/" + id);
- FluentIterable<Firewall> fws = api.getFirewallApi(userProject.get()).list(options).concat();
+ FluentIterable<Firewall> fws = FluentIterable.from(concat(api.getFirewallApi(userProject.get()).list(options)));
for (Firewall fw : fws) {
AtomicReference<Operation> operation = Atomics
@@ -205,7 +206,8 @@ public class GoogleComputeEngineSecurityGroupExtension implements SecurityGroupE
ListOptions options = new ListOptions.Builder().filter("network eq .*/" + group.getName());
- if (api.getFirewallApi(userProject.get()).list(options).concat().anyMatch(providesIpPermission(ipPermission))) {
+ if (Iterables
+ .any(concat(api.getFirewallApi(userProject.get()).list(options)), providesIpPermission(ipPermission))) {
// Permission already exists.
return group;
}
@@ -267,7 +269,7 @@ public class GoogleComputeEngineSecurityGroupExtension implements SecurityGroupE
ListOptions options = new ListOptions.Builder().filter("network eq .*/" + group.getName());
- FluentIterable<Firewall> fws = api.getFirewallApi(userProject.get()).list(options).concat();
+ FluentIterable<Firewall> fws = FluentIterable.from(concat(api.getFirewallApi(userProject.get()).list(options)));
for (Firewall fw : fws) {
if (equalsIpPermission(ipPermission).apply(fw)) {
@@ -328,13 +330,14 @@ public class GoogleComputeEngineSecurityGroupExtension implements SecurityGroupE
private SecurityGroup groupForTagsInNetwork(Network nw, final Collection<String> tags) {
ListOptions opts = new Builder().filter("network eq .*/" + nw.name());
- List<Firewall> fws = api.getFirewallApi(userProject.get()).list(opts).concat().filter(new Predicate<Firewall>() {
- @Override public boolean apply(final Firewall input) {
- // If any of the targetTags on the firewall apply or the firewall has no target tags...
- return Iterables.any(input.targetTags(), Predicates.in(tags)) || Predicates.equalTo(0)
- .apply(input.targetTags().size());
- }
- }).toList();
+ List<Firewall> fws = FluentIterable.from(concat(api.getFirewallApi(userProject.get()).list(opts)))
+ .filter(new Predicate<Firewall>() {
+ @Override public boolean apply(final Firewall input) {
+ // If any of the targetTags on the firewall apply or the firewall has no target tags...
+ return Iterables.any(input.targetTags(), Predicates.in(tags)) || Predicates.equalTo(0)
+ .apply(input.targetTags().size());
+ }
+ }).toList();
if (fws.isEmpty()) {
return null;
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroup.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroup.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroup.java
index 8747b44..5c4d8ce 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroup.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroup.java
@@ -16,6 +16,8 @@
*/
package org.jclouds.googlecomputeengine.compute.functions;
+import static org.jclouds.googlecomputeengine.internal.ListPages.concat;
+
import javax.annotation.Resource;
import javax.inject.Inject;
import javax.inject.Named;
@@ -70,7 +72,7 @@ public class NetworkToSecurityGroup implements Function<Network, SecurityGroup>
ListOptions options = new ListOptions.Builder().filter("network eq .*/" + network.name());
- for (Firewall fw : api.getFirewallApi(project.get()).list(options).concat()) {
+ for (Firewall fw : concat(api.getFirewallApi(project.get()).list(options))) {
permBuilder.addAll(firewallToPerms.apply(fw));
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/AddressApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/AddressApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/AddressApi.java
index bbb65de..8babee2 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/AddressApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/AddressApi.java
@@ -19,6 +19,8 @@ package org.jclouds.googlecomputeengine.features;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
+import java.util.Iterator;
+
import javax.inject.Named;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
@@ -30,9 +32,8 @@ import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
-import org.jclouds.Fallbacks.EmptyPagedIterableOnNotFoundOr404;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.collect.PagedIterable;
+import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyIteratorOnNotFoundOr404;
import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyListPageOnNotFoundOr404;
import org.jclouds.googlecomputeengine.domain.Address;
import org.jclouds.googlecomputeengine.domain.ListPage;
@@ -65,7 +66,7 @@ public interface AddressApi {
* @param addressName name of the address resource to return.
* @return a Address resource.
*/
- @Named("Addresss:get")
+ @Named("Addresses:get")
@GET
@Consumes(MediaType.APPLICATION_JSON)
@Path("/regions/{region}/addresses/{address}")
@@ -83,7 +84,7 @@ public interface AddressApi {
* @return an Operation resource. To check on the status of an operation, poll the Operations resource returned to
* you, and look for the status field.
*/
- @Named("Addresss:insert")
+ @Named("Addresses:insert")
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@@ -100,7 +101,7 @@ public interface AddressApi {
* @return an Operation resource. To check on the status of an operation, poll the Operations resource returned to
* you, and look for the status field.
*/
- @Named("Addresss:delete")
+ @Named("Addresses:delete")
@DELETE
@Consumes(MediaType.APPLICATION_JSON)
@Path("/regions/{region}/addresses/{address}")
@@ -110,30 +111,6 @@ public interface AddressApi {
Operation deleteInRegion(@PathParam("region") String region, @PathParam("address") String addressName);
/**
- * @see org.jclouds.googlecomputeengine.features.AddressApi#listAtMarkerInRegion(String, String, org.jclouds.googlecomputeengine.options.ListOptions)
- */
- @Named("Addresss:list")
- @GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/regions/{region}/addresses")
- @OAuthScopes(COMPUTE_READONLY_SCOPE)
- @ResponseParser(ParseAddresses.class)
- @Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Address> listFirstPageInRegion(@PathParam("region") String region);
-
- /**
- * @see org.jclouds.googlecomputeengine.features.AddressApi#listAtMarkerInRegion(String, String, org.jclouds.googlecomputeengine.options.ListOptions)
- */
- @Named("Addresss:list")
- @GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/regions/{region}/addresses")
- @OAuthScopes(COMPUTE_READONLY_SCOPE)
- @ResponseParser(ParseAddresses.class)
- @Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Address> listAtMarkerInRegion(@PathParam("region") String region, @QueryParam("pageToken") @Nullable String marker);
-
- /**
* Retrieves the listPage of address resources contained within the specified project and region.
* By default the listPage as a maximum size of 100, if no options are provided or ListOptions#getMaxResults() has
* not been set.
@@ -145,7 +122,7 @@ public interface AddressApi {
* @see org.jclouds.googlecomputeengine.options.ListOptions
* @see org.jclouds.googlecomputeengine.domain.ListPage
*/
- @Named("Addresss:list")
+ @Named("Addresses:list")
@GET
@Consumes(MediaType.APPLICATION_JSON)
@Path("/regions/{region}/addresses")
@@ -158,27 +135,26 @@ public interface AddressApi {
* A paged version of AddressApi#listPageInRegion(String)
*
* @param region the region to list in
- * @return a Paged, Fluent Iterable that is able to fetch additional pages when required
- * @see org.jclouds.collect.PagedIterable
- * @see org.jclouds.googlecomputeengine.features.AddressApi#listAtMarkerInRegion(String, String, org.jclouds.googlecomputeengine.options.ListOptions)
+ * @return an Iterator that is able to fetch additional pages when required
+ * @see #listAtMarkerInRegion(String, String, org.jclouds.googlecomputeengine.options.ListOptions)
*/
- @Named("Addresss:list")
+ @Named("Addresses:list")
@GET
@Consumes(MediaType.APPLICATION_JSON)
@Path("/regions/{region}/addresses")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseAddresses.class)
- @Transform(ParseAddresses.ToPagedIterable.class)
- @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
- PagedIterable<Address> listInRegion(@PathParam("region") String region);
+ @Transform(ParseAddresses.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<Address>> listInRegion(@PathParam("region") String region);
- @Named("Addresss:list")
+ @Named("Addresses:list")
@GET
@Consumes(MediaType.APPLICATION_JSON)
@Path("/regions/{region}/addresses")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseAddresses.class)
- @Transform(ParseAddresses.ToPagedIterable.class)
- @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
- PagedIterable<Address> listInRegion(@PathParam("region") String region, ListOptions options);
+ @Transform(ParseAddresses.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<Address>> listInRegion(@PathParam("region") String region, ListOptions options);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/DiskApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/DiskApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/DiskApi.java
index 7159a6f..d38c48a 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/DiskApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/DiskApi.java
@@ -19,6 +19,8 @@ package org.jclouds.googlecomputeengine.features;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
+import java.util.Iterator;
+
import javax.inject.Named;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
@@ -30,9 +32,8 @@ import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
-import org.jclouds.Fallbacks.EmptyPagedIterableOnNotFoundOr404;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.collect.PagedIterable;
+import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyIteratorOnNotFoundOr404;
import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyListPageOnNotFoundOr404;
import org.jclouds.googlecomputeengine.binders.DiskCreationBinder;
import org.jclouds.googlecomputeengine.domain.Disk;
@@ -103,7 +104,7 @@ public interface DiskApi {
* @param diskName the name of disk.
* @param sizeGb the size of the disk
* @param zone the name of the zone where the disk is to be created.
- * @param diskCreationOption the options of the disk to create.
+ * @param options the options of the disk to create.
* @return an Operation resource. To check on the status of an operation, poll the Operations resource returned to
* you, and look for the status field.
*/
@@ -117,7 +118,7 @@ public interface DiskApi {
Operation createInZone(@PayloadParam("name") String diskName,
@PayloadParam("sizeGb") int sizeGb,
@PathParam("zone") String zone,
- @PayloadParam("options") DiskCreationOptions diskCreationOptions);
+ @PayloadParam("options") DiskCreationOptions options);
/**
* Deletes the specified persistent disk resource.
@@ -137,30 +138,6 @@ public interface DiskApi {
Operation deleteInZone(@PathParam("zone") String zone, @PathParam("disk") String diskName);
/**
- * @see DiskApi#listAtMarkerInZone(String, String, org.jclouds.googlecomputeengine.options.ListOptions)
- */
- @Named("Disks:list")
- @GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/zones/{zone}/disks")
- @OAuthScopes(COMPUTE_READONLY_SCOPE)
- @ResponseParser(ParseDisks.class)
- @Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Disk> listFirstPageInZone(@PathParam("zone") String zone);
-
- /**
- * @see DiskApi#listAtMarkerInZone(String, String, org.jclouds.googlecomputeengine.options.ListOptions)
- */
- @Named("Disks:list")
- @GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/zones/{zone}/disks")
- @OAuthScopes(COMPUTE_READONLY_SCOPE)
- @ResponseParser(ParseDisks.class)
- @Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Disk> listAtMarkerInZone(@PathParam("zone") String zone, @QueryParam("pageToken") @Nullable String marker);
-
- /**
* Retrieves the listPage of persistent disk resources contained within the specified project and zone.
* By default the listPage as a maximum size of 100, if no options are provided or ListOptions#getMaxResults() has
* not been set.
@@ -185,8 +162,7 @@ public interface DiskApi {
* A paged version of DiskApi#listPageInZone(String)
*
* @param zone the zone to list in
- * @return a Paged, Fluent Iterable that is able to fetch additional pages when required
- * @see PagedIterable
+ * @return an Iterator that is able to fetch additional pages when required
* @see DiskApi#listAtMarkerInZone(String, String, org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("Disks:list")
@@ -195,9 +171,9 @@ public interface DiskApi {
@Path("/zones/{zone}/disks")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseDisks.class)
- @Transform(ParseDisks.ToPagedIterable.class)
- @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
- PagedIterable<Disk> listInZone(@PathParam("zone") String zone);
+ @Transform(ParseDisks.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<Disk>> listInZone(@PathParam("zone") String zone);
@Named("Disks:list")
@GET
@@ -205,9 +181,9 @@ public interface DiskApi {
@Path("/zones/{zone}/disks")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseDisks.class)
- @Transform(ParseDisks.ToPagedIterable.class)
- @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
- PagedIterable<Disk> listInZone(@PathParam("zone") String zone, ListOptions options);
+ @Transform(ParseDisks.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<Disk>> listInZone(@PathParam("zone") String zone, ListOptions options);
/**
* Create a snapshot of a given disk in a zone.
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/DiskTypeApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/DiskTypeApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/DiskTypeApi.java
index ab72f4c..32cf465 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/DiskTypeApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/DiskTypeApi.java
@@ -18,6 +18,8 @@ package org.jclouds.googlecomputeengine.features;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
+import java.util.Iterator;
+
import javax.inject.Named;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
@@ -26,9 +28,8 @@ import javax.ws.rs.PathParam;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
-import org.jclouds.Fallbacks.EmptyPagedIterableOnNotFoundOr404;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.collect.PagedIterable;
+import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyIteratorOnNotFoundOr404;
import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyListPageOnNotFoundOr404;
import org.jclouds.googlecomputeengine.domain.DiskType;
import org.jclouds.googlecomputeengine.domain.ListPage;
@@ -65,29 +66,7 @@ public interface DiskTypeApi {
@Path("/zones/{zone}/diskTypes/{diskType}")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@Fallback(NullOnNotFoundOr404.class)
- DiskType getInZone(@PathParam("zone") String zone, @PathParam("diskType") String diskTypeName);
-
- /**
- * @see DiskTypeApi#listAtMarkerInZone(String, String, org.jclouds.googlecomputeengine.options.ListOptions)
- */
- @Named("DiskTypes:list")
- @GET
- @Path("/zones/{zone}/diskTypes")
- @OAuthScopes(COMPUTE_READONLY_SCOPE)
- @ResponseParser(ParseDiskTypes.class)
- @Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<DiskType> listFirstPageInZone(@PathParam("zone") String zone);
-
- /**
- * @see DiskTypeApi#listAtMarkerInZone(String, String, org.jclouds.googlecomputeengine.options.ListOptions)
- */
- @Named("DiskTypes:list")
- @GET
- @Path("/zones/{zone}/diskType")
- @OAuthScopes(COMPUTE_READONLY_SCOPE)
- @ResponseParser(ParseDiskTypes.class)
- @Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<DiskType> listAtMarkerInZone(@PathParam("zone") String zone, @QueryParam("pageToken") @Nullable String marker);
+ DiskType getInZone(@PathParam("zone") String zone, @PathParam("diskType") String diskType);
/**
* Retrieves the list of disk type resources available to the specified project.
@@ -119,24 +98,22 @@ public interface DiskTypeApi {
@Path("/zones/{zone}/diskTypes")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseDiskTypes.class)
- @Transform(ParseDiskTypes.ToPagedIterable.class)
- @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
- PagedIterable<DiskType> listInZone(@PathParam("zone") String zone);
+ @Transform(ParseDiskTypes.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<DiskType>> listInZone(@PathParam("zone") String zone);
/**
* @see DiskTypeApi#listAtMarkerInZone(String, String, org.jclouds.googlecomputeengine.options.ListOptions)
*
* @param zone the zone to list in
- * @return a Paged, Fluent Iterable that is able to fetch additional pages when required
- * @see PagedIterable
+ * @return an Iterator that is able to fetch additional pages when required
*/
@Named("DiskTypes:list")
@GET
@Path("/zones/{zone}/diskTypes")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseDiskTypes.class)
- @Transform(ParseDiskTypes.ToPagedIterable.class)
- @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
- PagedIterable<DiskType> listInZone(@PathParam("zone") String zone, ListOptions listOptions);
-
+ @Transform(ParseDiskTypes.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<DiskType>> listInZone(@PathParam("zone") String zone, ListOptions listOptions);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/FirewallApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/FirewallApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/FirewallApi.java
index 1e161de..5a6567d 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/FirewallApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/FirewallApi.java
@@ -20,6 +20,7 @@ import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPU
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
import java.net.URI;
+import java.util.Iterator;
import javax.inject.Named;
import javax.ws.rs.Consumes;
@@ -33,9 +34,8 @@ import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
-import org.jclouds.Fallbacks.EmptyPagedIterableOnNotFoundOr404;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.collect.PagedIterable;
+import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyIteratorOnNotFoundOr404;
import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyListPageOnNotFoundOr404;
import org.jclouds.googlecomputeengine.binders.FirewallBinder;
import org.jclouds.googlecomputeengine.domain.Firewall;
@@ -149,36 +149,12 @@ public interface FirewallApi {
Operation delete(@PathParam("firewall") String firewallName);
/**
- * @see FirewallApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
- */
- @Named("Firewalls:list")
- @GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/global/firewalls")
- @OAuthScopes(COMPUTE_READONLY_SCOPE)
- @ResponseParser(ParseFirewalls.class)
- @Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Firewall> listFirstPage();
-
- /**
- * @see FirewallApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
- */
- @Named("Firewalls:list")
- @GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/global/firewalls")
- @OAuthScopes(COMPUTE_READONLY_SCOPE)
- @ResponseParser(ParseFirewalls.class)
- @Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Firewall> listAtMarker(@QueryParam("pageToken") @Nullable String marker);
-
- /**
* Retrieves the list of firewall resources available to the specified project.
* By default the list as a maximum size of 100, if no options are provided or ListOptions#getMaxResults() has not
* been set.
*
- * @param marker marks the beginning of the next list page
- * @param listOptions listing options
+ * @param marker marks the beginning of the next list page
+ * @param options listing options
* @return a page of the list
* @see ListOptions
* @see org.jclouds.googlecomputeengine.domain.ListPage
@@ -201,15 +177,14 @@ public interface FirewallApi {
@Path("/global/firewalls")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseFirewalls.class)
- @Transform(ParseFirewalls.ToPagedIterable.class)
- @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
- PagedIterable<Firewall> list();
+ @Transform(ParseFirewalls.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<Firewall>> list();
/**
* A paged version of FirewallApi#list()
*
- * @return a Paged, Fluent Iterable that is able to fetch additional pages when required
- * @see PagedIterable
+ * @return an Iterator that is able to fetch additional pages when required
* @see FirewallApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("Firewalls:list")
@@ -218,7 +193,7 @@ public interface FirewallApi {
@Path("/global/firewalls")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseFirewalls.class)
- @Transform(ParseFirewalls.ToPagedIterable.class)
- @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
- PagedIterable<Firewall> list(ListOptions options);
+ @Transform(ParseFirewalls.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<Firewall>> list(ListOptions options);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ForwardingRuleApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ForwardingRuleApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ForwardingRuleApi.java
index 2e8820c..95009c0 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ForwardingRuleApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ForwardingRuleApi.java
@@ -20,6 +20,7 @@ import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPU
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
import java.net.URI;
+import java.util.Iterator;
import javax.inject.Named;
import javax.ws.rs.Consumes;
@@ -31,9 +32,8 @@ import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
-import org.jclouds.Fallbacks.EmptyPagedIterableOnNotFoundOr404;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.collect.PagedIterable;
+import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyIteratorOnNotFoundOr404;
import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyListPageOnNotFoundOr404;
import org.jclouds.googlecomputeengine.binders.ForwardingRuleCreationBinder;
import org.jclouds.googlecomputeengine.domain.ForwardingRule;
@@ -80,8 +80,6 @@ public interface ForwardingRuleApi {
* Creates a ForwardingRule resource in the specified project and region using the data included in the request.
*
* @param forwardingRuleName the name of the forwarding rule.
- * @param targetSelfLink the URL of the target resource to receive the matched traffic. The target resource must live
- * in the same region as this forwarding rule.
* @return an Operation resource. To check on the status of an operation, poll the Operations resource returned to
* you, and look for the status field.
*/
@@ -110,9 +108,8 @@ public interface ForwardingRuleApi {
@Nullable
Operation delete(@PathParam("forwardingRule") String forwardingRule);
-
/**
- * @return a Paged, Fluent Iterable that is able to fetch additional pages when required
+ * @return an Iterator that is able to fetch additional pages when required
* @see org.jclouds.collect.PagedIterable
*/
@Named("ForwardingRules:list")
@@ -120,9 +117,9 @@ public interface ForwardingRuleApi {
@Path("/forwardingRules")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseForwardingRules.class)
- @Transform(ParseForwardingRules.ToPagedIterable.class)
- @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
- PagedIterable<ForwardingRule> list();
+ @Transform(ParseForwardingRules.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<ForwardingRule>> list();
@Named("ForwardingRules:list")
@GET
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/GlobalOperationApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/GlobalOperationApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/GlobalOperationApi.java
index 572af71..0d23b03 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/GlobalOperationApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/GlobalOperationApi.java
@@ -19,6 +19,8 @@ package org.jclouds.googlecomputeengine.features;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
+import java.util.Iterator;
+
import javax.inject.Named;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
@@ -28,9 +30,8 @@ import javax.ws.rs.PathParam;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
-import org.jclouds.Fallbacks.EmptyPagedIterableOnNotFoundOr404;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.collect.PagedIterable;
+import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyIteratorOnNotFoundOr404;
import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyListPageOnNotFoundOr404;
import org.jclouds.googlecomputeengine.domain.ListPage;
import org.jclouds.googlecomputeengine.domain.Operation;
@@ -79,30 +80,6 @@ public interface GlobalOperationApi {
void delete(@PathParam("operation") String operationName);
/**
- * @see org.jclouds.googlecomputeengine.features.GlobalOperationApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
- */
- @Named("GlobalOperations:list")
- @GET
- @Path("/global/operations")
- @OAuthScopes(COMPUTE_READONLY_SCOPE)
- @Consumes(MediaType.APPLICATION_JSON)
- @ResponseParser(ParseGlobalOperations.class)
- @Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Operation> listFirstPage();
-
- /**
- * @see org.jclouds.googlecomputeengine.features.GlobalOperationApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
- */
- @Named("GlobalOperations:list")
- @GET
- @Path("/global/operations")
- @OAuthScopes(COMPUTE_READONLY_SCOPE)
- @Consumes(MediaType.APPLICATION_JSON)
- @ResponseParser(ParseGlobalOperations.class)
- @Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Operation> listAtMarker(@QueryParam("pageToken") @Nullable String marker);
-
- /**
* Retrieves the listFirstPage of operation resources contained within the specified project.
* By default the listFirstPage as a maximum size of 100, if no options are provided or ListOptions#getMaxResults()
* has not been set.
@@ -110,8 +87,6 @@ public interface GlobalOperationApi {
* @param marker marks the beginning of the next list page
* @param listOptions listing options
* @return a page of the list, starting at marker
- * @see org.jclouds.googlecomputeengine.options.ListOptions
- * @see org.jclouds.googlecomputeengine.domain.ListPage
*/
@Named("GlobalOperations:list")
@GET
@@ -120,11 +95,10 @@ public interface GlobalOperationApi {
@Consumes(MediaType.APPLICATION_JSON)
@ResponseParser(ParseGlobalOperations.class)
@Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Operation> listAtMarker(@QueryParam("pageToken") @Nullable String marker,
- ListOptions listOptions);
+ ListPage<Operation> listAtMarker(@QueryParam("pageToken") @Nullable String marker, ListOptions listOptions);
/**
- * @see org.jclouds.googlecomputeengine.features.GlobalOperationApi#list(org.jclouds.googlecomputeengine.options.ListOptions)
+ * @see GlobalOperationApi#list(org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("GlobalOperations:list")
@GET
@@ -132,16 +106,15 @@ public interface GlobalOperationApi {
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@Consumes(MediaType.APPLICATION_JSON)
@ResponseParser(ParseGlobalOperations.class)
- @Transform(ParseGlobalOperations.ToPagedIterable.class)
- @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
- PagedIterable<Operation> list();
+ @Transform(ParseGlobalOperations.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<Operation>> list();
/**
* A paged version of GlobalOperationApi#listFirstPage()
*
- * @return a Paged, Fluent Iterable that is able to fetch additional pages when required
- * @see org.jclouds.collect.PagedIterable
- * @see org.jclouds.googlecomputeengine.features.GlobalOperationApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
+ * @return an Iterator that is able to fetch additional pages when required
+ * @see GlobalOperationApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("GlobalOperations:list")
@GET
@@ -149,8 +122,7 @@ public interface GlobalOperationApi {
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@Consumes(MediaType.APPLICATION_JSON)
@ResponseParser(ParseGlobalOperations.class)
- @Transform(ParseGlobalOperations.ToPagedIterable.class)
- @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
- PagedIterable<Operation> list(ListOptions listOptions);
-
+ @Transform(ParseGlobalOperations.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<Operation>> list(ListOptions listOptions);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/HttpHealthCheckApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/HttpHealthCheckApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/HttpHealthCheckApi.java
index 5974729..892bba3 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/HttpHealthCheckApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/HttpHealthCheckApi.java
@@ -20,6 +20,8 @@ import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPU
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyListPageOnNotFoundOr404;
+import java.util.Iterator;
+
import javax.inject.Named;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
@@ -31,9 +33,8 @@ import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
-import org.jclouds.Fallbacks.EmptyPagedIterableOnNotFoundOr404;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.collect.PagedIterable;
+import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyIteratorOnNotFoundOr404;
import org.jclouds.googlecomputeengine.binders.HttpHealthCheckCreationBinder;
import org.jclouds.googlecomputeengine.domain.HttpHealthCheck;
import org.jclouds.googlecomputeengine.domain.ListPage;
@@ -120,16 +121,16 @@ public interface HttpHealthCheckApi {
Operation delete(@PathParam("httpHealthCheck") String httpHealthCheck);
/**
- * @return a Paged, Fluent Iterable that is able to fetch additional pages when required
+ * @return an Iterator that is able to fetch additional pages when required
* @see org.jclouds.collect.PagedIterable
*/
@Named("HttpHealthChecks:list")
@GET
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseHttpHealthChecks.class)
- @Transform(ParseHttpHealthChecks.ToPagedIterable.class)
- @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
- PagedIterable<HttpHealthCheck> list();
+ @Transform(ParseHttpHealthChecks.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<HttpHealthCheck>> list();
/**
* @param options @see org.jclouds.googlecomputeengine.options.ListOptions
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ImageApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ImageApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ImageApi.java
index 5521116..2b4562a 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ImageApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ImageApi.java
@@ -19,6 +19,8 @@ package org.jclouds.googlecomputeengine.features;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
+import java.util.Iterator;
+
import javax.inject.Named;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
@@ -30,9 +32,8 @@ import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
-import org.jclouds.Fallbacks.EmptyPagedIterableOnNotFoundOr404;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.collect.PagedIterable;
+import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyIteratorOnNotFoundOr404;
import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyListPageOnNotFoundOr404;
import org.jclouds.googlecomputeengine.domain.Image;
import org.jclouds.googlecomputeengine.domain.ListPage;
@@ -89,30 +90,6 @@ public interface ImageApi {
Operation delete(@PathParam("image") String imageName);
/**
- * @see ImageApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
- */
- @Named("Images:list")
- @GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/global/images")
- @OAuthScopes(COMPUTE_READONLY_SCOPE)
- @ResponseParser(ParseImages.class)
- @Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Image> listFirstPage();
-
- /**
- * @see ImageApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
- */
- @Named("Images:list")
- @GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/global/images")
- @OAuthScopes(COMPUTE_READONLY_SCOPE)
- @ResponseParser(ParseImages.class)
- @Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Image> listAtMarker(@QueryParam("pageToken") @Nullable String marker);
-
- /**
* Retrieves the list of image resources available to the specified project.
* By default the list as a maximum size of 100, if no options are provided or ListOptions#getMaxResults() has not
* been set.
@@ -135,8 +112,7 @@ public interface ImageApi {
/**
* A paged version of ImageApi#list()
*
- * @return a Paged, Fluent Iterable that is able to fetch additional pages when required
- * @see PagedIterable
+ * @return an Iterator that is able to fetch additional pages when required
* @see ImageApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("Images:list")
@@ -145,15 +121,14 @@ public interface ImageApi {
@Path("/global/images")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseImages.class)
- @Transform(ParseImages.ToPagedIterable.class)
- @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
- PagedIterable<Image> list();
+ @Transform(ParseImages.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<Image>> list();
/**
* A paged version of ImageApi#list()
*
- * @return a Paged, Fluent Iterable that is able to fetch additional pages when required
- * @see PagedIterable
+ * @return an Iterator that is able to fetch additional pages when required
* @see ImageApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("Images:list")
@@ -162,9 +137,9 @@ public interface ImageApi {
@Path("/global/images")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseImages.class)
- @Transform(ParseImages.ToPagedIterable.class)
- @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
- PagedIterable<Image> list(ListOptions options);
+ @Transform(ParseImages.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<Image>> list(ListOptions options);
/**
* Creates an image resource in the specified project from the provided persistent disk.
@@ -182,5 +157,4 @@ public interface ImageApi {
@OAuthScopes(COMPUTE_SCOPE)
@MapBinder(BindToJsonPayload.class)
Operation createImageFromPD(@PayloadParam("name") String imageName, @PayloadParam("sourceDisk") String sourceDisk);
-
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/InstanceApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/InstanceApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/InstanceApi.java
index f5f033b..35f12d9 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/InstanceApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/InstanceApi.java
@@ -19,6 +19,7 @@ package org.jclouds.googlecomputeengine.features;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
+import java.util.Iterator;
import java.util.Map;
import javax.inject.Named;
@@ -32,9 +33,8 @@ import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
-import org.jclouds.Fallbacks.EmptyPagedIterableOnNotFoundOr404;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.collect.PagedIterable;
+import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyIteratorOnNotFoundOr404;
import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyListPageOnNotFoundOr404;
import org.jclouds.googlecomputeengine.binders.InstanceBinder;
import org.jclouds.googlecomputeengine.binders.MetadataBinder;
@@ -121,23 +121,6 @@ public interface InstanceApi {
Operation deleteInZone(@PathParam("zone") String zone, @PathParam("instance") String instanceName);
/**
- * A paged version of InstanceApi#listInZone()
- *
- * @param zone zone instances are in
- * @return a Paged, Fluent Iterable that is able to fetch additional pages when required
- * @see PagedIterable
- * @see InstanceApi#listAtMarkerInZone(String, String, org.jclouds.googlecomputeengine.options.ListOptions)
- */
- @Named("Instances:list")
- @GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/zones/{zone}/instances")
- @OAuthScopes(COMPUTE_READONLY_SCOPE)
- @ResponseParser(ParseInstances.class)
- @Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Instance> listFirstPageInZone(@PathParam("zone") String zone);
-
- /**
* Retrieves the list of instance resources available to the specified project.
* By default the list as a maximum size of 100, if no options are provided or ListOptions#getMaxResults() has not
* been set.
@@ -160,19 +143,6 @@ public interface InstanceApi {
ListOptions listOptions);
/**
- * @see InstanceApi#listAtMarkerInZone(String, String, org.jclouds.googlecomputeengine.options.ListOptions)
- */
- @Named("Instances:list")
- @GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/zones/{zone}/instances")
- @OAuthScopes(COMPUTE_READONLY_SCOPE)
- @ResponseParser(ParseInstances.class)
- @Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Instance> listAtMarkerInZone(@PathParam("zone") String zone,
- @Nullable String marker);
-
- /**
* @see InstanceApi#listInZone(String, org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("Instances:list")
@@ -181,9 +151,9 @@ public interface InstanceApi {
@Path("/zones/{zone}/instances")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseInstances.class)
- @Transform(ParseInstances.ToPagedIterable.class)
- @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
- PagedIterable<Instance> listInZone(@PathParam("zone") String zone);
+ @Transform(ParseInstances.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<Instance>> listInZone(@PathParam("zone") String zone);
/**
* @see InstanceApi#listInZone(String, org.jclouds.googlecomputeengine.options.ListOptions)
@@ -194,9 +164,9 @@ public interface InstanceApi {
@Path("/zones/{zone}/instances")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseInstances.class)
- @Transform(ParseInstances.ToPagedIterable.class)
- @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
- PagedIterable<Instance> listInZone(@PathParam("zone") String zone, ListOptions options);
+ @Transform(ParseInstances.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<Instance>> listInZone(@PathParam("zone") String zone, ListOptions options);
/**
* Adds an access config to an instance's network interface.
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/MachineTypeApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/MachineTypeApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/MachineTypeApi.java
index 0c5df8c..f78d12d 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/MachineTypeApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/MachineTypeApi.java
@@ -18,6 +18,8 @@ package org.jclouds.googlecomputeengine.features;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
+import java.util.Iterator;
+
import javax.inject.Named;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
@@ -26,9 +28,8 @@ import javax.ws.rs.PathParam;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
-import org.jclouds.Fallbacks.EmptyPagedIterableOnNotFoundOr404;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.collect.PagedIterable;
+import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyIteratorOnNotFoundOr404;
import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyListPageOnNotFoundOr404;
import org.jclouds.googlecomputeengine.domain.ListPage;
import org.jclouds.googlecomputeengine.domain.MachineType;
@@ -66,28 +67,6 @@ public interface MachineTypeApi {
MachineType getInZone(@PathParam("zone") String zone, @PathParam("machineType") String machineTypeName);
/**
- * @see MachineTypeApi#listAtMarkerInZone(String, String, org.jclouds.googlecomputeengine.options.ListOptions)
- */
- @Named("MachineTypes:list")
- @GET
- @Path("/zones/{zone}/machineTypes")
- @OAuthScopes(COMPUTE_READONLY_SCOPE)
- @ResponseParser(ParseMachineTypes.class)
- @Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<MachineType> listFirstPageInZone(@PathParam("zone") String zone);
-
- /**
- * @see MachineTypeApi#listAtMarkerInZone(String, String, org.jclouds.googlecomputeengine.options.ListOptions)
- */
- @Named("MachineTypes:list")
- @GET
- @Path("/zones/{zone}/machineTypes")
- @OAuthScopes(COMPUTE_READONLY_SCOPE)
- @ResponseParser(ParseMachineTypes.class)
- @Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<MachineType> listAtMarkerInZone(@PathParam("zone") String zone, @QueryParam("pageToken") @Nullable String marker);
-
- /**
* Retrieves the list of machine type resources available to the specified project.
* By default the list as a maximum size of 100, if no options are provided or ListOptions#getMaxResults() has not
* been set.
@@ -117,16 +96,15 @@ public interface MachineTypeApi {
@Path("/zones/{zone}/machineTypes")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseMachineTypes.class)
- @Transform(ParseMachineTypes.ToPagedIterable.class)
- @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
- PagedIterable<MachineType> listInZone(@PathParam("zone") String zone);
+ @Transform(ParseMachineTypes.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<MachineType>> listInZone(@PathParam("zone") String zone);
/**
* A paged version of MachineTypeApi#listInZone(String)
*
* @param zone the zone to list in
- * @return a Paged, Fluent Iterable that is able to fetch additional pages when required
- * @see PagedIterable
+ * @return an Iterator that is able to fetch additional pages when required
* @see MachineTypeApi#listAtMarkerInZone(String, String, org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("MachineTypes:list")
@@ -134,8 +112,8 @@ public interface MachineTypeApi {
@Path("/zones/{zone}/machineTypes")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseMachineTypes.class)
- @Transform(ParseMachineTypes.ToPagedIterable.class)
- @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
- PagedIterable<MachineType> listInZone(@PathParam("zone") String zone, ListOptions listOptions);
+ @Transform(ParseMachineTypes.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<MachineType>> listInZone(@PathParam("zone") String zone, ListOptions listOptions);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/NetworkApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/NetworkApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/NetworkApi.java
index 88ac001..c998be5 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/NetworkApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/NetworkApi.java
@@ -19,6 +19,8 @@ package org.jclouds.googlecomputeengine.features;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
+import java.util.Iterator;
+
import javax.inject.Named;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
@@ -30,9 +32,8 @@ import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
-import org.jclouds.Fallbacks.EmptyPagedIterableOnNotFoundOr404;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.collect.PagedIterable;
+import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyIteratorOnNotFoundOr404;
import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyListPageOnNotFoundOr404;
import org.jclouds.googlecomputeengine.domain.ListPage;
import org.jclouds.googlecomputeengine.domain.Network;
@@ -126,39 +127,14 @@ public interface NetworkApi {
Operation delete(@PathParam("network") String networkName);
/**
- * @see NetworkApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
- */
- @Named("Networks:list")
- @GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/global/networks")
- @OAuthScopes(COMPUTE_READONLY_SCOPE)
- @ResponseParser(ParseNetworks.class)
- @Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Network> listFirstPage();
-
- /**
- * @see NetworkApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
- */
- @Named("Networks:list")
- @GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/global/networks")
- @OAuthScopes(COMPUTE_READONLY_SCOPE)
- @ResponseParser(ParseNetworks.class)
- @Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Network> listAtMarker(@QueryParam("pageToken") @Nullable String marker);
-
- /**
* Retrieves the list of persistent network resources contained within the specified project.
* By default the list as a maximum size of 100, if no options are provided or ListOptions#getMaxResults() has not
* been set.
*
* @param marker marks the beginning of the next list page
- * @param listOptions listing options
+ * @param options listing options
* @return a page of the list
* @see ListOptions
- * @see org.jclouds.googlecomputeengine.domain.ListPage
*/
@Named("Networks:list")
@GET
@@ -167,8 +143,7 @@ public interface NetworkApi {
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseNetworks.class)
@Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Network> listAtMarker(@QueryParam("pageToken") @Nullable String marker,
- ListOptions options);
+ ListPage<Network> listAtMarker(@QueryParam("pageToken") @Nullable String marker, ListOptions options);
/**
* @see NetworkApi#list(org.jclouds.googlecomputeengine.options.ListOptions)
@@ -179,15 +154,14 @@ public interface NetworkApi {
@Path("/global/networks")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseNetworks.class)
- @Transform(ParseNetworks.ToPagedIterable.class)
- @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
- PagedIterable<Network> list();
+ @Transform(ParseNetworks.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<Network>> list();
/**
* A paged version of NetworkApi#list()
*
- * @return a Paged, Fluent Iterable that is able to fetch additional pages when required
- * @see PagedIterable
+ * @return an Iterator that is able to fetch additional pages when required
* @see NetworkApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("Networks:list")
@@ -196,7 +170,7 @@ public interface NetworkApi {
@Path("/global/networks")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseNetworks.class)
- @Transform(ParseNetworks.ToPagedIterable.class)
- @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
- PagedIterable<Network> list(ListOptions options);
+ @Transform(ParseNetworks.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<Network>> list(ListOptions options);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionApi.java
index ae760a0..6480a14 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionApi.java
@@ -18,6 +18,8 @@ package org.jclouds.googlecomputeengine.features;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
+import java.util.Iterator;
+
import javax.inject.Named;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
@@ -25,9 +27,8 @@ import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.MediaType;
-import org.jclouds.Fallbacks.EmptyPagedIterableOnNotFoundOr404;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.collect.PagedIterable;
+import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyIteratorOnNotFoundOr404;
import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyListPageOnNotFoundOr404;
import org.jclouds.googlecomputeengine.domain.ListPage;
import org.jclouds.googlecomputeengine.domain.Region;
@@ -63,37 +64,12 @@ public interface RegionApi {
Region get(@PathParam("region") String regionName);
/**
- * @see org.jclouds.googlecomputeengine.features.RegionApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
- */
- @Named("Regions:list")
- @GET
- @Path("/regions")
- @OAuthScopes(COMPUTE_READONLY_SCOPE)
- @ResponseParser(ParseRegions.class)
- @Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Region> listFirstPage();
-
- /**
- * @see org.jclouds.googlecomputeengine.features.RegionApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
- */
- @Named("Regions:list")
- @GET
- @Path("/regions")
- @OAuthScopes(COMPUTE_READONLY_SCOPE)
- @ResponseParser(ParseRegions.class)
- @Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Region> listAtMarker(String marker);
-
- /**
* Retrieves the listFirstPage of region resources available to the specified project.
* By default the listFirstPage as a maximum size of 100, if no options are provided or ListOptions#getMaxResults()
* has not been set.
*
* @param marker marks the beginning of the next list page
* @param listOptions listing options
- * @return a page of the listFirstPage
- * @see org.jclouds.googlecomputeengine.options.ListOptions
- * @see org.jclouds.googlecomputeengine.domain.ListPage
*/
@Named("Regions:list")
@GET
@@ -104,30 +80,29 @@ public interface RegionApi {
ListPage<Region> listAtMarker(String marker, ListOptions listOptions);
/**
- * @see org.jclouds.googlecomputeengine.features.RegionApi#list(org.jclouds.googlecomputeengine.options.ListOptions)
+ * @see RegionApi#list(org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("Regions:list")
@GET
@Path("/regions")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseRegions.class)
- @Transform(ParseRegions.ToPagedIterable.class)
- @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
- PagedIterable<Region> list();
+ @Transform(ParseRegions.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<Region>> list();
/**
* A paged version of RegionApi#listFirstPage()
*
- * @return a Paged, Fluent Iterable that is able to fetch additional pages when required
- * @see org.jclouds.googlecomputeengine.features.RegionApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
- * @see org.jclouds.collect.PagedIterable
+ * @return an Iterator that is able to fetch additional pages when required
+ * @see RegionApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("Regions:list")
@GET
@Path("/regions")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseRegions.class)
- @Transform(ParseRegions.ToPagedIterable.class)
- @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
- PagedIterable<Region> list(ListOptions listOptions);
+ @Transform(ParseRegions.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<Region>> list(ListOptions listOptions);
}