ansible-collections / ibm_zos_core

Red Hat Ansible Certified Content for IBM Z
77 stars 44 forks source link

[Enhancement] [zos_backup_restore] Support - BYPASSACS, STORCLAS, NULLSTORCLAS, MGMTCLAS, NULLMGMTCLAS #1537

Open ddimatos opened 3 months ago

ddimatos commented 3 months ago

Is there an existing issue for this?

Enhancement or feature description

This is part of Epic #1180 and collaboration #1530. Consider reviewing JCL examples.

Keyword Status
BYPASSACS proposed
MGMTCLAS implemented
NULLMGMTCLAS proposed
NULLSTORCLAS proposed
STORCLAS implemented

Proposal:

  sms:
    description:
      - Specifies how System Managed Storage (SMS) interacts with the storage class
        and management class when either backup or restore operations are occurring.
      - Storage class contains performance and availability attributes related to the storage occupied by the data set.
        A data set that has a storage class assigned to it is defined as an “SMS-managed” data set.
      - Management class contains the data set attributes related to the migration and backup of the data set and the
        expiration date of the data set. A management class can be assigned only to a data set that also has a
        storage class assigned.
    type: dict
    elements: dict
    required: false
    suboptions:
      storage_class:
        description:
          - When I(operation=restore), specifies the storage class to use. The storage class will
            also be used for temporary data sets created during restore process.
          - When I(operation=backup), specifies the storage class to use for temporary data sets
            created during backup process.
          - If neither of I(sms_storage_class) or I(sms_management_class) are specified, the z/OS
            system's Automatic Class Selection (ACS) routines will be used.
          - I(storage_class) and I(disable_automatic_storage_class) are mutually exclusive; you cannot use both.
          - You must have proper RACF authorization for the specified storage class to use this option.
        type: str
        required: false
      management_class:
        description:
          - When I(operation=restore), specifies the management class to use. The management class
            will also be used for temporary data sets created during restore process.
          - When I(operation=backup), specifies the management class to use for temporary data sets
            created during backup process.
          - If neither of I(sms_storage_class) or I(sms_management_class) are specified, the z/OS
            system's Automatic Class Selection (ACS) routines will be used.
          - If ACS is not preferred, configure option I(disable_automatic_class) to disable selection.
          - You must have proper RACF authorization for the specified management class to use this option.
        type: str
        required: False
      disable_automatic_class:
        description:
          - Specifies that the automatic class selection (ACS) routines will not be
            used to determine the target data set class names for the provided list.
          - The list must contain fully or partially qualified data set names.
          - To include all selected data sets, `**` in a list.
          - You must have READ access to RACF FACILITY class profile
            `STGADMIN.ADR.RESTORE.BYPASSACS` to use this option.
        type: list
        required: false
        default: None
      disable_automatic_storage_class:
        description:
          - Specifies that automatic class selection (ACS) routines will not be used
            to determine the source data set storage class.
          - Enabling I(disable_automatic_storage_class) ensures ACS is null.
          - I(storage_class) and I(disable_automatic_storage_class) are mutually exclusive; you cannot use both.
          - The combination of I(disable_automatic_storage_class) and C(disable_automatic_class=[dsn,dsn1,...])
            ensures the selected data sets will not be SMS-managed.
        type: bool
        required: false
        default: false
      disable_automatic_management_class:
        description:
          - Specifies that automatic class selection (ACS) routines will not be used
            to determine the source data set management class.
          - Enabling I(disable_automatic_storage_class) ensures ACS is null.
          - I(management_class) and I(disable_automatic_management_class) are mutually exclusive; you cannot use both.
        type: bool
        required: false
        default: false

Examples:

Example using write, unconditional, names, disable_automatic_class and disable_automatic_storage_class.

Example - Given data sets:
sys1.ansible.one.** 
sys1.ansible.two.** 
sys1.ansible.three.** 

will result in:
sys1.ansible.new.one.** 
sys1.ansible.new.two.** (non-sms-managed)
sys1.ansible.new.three.** (non-sms-managed)

- name: Restore data sets from backup stored in the UNIX file /tmp/temp_backup.dzp.
        Use option 'names' to match and replace data sets while ensuring data set
        'sys1.ansible.new.three' and others matching '*.*.new.two.**" will not be sms-managed.
  zos_backup_restore:
    operation: restore
    backup_name: /tmp/temp_backup.dzp
    output:
      write: unconditional
      names:
        - old: "*.*.one.**"
          new: "*.*.new.one.**"
        - old: "*.*.two.**"
          new: "*.*.new.two.**"
        - old: "sys1.ansible.three"
          new: "sys1.ansible.new.three"
    sms:
      disable_automatic_class:
        - "sys1.ansible.new.three"
        - "*.*.*.two.**"
      disable_automatic_storage_class: true

Ansible module

zos_backup_restore