
    Vh                         d dl mZmZmZ eZdZdZdZd dl	Z	d dl
mZmZ d dlmZ  G d d	e      Zd
 Zedk(  r e        yy)    )absolute_importdivisionprint_functiona  
author: Kairo Araujo (@kairoaraujo)
module: mksysb
short_description: Generates AIX mksysb rootvg backups
description:
  - This module manages a basic AIX mksysb (image) of rootvg.
seealso:
  - name: C(mksysb) command manual page
    description: Manual page for the command.
    link: https://www.ibm.com/docs/en/aix/7.3?topic=m-mksysb-command

extends_documentation_fragment:
  - community.general.attributes
attributes:
  check_mode:
    support: full
  diff_mode:
    support: none
options:
  backup_crypt_files:
    description:
      - Backup encrypted files.
    type: bool
    default: true
  backup_dmapi_fs:
    description:
      - Back up DMAPI filesystem files.
    type: bool
    default: true
  create_map_files:
    description:
      - Creates a new MAP files.
    type: bool
    default: false
  exclude_files:
    description:
      - Excludes files using C(/etc/rootvg.exclude).
    type: bool
    default: false
  exclude_wpar_files:
    description:
      - Excludes WPAR files.
    type: bool
    default: false
  extended_attrs:
    description:
      - Backup extended attributes.
    type: bool
    default: true
  name:
    type: str
    description:
      - Backup name.
    required: true
  new_image_data:
    description:
      - Creates a new file data.
    type: bool
    default: true
  software_packing:
    description:
      - Exclude files from packing option listed in C(/etc/exclude_packing.rootvg).
    type: bool
    default: false
  storage_path:
    type: str
    description:
      - Storage path where the mksysb will stored.
    required: true
  use_snapshot:
    description:
      - Creates backup using snapshots.
    type: bool
    default: false
z
- name: Running a backup image mksysb
  community.general.mksysb:
    name: myserver
    storage_path: /repository/images
    exclude_files: true
    exclude_wpar_files: true
z
changed:
  description: Return changed for mksysb actions as true or false.
  returned: always
  type: bool
msg:
  description: Return message regarding the action.
  returned: always
  type: str
N)	CmdRunnercmd_runner_fmt)ModuleHelperc                      e Zd Z e e edd       edd       edd       edd       edd       edd       edd       edd       edd       edd       edd            d      Z e ej                  d	       ej                  d
       ej                  d       ej                  d       ej                  d       ej                  d       ej                  d       ej                  d       ej                  d       ej                   ej                  d             
      Z
dZd Zd Zy)MkSysBboolT)typedefaultFstr)r   required)backup_crypt_filesbackup_dmapi_fscreate_map_filesexclude_filesexclude_wpar_filesextended_attrsnamenew_image_datasoftware_packingstorage_pathuse_snapshot)argument_specsupports_check_modez-mz-Tz-ez-Gz-iz-pz-az-Zz-Ac                     | d|gS )N/ )pns     l/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/community/general/plugins/modules/mksysb.py<lambda>zMkSysB.<lambda>   s    abdeVfUg     )
r   r   r   r   r   r   r   r   r   combined_pathc                     t         j                  j                  | j                  j                        s)| j                  d| j                  j                  z         y y )NzStorage path %s is not valid.)ospathisdirvarsr   do_raise)selfs    r"   __init_module__zMkSysB.__init_module__   s=    ww}}TYY334MM9DII<R<RRS 5r$   c                      fd}t         j                  ddg j                        } |g d|d      5 }|j                   j                  j
                   j                  j                  g        j                  dk\  r|j                   j                  _        d d d        d _	        y # 1 sw Y   d _	        y xY w)	Nc                 R    | dk7  r!j                  dj                  |             y y )Nr   zmksysb failed: {0})r+   format)rcouterrr,   s      r"   processzMkSysB.__run__.<locals>.process   s'    Qw299#>? r$   mksysbz-X)
r   r   r   r   r   r   r   r   r   r%   T)output_processcheck_mode_skip)r%      )
r   modulecommand_args_formatsrunr*   r   r   	verbosityrun_infochanged)r,   r4   runnerctxs   `   r"   __run__zMkSysB.__run__   s    	@ KKt%%

  s#*DB 	2EHGG499#9#9499>>"JGK~~"%(\\		"	2 	2 s   A'B..B>N)__name__
__module____qualname__dictr9   r   as_boolas_bool_notas_funcunpack_argsr:   use_old_vardictr-   rA   r   r$   r"   r
   r
   s   sU   #> fd;!vu=FE:#?VT:540VT:!vu=548659
 !F   ///5+^++D1,n,,T21>11$7-~--d3333D9-~--d35>55d;...t4,n,,-G^-G-GHg-hi OTr$   r
   c                  ,    t         j                          y )N)r
   executer   r$   r"   mainrM      s    
NNr$   __main__)
__future__r   r   r   r   __metaclass__DOCUMENTATIONEXAMPLESRETURNr'   Eansible_collections.community.general.plugins.module_utils.cmd_runnerr   r   Hansible_collections.community.general.plugins.module_utils.module_helperr   r
   rM   rB   r   r$   r"   <module>rV      s[    A @JX	
 
 k a4\ 4n zF r$   