+
    i*                     Z  a  R t+0 t R t^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RI	H
t
Ht ^ RIt^ RIHtHtHtHtHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHtHtHt ^ R
IHt RtR.t Rt!RRR].R]RR./t"] ^ k ]PF                  ! ]$4      t% ! R R4      t&R R lt'R t(]RRR3R R llt)R R lt*R# )z+Puppet: Install, configure and start puppetN)suppress)StringIO)ListUnion)helperssubp
temp_utils
url_helperutil)Cloud)Config)
MetaSchema)ALL_DISTROSDistroPackageInstallerError)PER_INSTANCEzKhttps://raw.githubusercontent.com/puppetlabs/install-puppet/main/install.shz--testpuppetid	cc_puppetdistros	frequencyactivate_by_schema_keysc                   &   a  ] tR t^)t o R tRtV tR# )PuppetConstantsc                    Wn         W n        \        P                  P	                  VR 4      V n        \        P                  P	                  V P
                  R4      V n        W0n        R# )certszca.pemN)	conf_pathssl_dirospathjoinssl_cert_dirssl_cert_pathcsr_attributes_path)selfpuppet_conf_filepuppet_ssl_dirr#   s   &&&&</usr/lib/python3/dist-packages/cloudinit/config/cc_puppet.py__init__PuppetConstants.__init__*   sH     *%GGLLAWW\\$*;*;XF#6     )r   r#   r!   r"   r   N)__name__
__module____qualname____firstlineno__r(   __static_attributes____classdictcell__)__classdict__s   @r'   r   r   )   s     
7 
7r*   r   c                0    V ^8  d   QhR\         R\        /# )   cloudaction)r   str)formats   "r'   __annotate__r8   7   s     
 
5 
# 
r*   c                   Rp\          F$  p V P                  P                  W R24       Tp M	  V'       g-   \
        P                  RVRP                  \         4      4       R# R#   \        P                   d     Kv  i ; i)z8Attempts to perform action on one of the puppet services z.servicez0Could not '%s' any of the following services: %s, N)PUPPET_PACKAGE_NAMESdistromanage_servicer   ProcessExecutionErrorLOGwarningr    )r4   r5   service_managedpuppet_names   &&  r'   _manage_puppet_servicesrD   7   sz    O+	LL''-x0HI)O	 , >II*+	
  )) 		s    A''B ?B c                Z    \         P                   ! V RRV.4      w  r#VP                  4       # )zGet the config value for a given setting using `puppet config print`
:param puppet_bin: path to puppet binary
:param setting: setting to query
configprint)r   rstrip)
puppet_binsettingout_s   &&  r'   get_config_valuerM   I   s)    
 YY
Hgw?@FC::<r*   Tc                $    V ^8  d   QhR\         /# )r3   r=   )r   )r7   s   "r'   r8   r8   R   s     !7 !7!7r*   c                   . pVe   RV.pVe   VRV.,          pV'       d   VR.,          p\         P                  ! V^R7      P                  p\        P                  ! V P                  4       RR7      ;_uu_ 4       p\        P                  P                  VR4      p\        P                  ! WR	R
7       \        P                  ! V.V,           RR7      uuRRR4       #   + '       g   i     R# ; i)a{  Install puppet-agent from the puppetlabs repositories using the one-shot
shell script

:param distro: Instance of Distro
:param url: URL from where to download the install script
:param version: version to install, blank defaults to latest
:param collection: collection to install, blank defaults to latest
:param cleanup: whether to purge the puppetlabs repo after installation
Nz-vz-cz	--cleanup)urlretriesT)dir	needs_exezpuppet-installi  )modeFcapture)r	   readurlcontentsr   tempdirget_tmp_exec_pathr   r   r    r
   
write_filer   )	r=   rP   version
collectioncleanupargscontenttmpdtmpfs	   &&&&&    r'   install_puppet_aiorc   R   s      Dgz""   S!4==G 
		$$&$
 
	ww||D"23E2yy$$6
 
 
 
s   <ACC0	c          
      L    V ^8  d   QhR\         R\        R\        R\        RR/# )r3   namecfgr4   r_   returnN)r6   r   r   list)r7   s   "r'   r8   r8   v   s6     r0 r0 r06 r0% r0t r0 r0r*   c                    R V9  d   \         P                  RV 4       R# VR ,          p\        P                  ! VRR4      p\        P                  ! VRR4      p\        P                  ! VRR4      p\        P                  ! VRR4      p\        P                  ! VR	R4      p	\        P                  ! VR
RR7      p
\        P                  ! VRRR7      p\        P                  ! VR\
        R7      pVR8X  d   RpRpRpMR pR pRp\        P                  ! VRV4      pV'       g    V'       d   \         P                  R4       EM%V'       Ed   \         P                  RV'       d   TMRV4       VR8X  d   Vf   \         FQ  p\        \        4      ;_uu_ 4        V'       d   VV..MV.pVP                  P                  V4       Tp RRR4        M	  V'       g*   \         P                  RRP                  \        4      4       McV'       d   VV..MV.pVP                  P                  V4       M7VR8X  d   \        VP                  WWy4       M\         P                  RV4       Rp
