def tune_volume(name, tune_operation, optional = nil)
      if @current_version < @min_version_with_compression && !optional.nil?
        optional.delete_if { |key, _value| key == :compression }
      end
      begin
        object_hash = @volume.tune_volume(name, tune_operation, optional)
        get_task(object_hash['taskid'])
      rescue => ex
        Util.log_exception(ex, caller_locations(1, 1)[0].label)
        raise ex
      end
    end
def tune_volume(name, tune_operation, optional = nil)
      if @current_version < @min_version_with_compression && !optional.nil?
        optional.delete_if { |key, _value| key == :compression }
      end
      begin
        object_hash = @volume.tune_volume(name, tune_operation, optional)
        get_task(object_hash['taskid'])
      rescue => ex
        Util.log_exception(ex, caller_locations(1, 1)[0].label)
        raise ex
      end
    end
Tunes a volume

 ==== Attributes

 * name - the volume name
      type name: String
 * tune_operation - Enum of tune operation - 1: Change User CPG, 2: Change snap CPG
      type dest_name: Integer
 * optional - hash of optional parameters
      type optional: hash

      optional = {
       'userCPG' => 'user_cpg',        # Specifies the new user
                                       # CPG to which the volume
                                       # will be tuned.
       'snapCPG' => 'snap_cpg',        # Specifies the snap CPG to
                                       # which the volume will be
                                       # tuned.
       'conversionOperation' => 1,     # conversion operation enum. Refer Hpe3parSdk::VolumeConversionOperation
       'keepVV' => 'new_volume',       # Name of the new volume
                                       # where the original logical disks are saved.
       'compression' => true           # Enables (true) or disables (false) compression.
                                       # You cannot compress a fully provisioned volume.
      }