public boolean disableVMAX3Compression(URI blockObjectURI,StorageSystem storageSystem){
  VirtualPool virtualPool=null;
  StoragePool storagePool=null;
  Volume volume=null;
  if (URIUtil.isType(blockObjectURI,Volume.class)) {
    volume=_dbClient.queryObject(Volume.class,blockObjectURI);
  }
 else   if (URIUtil.isType(blockObjectURI,BlockSnapshot.class)) {
    BlockSnapshot snapshot=_dbClient.queryObject(BlockSnapshot.class,blockObjectURI);
    volume=_dbClient.queryObject(Volume.class,snapshot.getParent());
  }
 else   if (URIUtil.isType(blockObjectURI,BlockMirror.class)) {
    BlockMirror mirror=_dbClient.queryObject(BlockMirror.class,blockObjectURI);
    virtualPool=_dbClient.queryObject(VirtualPool.class,mirror.getVirtualPool());
    storagePool=_dbClient.queryObject(StoragePool.class,mirror.getPool());
  }
  if (volume != null) {
    virtualPool=_dbClient.queryObject(VirtualPool.class,volume.getVirtualPool());
    storagePool=_dbClient.queryObject(StoragePool.class,volume.getPool());
  }
  return (checkIfProviderSupportsCompressionOperations(storageSystem) && !virtualPool.getCompressionEnabled() && storagePool.getCompressionEnabled());
}

public boolean disableVMAX3Compression ( URI blockObjectURI , StorageSystem storageSystem ) { VirtualPool virtualPool = null ; StoragePool storagePool = null ; Volume volume = null ; if ( URIUtil . isType ( blockObjectURI , Volume . class ) ) { volume = _dbClient . queryObject ( Volume . class , blockObjectURI ) ; } else if ( URIUtil . isType ( blockObjectURI , BlockSnapshot . class ) ) { BlockSnapshot snapshot = _dbClient . queryObject ( BlockSnapshot . class , blockObjectURI ) ; volume = _dbClient . queryObject ( Volume . class , snapshot . getParent ( ) ) ; } else if ( URIUtil . isType ( blockObjectURI , BlockMirror . class ) ) { BlockMirror mirror = _dbClient . queryObject ( BlockMirror . class , blockObjectURI ) ; virtualPool = _dbClient . queryObject ( VirtualPool . class , mirror . getVirtualPool ( ) ) ; storagePool = _dbClient . queryObject ( StoragePool . class , mirror . getPool ( ) ) ; } if ( volume != null ) { virtualPool = _dbClient . queryObject ( VirtualPool . class , volume . getVirtualPool ( ) ) ; storagePool = _dbClient . queryObject ( StoragePool . class , volume . getPool ( ) ) ; } return ( checkIfProviderSupportsCompressionOperations ( storageSystem ) && ! virtualPool . getCompressionEnabled ( ) && storagePool . getCompressionEnabled ( ) ) ; }
this method is will check if the storage pool associated with the volume supports compression . if it does support compression , it will check if the associated virtual pool has compression enabled . it will recommend the user to disable compression if the virtual pool has compression disabled and the storage pool enables compression by default .
