question: 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 ) ; } }
target:  Filters supported vPools in UnManaged Volume based on Auto-Tiering Policy.