
    Vh&                        d dl mZ d dlZd dlZd dlZd dlZd dlmZmZm	Z	m
Z
mZmZ d dlmZ d dlmZ d dlmZmZmZmZ d dlmZmZmZ d dlmZ d d	lmZ d d
lm Z  d dl!m"Z"m#Z#  G d de       Z$y)    )annotationsN)BLOCK_END_STRINGBLOCK_START_STRINGCOMMENT_END_STRINGCOMMENT_START_STRINGVARIABLE_END_STRINGVARIABLE_START_STRING)	constants)ensure_type)AnsibleErrorAnsibleFileNotFoundAnsibleActionAnsibleActionFail)to_bytesto_text	to_native)boolean)string_types)
ActionBase)generate_ansible_template_varsAnsibleEnvironmentc                  (     e Zd ZdZdZd fd	Z xZS )ActionModuleT
c           
        |
t               }t        t        |   ||      }~dD ]  }|| j                  j
                  v st        | j                  j
                  |   d      }|*t        |t              st        |dt        |      d      || j                  j
                  |<    	 t        | j                  j
                  j                  dd      d      }t        | j                  j
                  j                  d	d
      d      }t        | j                  j
                  j                  dd      d      }| j                  j
                  j                  dd      }
| j                  j
                  j                  dd      }| j                  j
                  j                  dd      }| j                  j
                  j                  d| j                        }| j                  j
                  j                  dt               }| j                  j
                  j                  dt"              }| j                  j
                  j                  dt$              }| j                  j
                  j                  dt&              }| j                  j
                  j                  dt(              }| j                  j
                  j                  dt*              }| j                  j
                  j                  dd      xs d}g d}g d}||v r||j-                  |         }	 |t        d      |
|t        d      ||vrt        d      	 | j/                  d|
      }
