public static boolean isSupportedRPRemoveProtectionVirtualPoolChange(Volume volume,VirtualPool currentVpool,VirtualPool newVpool,DbClient dbClient,StringBuffer notSuppReasonBuff){
  s_logger.info(String.format("Checking isSupportedRPRemoveProtectionVirtualPoolChange from [%s] to [%s]...",currentVpool.getLabel(),newVpool.getLabel()));
  if (isSameVirtualPool(currentVpool,newVpool,notSuppReasonBuff)) {
    return false;
  }
  if (volume.checkForRp() && VirtualPool.vPoolSpecifiesProtection(currentVpool) && !VirtualPool.vPoolSpecifiesProtection(newVpool)) {
    List<String> excluded=new ArrayList<String>();
    String[] exclude=new String[]{PROTECTION_VARRAY_SETTINGS,RP_RPO_VALUE,RP_RPO_TYPE,RP_COPY_MODE,ARRAY_INFO,DRIVE_TYPE,JOURNAL_SIZE,JOURNAL_VARRAY,JOURNAL_VPOOL,MULTI_VOLUME_CONSISTENCY,METROPOINT,STANDBY_JOURNAL_VARRAY,STANDBY_JOURNAL_VPOOL};
    excluded.addAll(Arrays.asList(exclude));
    excluded.addAll(Arrays.asList(GENERALLY_EXCLUDED));
    Map<String,Change> changes=analyzeChanges(currentVpool,newVpool,null,excluded.toArray(exclude),null);
    if (!changes.isEmpty()) {
      notSuppReasonBuff.append("These target virtual pool differences are invalid: ");
      fillInNotSupportedReasons(changes,notSuppReasonBuff);
      s_logger.info("Remove Protection change not supported, " + "these target pool differences are invalid: {}",notSuppReasonBuff.toString());
      return false;
    }
  }
 else {
    s_logger.warn("RP remove protection operation is NOT supported.");
    return false;
  }
  s_logger.info("RP remove protection operation is supported.");
  return true;
}

public static boolean isSupportedRPRemoveProtectionVirtualPoolChange ( Volume volume , VirtualPool currentVpool , VirtualPool newVpool , DbClient dbClient , StringBuffer notSuppReasonBuff ) { s_logger . info ( String . format ( "Checking isSupportedRPRemoveProtectionVirtualPoolChange from [%s] to [%s]..." , currentVpool . getLabel ( ) , newVpool . getLabel ( ) ) ) ; if ( isSameVirtualPool ( currentVpool , newVpool , notSuppReasonBuff ) ) { return false ; } if ( volume . checkForRp ( ) && VirtualPool . vPoolSpecifiesProtection ( currentVpool ) && ! VirtualPool . vPoolSpecifiesProtection ( newVpool ) ) { List < String > excluded = new ArrayList < String > ( ) ; String [ ] exclude = new String [ ] { PROTECTION_VARRAY_SETTINGS , RP_RPO_VALUE , RP_RPO_TYPE , RP_COPY_MODE , ARRAY_INFO , DRIVE_TYPE , JOURNAL_SIZE , JOURNAL_VARRAY , JOURNAL_VPOOL , MULTI_VOLUME_CONSISTENCY , METROPOINT , STANDBY_JOURNAL_VARRAY , STANDBY_JOURNAL_VPOOL } ; excluded . addAll ( Arrays . asList ( exclude ) ) ; excluded . addAll ( Arrays . asList ( GENERALLY_EXCLUDED ) ) ; Map < String , Change > changes = analyzeChanges ( currentVpool , newVpool , null , excluded . toArray ( exclude ) , null ) ; if ( ! changes . isEmpty ( ) ) { notSuppReasonBuff . append ( "These target virtual pool differences are invalid: " ) ; fillInNotSupportedReasons ( changes , notSuppReasonBuff ) ; s_logger . info ( "Remove Protection change not supported, " + "these target pool differences are invalid: {}" , notSuppReasonBuff . toString ( ) ) ; return false ; } } else { s_logger . warn ( "RP remove protection operation is NOT supported." ) ; return false ; } s_logger . info ( "RP remove protection operation is supported." ) ; return true ; }
checks to see if the remove protection operation is supported .
