You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jclouds.apache.org by Everett Toews <no...@github.com> on 2013/10/24 04:31:55 UTC

[jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Pagination was a bit all over the place in OpenStack/Rackspace. Consolidate on OpenStack pagination. Prefer using PaginationOptions.
You can merge this Pull Request by running:

  git pull https://github.com/rackspace/jclouds refactor-openstack-pagination

Or you can view, comment on it, or merge it online at:

  https://github.com/jclouds/jclouds/pull/191

-- Commit Summary --

  * Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions.

-- File Changes --

    M apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/KeystoneFallbacks.java (2)
    D apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/domain/PaginatedCollection.java (81)
    M apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/features/TenantApi.java (2)
    M apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/features/TenantAsyncApi.java (2)
    M apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/features/UserApi.java (2)
    M apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/features/UserAsyncApi.java (2)
    M apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/functions/internal/ParseTenants.java (14)
    M apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/functions/internal/ParseUsers.java (14)
    R apis/openstack-keystone/src/main/java/org/jclouds/openstack/v2_0/domain/PaginatedCollection.java (48)
    M apis/openstack-keystone/src/main/java/org/jclouds/openstack/v2_0/options/PaginationOptions.java (18)
    M apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/features/UserApiExpectTest.java (2)
    M apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/FlavorApi.java (2)
    M apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/FlavorAsyncApi.java (2)
    M apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/ImageApi.java (2)
    M apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/ImageAsyncApi.java (2)
    M apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/ServerApi.java (2)
    M apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/ServerAsyncApi.java (2)
    M apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseDiagnostics.java (4)
    M apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseFlavorDetails.java (17)
    M apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseFlavors.java (15)
    M apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseImageDetails.java (16)
    M apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseImages.java (15)
    M apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseServerDetails.java (17)
    M apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseServers.java (15)
    M apis/rackspace-clouddns/src/main/java/org/jclouds/rackspace/clouddns/v1/features/DomainApi.java (11)
    M apis/rackspace-clouddns/src/main/java/org/jclouds/rackspace/clouddns/v1/features/RecordApi.java (8)
    M apis/rackspace-clouddns/src/main/java/org/jclouds/rackspace/clouddns/v1/functions/DomainsToPagedIterable.java (4)
    M apis/rackspace-clouddns/src/main/java/org/jclouds/rackspace/clouddns/v1/functions/ParseDomains.java (2)
    M apis/rackspace-clouddns/src/main/java/org/jclouds/rackspace/clouddns/v1/functions/ParseRecords.java (4)
    M apis/rackspace-clouddns/src/main/java/org/jclouds/rackspace/clouddns/v1/functions/ParseSubdomains.java (2)
    M apis/rackspace-clouddns/src/main/java/org/jclouds/rackspace/clouddns/v1/functions/RecordsToPagedIterable.java (4)
    M apis/rackspace-clouddns/src/main/java/org/jclouds/rackspace/clouddns/v1/functions/SubdomainsToPagedIterable.java (4)
    D apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v2_0/CloudIdentityFallbacks.java (48)
    D apis/rackspace-cloudidentity/src/main/java/org/jclouds/rackspace/cloudidentity/v2_0/options/PaginationOptions.java (97)
    D apis/rackspace-cloudidentity/src/test/java/org/jclouds/rackspace/cloudidentity/v2_0/options/PaginationOptionsTest.java (89)
    M apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseLoadBalancerUsages.java (9)
    M apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseLoadBalancers.java (9)
    M apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseNodes.java (9)

-- Patch Links --

https://github.com/jclouds/jclouds/pull/191.patch
https://github.com/jclouds/jclouds/pull/191.diff

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Everett Toews <no...@github.com>.
> @@ -71,14 +72,16 @@ protected ToPagedIterable(NovaApi api) {
>        }
>  
>        @Override
> -      protected Function<Object, IterableWithMarker<Resource>> markerToNextForCallingArg0(final String zone) {
> +      protected Function<Object, IterableWithMarker<Resource>> markerToNextForArg0(Optional<Object> arg0) {
> +         String zone = arg0.get().toString();

Yep. It's baked into the code. It will always be there.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191/files#r7677499

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Everett Toews <no...@github.com>.
>           final UserApi userApi = api.getUserApi().get();
>           return new Function<Object, IterableWithMarker<User>>() {
>  
>              @SuppressWarnings("unchecked")
>              @Override
>              public IterableWithMarker<User> apply(Object input) {
> -               return IterableWithMarker.class.cast(userApi.list(marker(input.toString())));
> +               PaginationOptions paginationOptions = PaginationOptions.class.cast(input);

See answer from the other pagination PR.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191/files#r7677471

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by CloudBees pull request builder plugin <no...@github.com>.
[jclouds-pull-requests #352](https://jclouds.ci.cloudbees.com/job/jclouds-pull-requests/352/) SUCCESS
This pull request looks good

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191#issuecomment-26963193

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by CloudBees pull request builder plugin <no...@github.com>.
[jclouds-java-7-pull-requests #815](https://jclouds.ci.cloudbees.com/job/jclouds-java-7-pull-requests/815/) UNSTABLE
Looks like there's a problem with this pull request

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191#issuecomment-26963177

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Andrew Phillips <no...@github.com>.
>  
> -   protected PaginatedCollection(@Nullable Iterable<T> resources, @Nullable Iterable<Link> links, int totalEntries) {
> +   protected PaginatedCollection(Iterable<T> resources, Iterable<Link> links, @Nullable Integer totalEntries) {
>        this.resources = resources != null ? resources : ImmutableSet.<T> of();
>        this.links = links != null ? links : ImmutableSet.<Link> of();

No longer need the `null` checks here if they're not nullable? And if the _are_ still nullable, put the annotations back?

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191/files#r7234687

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Everett Toews <no...@github.com>.
>           final TenantApi tenantApi = api.getTenantApi().get();
>           return new Function<Object, IterableWithMarker<Tenant>>() {
>  
>              @SuppressWarnings("unchecked")
>              @Override
>              public IterableWithMarker<Tenant> apply(Object input) {
> -               return IterableWithMarker.class.cast(tenantApi.list(marker(input.toString())));
> +               PaginationOptions paginationOptions = PaginationOptions.class.cast(input);

See answer from the other pagination PR.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191/files#r7677466

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Andrew Phillips <no...@github.com>.
> Fixes in #205 

Thanks for the explanations and the follow-up, @everett-toews!

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191#issuecomment-28847486

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Andrew Phillips <no...@github.com>.
> @@ -49,7 +49,7 @@
>        RawRecords rawRecords = json.apply(response);
>        Iterable<RecordDetail> records = rawRecords.transform(toRecordDetails);
>  
> -      return new Records(records, rawRecords.getLinks(), rawRecords.getTotalEntries());
> +      return new Records(records, rawRecords.getLinks(), rawRecords.getTotalEntries().get());

Can we assume `totalEntries` is present here?

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191/files#r7234707

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Andrew Phillips <no...@github.com>.
> @@ -144,7 +145,7 @@
>     @GET
>     @ResponseParser(ParseDomains.class)
>     @Consumes(MediaType.APPLICATION_JSON)
> -   @Fallback(EmptyPaginatedCollectionOnNotFoundOr404.class)
> +   @Fallback(KeystoneFallbacks.EmptyPaginatedCollectionOnNotFoundOr404.class)

Just a style preference here, or is there some functional reason for this?

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191/files#r7234704

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Everett Toews <no...@github.com>.
> @@ -71,14 +72,16 @@ protected ToPagedIterable(NovaApi api) {
>        }
>  
>        @Override
> -      protected Function<Object, IterableWithMarker<Image>> markerToNextForCallingArg0(final String zone) {
> +      protected Function<Object, IterableWithMarker<Image>> markerToNextForArg0(Optional<Object> arg0) {
> +         String zone = arg0.get().toString();

Same answer as above.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191/files#r7677509

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Everett Toews <no...@github.com>.
Fixes in https://github.com/jclouds/jclouds/pull/205

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191#issuecomment-28535666

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by CloudBees pull request builder plugin <no...@github.com>.
[jclouds-java-7-pull-requests #816](https://jclouds.ci.cloudbees.com/job/jclouds-java-7-pull-requests/816/) SUCCESS
This pull request looks good

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191#issuecomment-26964233

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by CloudBees pull request builder plugin <no...@github.com>.
[jclouds-pull-requests #353](https://jclouds.ci.cloudbees.com/job/jclouds-pull-requests/353/) SUCCESS
This pull request looks good

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191#issuecomment-26964230

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Everett Toews <no...@github.com>.
> @@ -144,7 +145,7 @@
>     @GET
>     @ResponseParser(ParseDomains.class)
>     @Consumes(MediaType.APPLICATION_JSON)
> -   @Fallback(EmptyPaginatedCollectionOnNotFoundOr404.class)
> +   @Fallback(KeystoneFallbacks.EmptyPaginatedCollectionOnNotFoundOr404.class)

All of the other ones do a static import. I'll fix it.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191/files#r7677870

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Everett Toews <no...@github.com>.
> @@ -33,6 +34,16 @@
>   */
>  public class PaginationOptions extends BaseHttpRequestOptions {
>     /**
> +    * Many OpenStack interfaces take different params for pagination. Using queryParams allows you to make
> +    * use of them all if necessary.
> +    */
> +   public PaginationOptions queryParameters(Multimap<String, String> queryParams) {
> +      checkNotNull(queryParams, "queryParams");
> +      queryParameters.putAll(queryParams);

I much prefer the more explicit style.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191/files#r7677805

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Andrew Phillips <no...@github.com>.
>           final TenantApi tenantApi = api.getTenantApi().get();
>           return new Function<Object, IterableWithMarker<Tenant>>() {
>  
>              @SuppressWarnings("unchecked")
>              @Override
>              public IterableWithMarker<Tenant> apply(Object input) {
> -               return IterableWithMarker.class.cast(tenantApi.list(marker(input.toString())));
> +               PaginationOptions paginationOptions = PaginationOptions.class.cast(input);

See comment for the other pagination PR: do we need a `checkArgument` here?

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191/files#r7234678

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Andrew Phillips <no...@github.com>.
>           final NodeApi nodeApi = api.getNodeApiForZoneAndLoadBalancer(zone, lbId);
>           
>           return new Function<Object, IterableWithMarker<Node>>() {
>  
>              @Override
>              public IterableWithMarker<Node> apply(Object input) {
> -               IterableWithMarker<Node> list = nodeApi.list(marker(input.toString()));
> +               PaginationOptions paginationOptions = PaginationOptions.class.cast(input);
> +               IterableWithMarker<Node> list = nodeApi.list(paginationOptions);
>                 return list;

See comment above

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191/files#r7234715

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Andrew Phillips <no...@github.com>.
> @@ -33,6 +34,16 @@
>   */
>  public class PaginationOptions extends BaseHttpRequestOptions {
>     /**
> +    * Many OpenStack interfaces take different params for pagination. Using queryParams allows you to make
> +    * use of them all if necessary.
> +    */
> +   public PaginationOptions queryParameters(Multimap<String, String> queryParams) {
> +      checkNotNull(queryParams, "queryParams");
> +      queryParameters.putAll(queryParams);

[minor]
```
queryParameters.putAll(checkNotNull(queryParams, "queryParams"));
```
? Or do you prefer the "more explicit" style?

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191/files#r7234690

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Andrew Phillips <no...@github.com>.
>           final UserApi userApi = api.getUserApi().get();
>           return new Function<Object, IterableWithMarker<User>>() {
>  
>              @SuppressWarnings("unchecked")
>              @Override
>              public IterableWithMarker<User> apply(Object input) {
> -               return IterableWithMarker.class.cast(userApi.list(marker(input.toString())));
> +               PaginationOptions paginationOptions = PaginationOptions.class.cast(input);

See comment above

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191/files#r7234682

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Everett Toews <no...@github.com>.
>  
> -   protected PaginatedCollection(@Nullable Iterable<T> resources, @Nullable Iterable<Link> links, int totalEntries) {
> +   protected PaginatedCollection(Iterable<T> resources, Iterable<Link> links, @Nullable Integer totalEntries) {
>        this.resources = resources != null ? resources : ImmutableSet.<T> of();
>        this.links = links != null ? links : ImmutableSet.<Link> of();

Good catch. AFAICT those are still possibly nullable and should be annotated as such. I'll fix it.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191/files#r7677797

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Andrew Phillips <no...@github.com>.
>           final LoadBalancerApi loadBalancerApi = api.getLoadBalancerApiForZone(zone);
>           
>           return new Function<Object, IterableWithMarker<LoadBalancer>>() {
>  
>              @Override
>              public IterableWithMarker<LoadBalancer> apply(Object input) {
> -               IterableWithMarker<LoadBalancer> list = loadBalancerApi.list(marker(input.toString()));
> +               PaginationOptions paginationOptions = PaginationOptions.class.cast(input);
> +               IterableWithMarker<LoadBalancer> list = loadBalancerApi.list(paginationOptions);
>                 return list;

[minor] Style difference form above, where the list is returned without using the intermediate variable:
```
return IterableWithMarker.class.cast(tenantApi.list(paginationOptions));
```
Any particular reason?

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191/files#r7234713

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Everett Toews <no...@github.com>.
Closed #191.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Everett Toews <no...@github.com>.
Reopened #191.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by BuildHive <no...@github.com>.
[jclouds ยป jclouds #560](https://buildhive.cloudbees.com/job/jclouds/job/jclouds/560/) SUCCESS
This pull request looks good
[(what's this?)](https://www.cloudbees.com/what-is-buildhive)

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191#issuecomment-26963910

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Everett Toews <no...@github.com>.
>           final LoadBalancerApi loadBalancerApi = api.getLoadBalancerApiForZone(zone);
>           
>           return new Function<Object, IterableWithMarker<LoadBalancer>>() {
>  
>              @Override
>              public IterableWithMarker<LoadBalancer> apply(Object input) {
> -               IterableWithMarker<LoadBalancer> list = loadBalancerApi.list(marker(input.toString()));
> +               PaginationOptions paginationOptions = PaginationOptions.class.cast(input);
> +               IterableWithMarker<LoadBalancer> list = loadBalancerApi.list(paginationOptions);
>                 return list;

I'll fix it. Remove the unnecessary intermediate variable but kept the cast separate as it is in all of the other classes.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191/files#r7677958

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Andrew Phillips <no...@github.com>.
> @@ -71,14 +72,16 @@ protected ToPagedIterable(NovaApi api) {
>        }
>  
>        @Override
> -      protected Function<Object, IterableWithMarker<Image>> markerToNextForCallingArg0(final String zone) {
> +      protected Function<Object, IterableWithMarker<Image>> markerToNextForArg0(Optional<Object> arg0) {
> +         String zone = arg0.get().toString();

See comment above

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191/files#r7234699

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Everett Toews <no...@github.com>.
>           final NodeApi nodeApi = api.getNodeApiForZoneAndLoadBalancer(zone, lbId);
>           
>           return new Function<Object, IterableWithMarker<Node>>() {
>  
>              @Override
>              public IterableWithMarker<Node> apply(Object input) {
> -               IterableWithMarker<Node> list = nodeApi.list(marker(input.toString()));
> +               PaginationOptions paginationOptions = PaginationOptions.class.cast(input);
> +               IterableWithMarker<Node> list = nodeApi.list(paginationOptions);
>                 return list;

Same fix as above.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191/files#r7677967

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Everett Toews <no...@github.com>.
> @@ -49,7 +49,7 @@
>        RawRecords rawRecords = json.apply(response);
>        Iterable<RecordDetail> records = rawRecords.transform(toRecordDetails);
>  
> -      return new Records(records, rawRecords.getLinks(), rawRecords.getTotalEntries());
> +      return new Records(records, rawRecords.getLinks(), rawRecords.getTotalEntries().get());

Yes. The Cloud DNS API is guaranteed to return totalEntries.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191/files#r7677534

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Andrew Phillips <no...@github.com>.
> @@ -71,14 +72,16 @@ protected ToPagedIterable(NovaApi api) {
>        }
>  
>        @Override
> -      protected Function<Object, IterableWithMarker<Resource>> markerToNextForCallingArg0(final String zone) {
> +      protected Function<Object, IterableWithMarker<Resource>> markerToNextForArg0(Optional<Object> arg0) {
> +         String zone = arg0.get().toString();

Assuming `arg0` is present here?

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191/files#r7234696

Re: [jclouds] Refactored OpenStack pagination. Removed Rackspace pagination. Prefer PaginationOptions. (#191)

Posted by Everett Toews <no...@github.com>.
@demobox Care to have a look at this? I was planning on committing in the next hour or two.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/191#issuecomment-27006359