\        P                  ! VR\        VR4      4      p\        P                  ! VR\        VR4      4      p\        P                  ! VR\        VR4      4      p\        VVV4      pR V9   Edw   \        P                   ! VP"                  4      p\$        P&                  ! 4       pVP)                  4        Uu. uF  pVP+                  4       NK  	  ppR!P                  V4      pVP-                  \/        V4      VP"                  R"7       VR ,          P1                  4        EF  w  ppVR#8X  d   \        P2                  ! VP4                  R$4       \        P6                  ! VP4                  VR4       \        P2                  ! VP8                  4       \        P6                  ! VP8                  VR4       \        P:                  ! VP<                  V4       \        P6                  ! VP<                  VR4       MVP1                  4        Fu  w  ppVR%8X  dV   VP?                  R&\@        PB                  ! 4       4      pVP?                  R'VPE                  4       4      pVPG                  4       pVPI                  VVV4       Kw  	  \        PJ                  ! VP"                  R(VP"                  ,          4       \        P:                  ! VP"                  VPM                  4       4       EK  	  RV9   d?   \        P:                  ! VPN                  \P        PR                  ! VR,          RR)7      4       V'       d   \U        VR*4       V
'       d   \         P                  R+4       VR,.pR-V9   d   VR-,          p \W        V \X        \Z        34      '       d   VP]                  V 4       M\W        V \^        4      '       d!   VP]                  V Pa                  4       4       MJ\         P                  R.\c        V 4      4       VP]                  \d        4       MVP]                  \d        4       \f        Pf                  ! VRR/7       V'       d   \U        VR04       R# R#   + '       g   i     EKU  ; iu upi )1r   z9Skipping module named %s, no 'puppet' configuration foundNinstallTr\   r]   install_typepackagesr^   execF)defaultstart_serviceaio_install_urlaiorootz/opt/puppetlabs/bin/puppetpuppet-agentpackage_namez@Puppet install set to false but version supplied, doing nothing.z'Attempting to install puppet %s from %slatestz+No installable puppet package in any of: %sr;   z Unknown puppet install type '%s'	conf_filerF   r   ssldirr#   csr_attributesconf
)sourceca_certi  certnamez%fz%iz%s.old)default_flow_styleenablezRunning puppet-agentagent	exec_argszOUnknown type %s provided for puppet 'exec_args' expected list, tuple, or stringrU   start)4r@   debugr
   get_cfg_option_boolget_cfg_option_strAIO_INSTALL_URLrA   r<   r   r   r=   install_packagesr    rc   rM   r   load_text_filer   r   DefaultingConfigParser
splitlineslstrip	read_filer   items
ensure_dirr   chownbynamer!   r[   r"   replacesocketgetfqdnget_instance_idlowersetrename	stringifyr#   yamldumprD   
isinstancerh   tupleextendr6   splittypePUPPET_AGENT_DEFAULT_ARGSr   )!re   rf   r4   r_   
puppet_cfgrj   r\   r]   rk   r^   runstart_puppetdrp   puppet_userrI   puppet_packagert   rC   
to_installrv   r   r#   p_constantsrX   puppet_configicleaned_linescleaned_contentscfg_nameovcmdcmd_argss!   &&&&                             r'   handler   v   s   s		G	
 	XJ&&z9dCG%%j)TBG((\4HJ**NJL &&z9dCG

"
":vu
EC,,OTM --%O
 u1
'
**NNL wN	
 
		5GH	
 :%##7K!"788  ' *734"- #
 55jA'2 98 $8 $KKE		"67 29lG,-|n  --j9U"o
 KK:LIC''K!1*h!GI %%I/
HEG 11%56 ")W6IJK &&{'<'<=668 .6-@-@-BC-B-BC99]3%&{/D/D 	  	
 (/557MHc 9$  3 3U;  !4!4k6J 8 89  !9!9;O 9 93?  --{F  IIKDAqJ IIdFNN,<=IIdE,A,A,CDGGI!%%h15 ( KK%%x;3H3H'I OOK11=3J3J3LMC 8F :%++IIj!12uM	

 x0 		()7#*$!+.H(T5M22

8$Hc**

8>>+,! N	 

45JJ01		#u%w/ w 988f Ds   /[*[[c                @    V ^8  d   Qh/ ^ \         9   d
   \        ;R&   # )r3   meta)__conditional_annotations__r   )r7   s   "r'   r8   r8   	   s     1 1, j - 2r*   )rs   r   ),r   __doc__loggingr   r   
contextlibr   ior   typingr   r   r   	cloudinitr   r   r   r	   r
   cloudinit.cloudr   cloudinit.configr   cloudinit.config.schemar   cloudinit.distrosr   r   r   cloudinit.settingsr   r   r   r<   r   	getLoggerr+   r@   r   rD   rM   rc   r   r8   )r   s   @r'   <module>r      s    2  	      A A ! # . H H +_%J 1  	+}z	  !7 7
$ 	!7Hr0r*   