public static void filterSupportedVpoolsBasedOnTieringPolicy(UnManagedVolume unManagedVolume,String policyName,StorageSystem system,DbClient dbClient){
  StringSet supportedVpoolURIs=unManagedVolume.getSupportedVpoolUris();
  List<String> vPoolsToRemove=new ArrayList<String>();
  if (supportedVpoolURIs != null) {
    Iterator<String> itr=supportedVpoolURIs.iterator();
    while (itr.hasNext()) {
      String uri=itr.next();
      VirtualPool vPool=dbClient.queryObject(VirtualPool.class,URI.create(uri));
      if (vPool != null && !vPool.getInactive()) {
        String autoTierPolicyId=NativeGUIDGenerator.generateAutoTierPolicyNativeGuid(system.getNativeGuid(),policyName,NativeGUIDGenerator.getTieringPolicyKeyForSystem(system));
        if (!checkVPoolValidForUnManagedVolumeAutoTieringPolicy(vPool,autoTierPolicyId,system)) {
          String msg="Removing vPool %s from SUPPORTED_VPOOL_LIST in UnManagedVolume %s " + "since Auto-tiering Policy %s in UnManaged Volume does not match with vPool's (%s)";
          _log.info(String.format(msg,new Object[]{uri,unManagedVolume.getId(),autoTierPolicyId,vPool.getAutoTierPolicyName()}));
          vPoolsToRemove.add(uri);
        }
      }
 else {
        vPoolsToRemove.add(uri);
      }
    }
  }
  for (  String uri : vPoolsToRemove) {
    supportedVpoolURIs.remove(uri);
  }
}

public static void filterSupportedVpoolsBasedOnTieringPolicy ( UnManagedVolume unManagedVolume , String policyName , StorageSystem system , DbClient dbClient ) { StringSet supportedVpoolURIs = unManagedVolume . getSupportedVpoolUris ( ) ; List < String > vPoolsToRemove = new ArrayList < String > ( ) ; if ( supportedVpoolURIs != null ) { Iterator < String > itr = supportedVpoolURIs . iterator ( ) ; while ( itr . hasNext ( ) ) { String uri = itr . next ( ) ; VirtualPool vPool = dbClient . queryObject ( VirtualPool . class , URI . create ( uri ) ) ; if ( vPool != null && ! vPool . getInactive ( ) ) { String autoTierPolicyId = NativeGUIDGenerator . generateAutoTierPolicyNativeGuid ( system . getNativeGuid ( ) , policyName , NativeGUIDGenerator . getTieringPolicyKeyForSystem ( system ) ) ; if ( ! checkVPoolValidForUnManagedVolumeAutoTieringPolicy ( vPool , autoTierPolicyId , system ) ) { String msg = "Removing vPool %s from SUPPORTED_VPOOL_LIST in UnManagedVolume %s " + "since Auto-tiering Policy %s in UnManaged Volume does not match with vPool's (%s)" ; _log . info ( String . format ( msg , new Object [ ] { uri , unManagedVolume . getId ( ) , autoTierPolicyId , vPool . getAutoTierPolicyName ( ) } ) ) ; vPoolsToRemove . add ( uri ) ; } } else { vPoolsToRemove . add ( uri ) ; } } } for ( String uri : vPoolsToRemove ) { supportedVpoolURIs . remove ( uri ) ; } }
filters supported vpools in unmanaged volume based on auto - tiering policy .