| j                  j
                  j                  dd      }|dk(  r5d t5        j6                  t9        j4                  |
      j:                        z  }	 | j<                  j?                  |
      }tC        |d#$      }	 tE        |d%      5 }	 t3        |jG                         d#$      }	 ddd       |j                  d'g       }|jK                  | j<                  jL                  t8        jN                  jQ                  |
      g       g }|D ]B  }|jS                  t8        jN                  jU                  |d             |jS                  |       D |}|jW                         }|jY                  t[        | j                  j
                  j                  dd      |
|             | j\                  j_                  t`        |||(      } t        ||||||||)      }!| jc                  d
d|!*      }"	 | j<                  jk                  |       | j                  jW                         }#||#j
                  d<   d,D ]  }$|#j
                  jm                  |$d         to        jp                  tr        jt                  -      }%	 t8        jN                  jU                  |%t8        jN                  jw                  |
            }&tE        tC        |&d#$      d.      5 }|jy                  tC        |"|d#/             ddd       |#j
                  jY                  t        |&||0             | jz                  j|                  j                  d1|#| j~                  | j                  | j<                  | j\                  | jz                  2      }'|jY                  |'j                  |3             t        j                  tC        |%d#$             	 | j                  | j~                  j                  j                         |S # t        $ r}	t        t        |	            d}	~	ww xY w# t0        $ r}	t        t3        |	            d}	~	ww xY w# t@        $ r}	t        d!|
d"t3        |	            d}	~	ww xY w# tH        $ r t        d&      w xY w# 1 sw Y   xY w# td        $ r  tf        $ r1}	t        t        |	      jh                  d+t3        |	            d}	~	ww xY w# | j<                  jk                  |       w xY w# 1 sw Y   xY w# t        j                  tC        |%d#$             w xY w# td        $ r&}	|jY                  |	j                         Y d}	~	d}	~	ww xY w# | j                  | j~                  j                  j                         w xY w)4z! handler for template operations N)
srcdeststatenewline_sequencevariable_start_stringvariable_end_stringblock_start_stringblock_end_stringcomment_start_stringcomment_end_stringstringz% is expected to be a string, but got z insteadfollowF)stricttrim_blocksTlstrip_blocksr   r   r   r   r    r!   r"   r#   r$   r%   output_encodingzutf-8)z\nz\rz\r\n)r   z
z)'state' cannot be specified on a templatezsrc and dest are requiredz/newline_sequence needs to be one of: 
,  or 
	templatesmodepreservez0%03ozcould not find src=z, surrogate_or_strict)errorsrbz+Template source files must be utf-8 encodedansible_search_path)environment_class
searchpathr   available_variables)r"   r#   r    r!   r$   r%   r)   r*   )preserve_trailing_newlinesescape_backslashes	overridesz: )
r   r"   r#   r    r!   r$   r%   r)   r*   r+   )dirwb)encodingr1   )r   r   r'   zansible.legacy.copy)task
connectionplay_contextloadertemplarshared_loader_obj)	task_vars)Gdictsuperr   run_taskargsr   
isinstancer   r   typer   get	TypeErrorr   DEFAULT_NEWLINE_SEQUENCEr	   r   r   r   r   r   index_find_needler   r   statS_IMODEosst_mode_loaderget_real_filer   r   openreadUnicodeErrorextend_basedirpathdirnameappendjoincopyupdater   _templarcopy_with_new_envr   do_templater   	Exception__name__cleanup_tmp_filepoptempfilemkdtempCDEFAULT_LOCAL_TMPbasenamewrite_shared_loader_objaction_loader_connection_play_contextshutilrmtreeresult_remove_tmp_path_shelltmpdir))selftmprC   rt   s_typevaluer'   r)   r*   esourcer   r   r   r    r!   r"   r#   r$   r%   r+   wrong_sequencesallowed_sequencesr.   
tmp_sourceb_tmp_sourceftemplate_datar5   newsearchpathp	temp_varsrA   r9   	resultantnew_taskremovelocal_tempdirresult_filecopy_action	__class__s)                                           O/home/dcms/DCMS/lib/python3.12/site-packages/ansible/plugins/action/template.pyrF   zActionModule.run$   s    I|T.sI>Y 	0F(#DJJOOF$;XF$Z|-L+cikopukv,wxx*/

'	0	2TZZ__005A%PF!$**//"5"5mT"JSXYK#DJJOO$7$7$OX]^M
 $$UD1zz""640

##GT2::??../A4C`C`a $

 3 34KMb c"jjoo112GI\]!ZZ__001EGYZ::??../ACST#zz223IK_`!ZZ__001EGYZ**//--.?ITW20 .01F1FGW1XYs	B '(STT4<'(CDD!)::'(]^^8!..{FCF ::??&&vt4Dz!bggfo.E.E!FF\!\\77?
 $J7LML0<,- __(/AV(W_ ']]+@"E
!!4<<#8#8"''//&:Q"RS !## ,A!((a)EF!((+, +
 &NN,	   !?

@S@STY[_@`bhjn!op --99L^EOK[NW : Y !'9%5*?(;)='9 +"/		 $//Z^sx  EN/  O	 --l;zz(H %)HMM&!| 0!!&$/0 %,,1D1DEMU ggll="'':J:J6:RS(;7LMtT iXYGGHYQfghi $$'!% #55CCGGH]MUSWScScUYUgUgOS||PTP]P]Z^ZqZq H s koo	oBCh}=RST
 !!$"2"2"9"9"@"@AY  	2#IaL11	2D $ 8+GAJ778 ' \'vwWXz(Z[[\ ( _/0]^^__ _T !  S'DG4D4Dgaj(QRRS --l; i i( h}=RST 	$MM!((##	$ !!$"2"2"9"9"@"@As   ,B] (+b ^ &A b ^' "b 0_7 <_*>_E_7 Bb +Aa* ?aB.a*  b +c 	]?&]::]?	^$^^$$b '	_0_

_b _''_**_4/_7 7`:	,`55`::`= =ab a'"a* *"bb 	b>b93c 9b>>c 1c2)NN)re   
__module____qualname__TRANSFERS_FILESrM   rF   __classcell__)r   s   @r   r   r      s    O#d d    r   )%
__future__r   rR   rr   rP   rh   jinja2.defaultsr   r   r   r   r   r	   ansibler
   rj   ansible.config.managerr   ansible.errorsr   r   r   r   +ansible.module_utils.common.text.convertersr   r   r   )ansible.module_utils.parsing.convert_boolr   ansible.module_utils.sixr   ansible.plugins.actionr   ansible.templater   r   r    r   r   <module>r      sN   
 # 	     # . ^ ^ T T = 1 - Oi: ir   