/** look up the current standard images and do not error out, if they are not found. */
  @Override
  public Iterable<DriveInfo> listImages() {
    Iterable<? extends DriveInfo> drives =
        transformParallel(
            client.listStandardDrives(),
            new Function<String, Future<? extends DriveInfo>>() {

              @Override
              public Future<DriveInfo> apply(String input) {
                try {
                  return Futures.immediateFuture(cache.getUnchecked(input));
                } catch (CacheLoader.InvalidCacheLoadException e) {
                  logger.debug("drive %s not found", input);
                } catch (UncheckedExecutionException e) {
                  logger.warn(e, "error finding drive %s: %s", input, e.getMessage());
                }
                return Futures.immediateFuture(null);
              }

              @Override
              public String toString() {
                return "seedDriveCache()";
              }
            },
            executor,
            null,
            logger,
            "drives");
    return Iterables2.concreteCopy(filter(drives, PREINSTALLED_DISK));
  }