@Override
  public <T extends BlockObject> T ingestBlockObjects(
      List<URI> systemCache,
      List<URI> poolCache,
      StorageSystem system,
      UnManagedVolume unManagedVolume,
      VirtualPool vPool,
      VirtualArray virtualArray,
      Project project,
      TenantOrg tenant,
      List<UnManagedVolume> unManagedVolumesToBeDeleted,
      Map<String, BlockObject> createdObjectMap,
      Map<String, List<DataObject>> updatedObjectMap,
      boolean unManagedVolumeExported,
      Class<T> clazz,
      Map<String, StringBuffer> taskStatusMap)
      throws IngestionException {
    // For VPLEX volumes, verify that it is OK to ingest the unmanaged
    // volume into the requested virtual array.

    long timeRightNow = new Date().getTime();
    if (timeRightNow > (cacheLastRefreshed + CACHE_TIMEOUT)) {
      _logger.debug("clearing vplex ingestion api info cache");
      clusterIdToNameMap.clear();
      varrayToClusterIdMap.clear();
      cacheLastRefreshed = timeRightNow;
    }

    if (!VolumeIngestionUtil.isValidVarrayForUnmanagedVolume(
        unManagedVolume,
        virtualArray.getId(),
        clusterIdToNameMap,
        varrayToClusterIdMap,
        _dbClient)) {
      _logger.warn(
          "UnManaged Volume {} cannot be ingested into the requested varray. Skipping Ingestion.",
          unManagedVolume.getLabel());

      throw IngestionException.exceptions.varrayIsInvalidForVplexVolume(
          virtualArray.getLabel(), unManagedVolume.getLabel());
    }

    return super.ingestBlockObjects(
        systemCache,
        poolCache,
        system,
        unManagedVolume,
        vPool,
        virtualArray,
        project,
        tenant,
        unManagedVolumesToBeDeleted,
        createdObjectMap,
        updatedObjectMap,
        unManagedVolumeExported,
        clazz,
        taskStatusMap);
  }