>     @Override
>     public Map<String, Supplier<URI>> get() {
> -      Map<String, URI> regionToUris = client.describeRegions();
> -      return Maps.transformValues(regionToUris, Suppliers2.<URI> 
> ofInstanceFunction());
> +      Map<String, URI> regionToUris = 
> api.getAvailabilityZoneAndRegionApi().get().describeRegions();
> +      Map<String, Supplier<URI>> result = Maps.transformValues(regionToUris, 
> Suppliers2.<URI>ofInstanceFunction());
> +      if (whitelistedRegionIds.isEmpty()) {
> +         return result;
> +      }
> +      return Maps.filterKeys(result, Predicates.in(whitelistedRegionIds));

This works for me. I wonder if this is slightly more efficient, since it avoids 
transforming values that will not be returned:
```
Map<String, URI> regionToUris = 
api.getAvailabilityZoneAndRegionApi().get().describeRegions();
if (!whitelistedRegionIds.isEmpty()) {
   regionToUris = Maps.filterKeys(regionToUris, 
Predicates.in(whitelistedRegionIds));
}
return Maps.transformValues(regionToUris, Suppliers2.<URI>ofInstanceFunction());
```
But also fine with leaving as-is if you prefer.

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

Reply via email to