private static Page<Address> listGlobalAddresses(
final ComputeOptions serviceOptions, final Map<ComputeRpc.Option, ?> optionsMap) {
try {
Tuple<String, Iterable<com.google.api.services.compute.model.Address>> result =
runWithRetries(
new Callable<
Tuple<String, Iterable<com.google.api.services.compute.model.Address>>>() {
@Override
public Tuple<String, Iterable<com.google.api.services.compute.model.Address>>
call() {
return serviceOptions.getComputeRpcV1().listGlobalAddresses(optionsMap);
}
},
serviceOptions.getRetrySettings(),
EXCEPTION_HANDLER,
serviceOptions.getClock());
String cursor = result.x();
Iterable<Address> operations =
Iterables.transform(
result.y() == null
? ImmutableList.<com.google.api.services.compute.model.Address>of()
: result.y(),
addressFromPb(serviceOptions));
return new PageImpl<>(
new GlobalAddressPageFetcher(serviceOptions, cursor, optionsMap), cursor, operations);
} catch (RetryHelper.RetryHelperException e) {
throw ComputeException.translateAndThrow(e);
}
}