
    Vh"                         d dl mZmZmZ eZd dlmZmZ d dl	m
Z
mZ d dlmZ d dlmZ d dlmZmZ d dlmZmZ 	 d dlmZ d	Z e       Zd Z G d de      Zy# e$ r d
ZY w xY w)    )absolute_importdivisionprint_function)SequenceMapping)	iteritemsstring_types)	to_native)Display)Sopsget_sops_argument_spec)ActionModuleBaseArgumentSpec)trust_as_templateTFc                 H    t         rt        | t              rt        |       S | S N)HAS_DATATAGGING
isinstancestr_trust_as_template)values    k/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/community/sops/plugins/action/load_vars.py
_make_safer      s    :eS1!%((L    c                   .    e Zd Zd Zd Zed        Zd Zy)ActionModulec                    fd}t        j                  |t        |      }| j                  j	                  ||d      }|s
t               }t        |t
              s#t        dj                  t        |                  |S )Nc                 :    j                   j                  |       S r   )paramsget)argument_namemodules    r   get_option_valuez,ActionModule._load.<locals>.get_option_value#   s    ==$$]33r   )displayr#   F)	file_nameshow_contentz'{0} must be stored as a dictionary/hash)
r   decryptr$   _loaderloaddictr   	Exceptionformatr
   )selffilenamer"   r#   outputdatas     `   r   _loadzActionModule._load"   sn    	4 hJZ[||  8% P6D$%ELLYW_M`abbr   c                 2    t        |t              r$ j                  j                  t	        |            S t        |t
              r|D cg c]  } j                  |       c}S t        |t              rt         fdt        |      D              S |S c c}w )Nc              3   J   K   | ]  \  }}|j                  |      f  y wr   )	_evaluate).0kvr-   s      r   	<genexpr>z)ActionModule._evaluate.<locals>.<genexpr>7   s#     L41aDNN1-.Ls    #)
r   r	   _templartemplater   r   r4   r   r*   r   )r-   r   r7   s   `  r   r4   zActionModule._evaluate0   su    e\*==))*U*;<<eX&/45!DNN1%55eW%L9U;KLLL 6s   
Bc                      t        t        t        dd      t        d      t        ddddg      	      
      } | j                  j                  t	                      | i fS )NpathT)typerequiredr   )r=   ignoreevaluate-on-load)r=   defaultchoices)filenameexpressionsargument_spec)r   r*   rG   updater   rF   s    r   setup_modulezActionModule.setup_module:   s]    $v5u% eXRdGef
 	##**+A+CDb  r   c                    t               }g }	 | j                  d|j                  d         }|j                  | j	                  ||             |j                  |       |j                  d   }||}nt               }|||<   |j                  d   }|dk(  r| j                  |      }|j                  ||d       y # t        $ r%}|j                  t        |             Y d }~d }~ww xY w)	NvarsrC   )msgrD   rE   r@   T)ansible_included_var_filesansible_facts_ansible_no_log)r*   _find_needler   rH   r1   appendr+   	fail_jsonr
   r4   	exit_json)	r-   r"   r0   filesr.   erD   r   rE   s	            r   
run_modulezActionModule.run_moduleF   s    v	/((v1FGHKK

8V45LL" }}V$<EFEE$KmmM2,,NN5)E',  	 	
  	/1..	/s   AB< <	C*C%%C*N)__name__
__module____qualname__r1   r4   staticmethodrI   rV    r   r   r   r       s%     	! 	!
r   r   N)
__future__r   r   r   r=   __metaclass__/ansible.module_utils.common._collections_compatr   r   ansible.module_utils.sixr   r	   +ansible.module_utils.common.text.convertersr
   ansible.utils.displayr   <ansible_collections.community.sops.plugins.module_utils.sopsr   r   Eansible_collections.community.sops.plugins.plugin_utils.action_moduler   r   ansible.templater   r   r   ImportErrorr$   r   r   r[   r   r   <module>rf      sc   
 C B M < A ) e pHO )?
# ?
  Os   A A"!A"