def modify_volume(name, volume_mods)
      begin
        @volume.modify_volume(name, volume_mods)
      rescue => ex
        Util.log_exception(ex, caller_locations(1, 1)[0].label)
        raise ex
      end
    end
def modify_volume(name, volume_mods)
      begin
        @volume.modify_volume(name, volume_mods)
      rescue => ex
        Util.log_exception(ex, caller_locations(1, 1)[0].label)
        raise ex
      end
    end
Modifies a volume

 ==== Attributes

 * name - the name of the volume
      type name: String
 * volumeMods - Hash of volume attributes to change
      type volumeMods: Hash
       volumeMods = {
         'newName' => 'newName',           # New volume name
         'comment' => 'some comment',      # New volume comment
         'snapCPG' => 'CPG name',          # Snapshot CPG name
         'policies: {                      # Specifies VV policies
            'staleSS' => false,            # True allows stale snapshots.
            'oneHost' => true,             # True constrains volume export to
                                           # single host or host cluster
            'zeroDetect' => true,          # True requests Storage System to
                                           # scan for zeros in incoming write
                                           # data
            'system' => false,             # True special volume used by system
                                           # False is normal user volume
            'caching' => true},            # Read-only. True indicates write &
                                           # read caching & read ahead enabled
         'ssSpcAllocWarningPct' => 12,     # Snapshot space allocation warning
         'ssSpcAllocLimitPct' => 22,       # Snapshot space allocation limit
         'tpvv' => true,                   # True: Create TPVV
                                           # False: (default) Create FPVV
         'usrSpcAllocWarningPct' => 22,    # Enable user space allocation
                                           # warning
         'usrSpcAllocLimitPct' => 22,      # User space allocation limit
         'userCPG' => 'User CPG name',     # User CPG name
         'expirationHours' => 256,         # Relative time from now to expire
                                           # volume (max 43,800 hours)
         'retentionHours' => 256,          # Relative time from now to retain
                                           # volume (max 43,800 hours)
         'rmSsSpcAllocWarning' => false,   # True removes snapshot space
                                           # allocation warning.
                                           # False sets it when value > 0
         'rmUsrSpcAllocWarwaning' => false,# True removes user space
                                           #  allocation warning.
                                           # False sets it when value > 0
         'rmExpTime' => false,             # True resets expiration time to 0.
                                           # False sets it when value > 0
         'rmSsSpcAllocLimit' => false,     # True removes snapshot space
                                           # allocation limit.
                                           # False sets it when value > 0
         'rmUsrSpcAllocLimit' => false     # True removes user space
                                           # allocation limit.
                                           # False sets it when value > 0
        }

 ==== Raises:

 * Hpe3parSdk::HTTPBadRequest
        - INV_INPUT_WARN_GT_LIMIT - Allocation warning level is higher than
        the limit.
 * Hpe3parSdk::HTTPBadRequest
        - INV_INPUT_USR_ALRT_NON_TPVV - User space allocation alerts are
        valid only with a TPVV.
 * Hpe3parSdk::HTTPBadRequest
        - INV_INPUT_RETAIN_GT_EXPIRE - Retention time is greater than
        expiration time.
 * Hpe3parSdk::HTTPBadRequest
        - INV_INPUT_VV_POLICY - Invalid policy specification (for example,
        caching or system is set to true).
 * Hpe3parSdk::HTTPBadRequest
        - INV_INPUT_EXCEEDS_LENGTH - Invalid input: string length exceeds
        limit.
 * Hpe3parSdk::HTTPBadRequest
        - INV_INPUT_TIME - Invalid time specified.
 * Hpe3parSdk::HTTPForbidden
        - INV_OPERATION_VV_MODIFY_USR_CPG_TPVV - usr_cpg cannot be modified
        on a TPVV.
 * Hpe3parSdk::HTTPBadRequest
        - UNLICENSED_FEATURE - Retention time cannot be modified on a
        system without the Virtual Lock license.
 * Hpe3parSdk::HTTPForbidden
        - CPG_NOT_IN_SAME_DOMAIN - Snap CPG is not in the same domain as
        the user CPG.
 * Hpe3parSdk::HTTPForbidden
        - INV_OPERATION_VV_PEER_VOLUME - Cannot modify a peer volume.
 * Hpe3parSdk::HTTPInternalServerError
        - INT_SERV_ERR - Metadata of the VV is corrupted.
 * Hpe3parSdk::HTTPForbidden
        - INV_OPERATION_VV_SYS_VOLUME - Cannot modify retention time on a
        system volume.
 * Hpe3parSdk::HTTPForbidden
        - INV_OPERATION_VV_INTERNAL_VOLUME - Cannot modify an internal
        volume
 * Hpe3parSdk::HTTPConflict
        - INV_OPERATION_VV_VOLUME_NOT_DEFINED_ALL_NODES - Cannot modify a
        volume until the volume is defined on all volumes.
 * Hpe3parSdk::HTTPConflict
        - INVALID_OPERATION_VV_ONLINE_COPY_IN_PROGRESS - Cannot modify a
        volume when an online copy for that volume is in progress.
 * Hpe3parSdk::HTTPConflict
        - INVALID_OPERATION_VV_VOLUME_CONV_IN_PROGRESS - Cannot modify a
        volume in the middle of a conversion operation.
 * Hpe3parSdk::HTTPConflict
        - INVALID_OPERATION_VV_SNAPSPACE_NOT_MOVED_TO_CPG - Snapshot space
        of a volume needs to be moved to a CPG before the user space.
 * Hpe3parSdk::HTTPConflict
        - INV_OPERATION_VV_VOLUME_ACCOUNTING_IN_PROGRESS - The volume
        cannot be renamed until snapshot accounting has finished.
 * Hpe3parSdk::HTTPForbidden
        - INV_OPERATION_VV_ZERO_DETECT_TPVV - The zero_detect policy can be
        used only on TPVVs.
 * Hpe3parSdk::HTTPConflict
        - INV_OPERATION_VV_CPG_ON_SNAPSHOT - CPG cannot be assigned to a
        snapshot.