
    Vh                     R    d dl mZmZmZ eZd dlZd dlmZm	Z	 dgZ
d Zd Zd Zd Zy)	    )absolute_importdivisionprint_functionN)	CmdRunnercmd_runner_fmtz/opt/puppetlabs/binc                  p    t        j                         dk(  ryt         j                  j                  d      S )Nr   z/etc/facter/facts.dz~/.facter/facts.d)osgetuidpath
expanduser     q/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/community/general/plugins/module_utils/puppet.pyget_facter_dirr      s)    	yy{a$ww!!"566r   c                 0    | j                  ddt              S )NpuppetF)get_bin_path_PUPPET_PATH_PREFIX)modules    r   _puppet_cmdr      s    x0CDDr   c                 P   t        | dt        t        t        j                  g d            d      } |d      j                         \  }}}t        j                  j                  |j                               r| j                  dd	       y |d
k7  r| j                  d       y y )Nr   )configprintagent_disabled_lockfile)_agent_disabledF)commandpath_prefixarg_formatscheck_rcr   z*Puppet agent is administratively disabled.T)msgdisabledr   z+Puppet agent state could not be determined.)r    )r   r   dictr   as_fixedrunr	   r   existsstrip	fail_json)r   runnerrcstdoutstderrs        r   ensure_agent_enabledr,      s    '*334bc
 F   12668B	ww~~flln%< 	 	 
q= 	 	? 
r   c                      fd} fd}ddgg dd}t         j                  d        }t          |       t        t	        d1i dt        j
                  g d	      d
t        j
                  ddg      dt        j                  d      dt        j                  d      dt        j                  d      dt        j                  d      dt        j                  d       dt        j                  d       dt        j                  d      dt        j                  |      dt        j                  ddd       d!t        j                  |g "      d#t        j                  d$      d%t        j                  |      d&t        j                  d'      d(t        j                  d)      d*t        j                  d+      d,t        j                  d-      d. j                  d/   0      }|S )2Nc                  t    j                  dd      } | rdddj                  d   t              g}|S dg}|S )NtimeoutFz-s9r   )r   paramsr   )	_tout_cmdcmdr   s     r   _prepare_base_cmdz(puppet_runner.<locals>._prepare_base_cmd9   sK    ''	59	dCy)A;vCVWC 
 *C
r   c                 ,    j                   s| rdgS dgS )Nz--noopz	--no-noop)
check_mode)vr   s    r   	noop_funcz puppet_runner.<locals>.noop_funcA   s    #..!zF+Fr   	--logdestsyslog)r9   r:   r9   console)r:   allc                     | rd| gS |gS )Nz	--executer   )executemanifests     r   execute_funcz#puppet_runner.<locals>.execute_funcI   s    )):r   _agent_fixed)	agentz	--onetimez--no-daemonizez--no-usecacheonfailurez
--no-splay--detailed-exitcodes	--verbosez--color0_apply_fixedapplyrC   puppetmasterz--server	show_diffz--show-diffconfdirz	--confdirenvironmentz--environmenttagsc                 (    ddj                  |       gS )Nz--tags,joinr7   s    r   <lambda>zpuppet_runner.<locals>.<lambda>^   s    8SXXa[2I r   	skip_tagsc                 (    ddj                  |       gS )Nz--skip_tagsrN   rO   rQ   s    r   rR   zpuppet_runner.<locals>.<lambda>_   s    sxxPQ{7S r   certnamez
--certnamenoopuse_srv_recordsz--usr_srv_recordsz--no-usr_srv_recordsT)ignore_nonelogdest)default
modulepathz--modulepath_execute	summarizez--summarizewaitforlockz--waitforlockdebugz--debugverboserD   Fenvironment_lang)r   r   r   r   
force_langr   )r   unpack_argsr   r   r"   r#   
as_opt_valas_boolas_funcas_opt_eq_valas_mapr1   )r   r4   r8   _logdest_mapr@   r(   s   `     r   puppet_runnerrj   4   s   
G )>L
    !#' 
'00 2 

 (00';Q1RS
 (22:>
 %,,];
 #--k:
 '11/B
  ''(IJ
 %,,-ST
 $11,?
  ''	2
 +223FH^lpq
 #)),C
  &33NC!
" $++L9#
$ %,,];%
& '11/B'
( !((3)
* #**;7+
. ==!349F< Mr   )
__future__r   r   r   type__metaclass__r	   Eansible_collections.community.general.plugins.module_utils.cmd_runnerr   r   r   r   r   r,   rj   r   r   r   <module>ro      s;    A @ 
 k -- 7E?*:r   