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