private static Page<DiskType> listDiskTypes(
final String zone,
final ComputeOptions serviceOptions,
final Map<ComputeRpc.Option, ?> optionsMap) {
try {
Tuple<String, Iterable<com.google.api.services.compute.model.DiskType>> result =
runWithRetries(
new Callable<
Tuple<String, Iterable<com.google.api.services.compute.model.DiskType>>>() {
@Override
public Tuple<String, Iterable<com.google.api.services.compute.model.DiskType>>
call() {
return serviceOptions.getComputeRpcV1().listDiskTypes(zone, optionsMap);
}
},
serviceOptions.getRetrySettings(),
EXCEPTION_HANDLER,
serviceOptions.getClock());
String cursor = result.x();
Iterable<DiskType> diskTypes =
Iterables.transform(
result.y() == null
? ImmutableList.<com.google.api.services.compute.model.DiskType>of()
: result.y(),
new Function<com.google.api.services.compute.model.DiskType, DiskType>() {
@Override
public DiskType apply(com.google.api.services.compute.model.DiskType diskType) {
return DiskType.fromPb(diskType);
}
});