+
    ˜qgj¿4  ã                   ó  a € R@ t80 t R t^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH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 ^ RIHt R	tRAtRBtRR
RR/tRt^tRtRt RRRRRRR]RRRRR] RR
RRRRR R!R"R/t!]"! R .4      t#]"! . RCO4      t$]"! . ]!PK                  4       O]#O]$OR#NR$NR%NR&NR'N4      t&R(t'R)t(RDt)]PT                  ! ]+4      t,R*R+R,R-.R.]R/R0./t-] ^ k R1 t.R2 t/R3 t0R4 R5 lt1R6 t2R7 R8 lt3RER9 R: llt4R; R< lt5R= R> lt6R? t7R# )Fz7Chef: module that configures, starts and installs chef.N)ÚList)ÚsubpÚ
temp_utilsÚ	templaterÚ
url_helperÚutil©ÚCloud)ÚConfig)Ú
MetaSchema©ÚDistro)Ú
PER_ALWAYSú1.8ú/var/chef/cacheú/var/chef/backupz/var/cache/chefz/var/backups/chefz#https://www.chef.io/chef/install.shz/etc/chef/validation.pemz/etc/chef/firstboot.jsonÚssl_verify_modez:verify_noneÚ	log_levelz:infoÚlog_locationz/var/log/chef/client.logÚvalidation_keyÚvalidation_certÚ
client_keyz/etc/chef/client.pemÚjson_attribsÚfile_cache_pathÚfile_backup_pathÚpid_filez/var/run/chef/client.pidÚ	show_timeTÚencrypted_data_bag_secretÚ
server_urlÚ	node_nameÚenvironmentÚvalidation_nameÚchef_licensez/etc/chef/client.rbz/usr/bin/chef-clientÚidÚcc_chefÚdistrosÚallÚ	frequencyÚactivate_by_schema_keysÚchefc                 óÖ   € \         P                  ! V R RR7      pV'       dH   \        P                  P	                  \
        4      '       d   \        P                  ! \
        4       R# R# R# )Údelete_validation_post_execF©ÚdefaultN)r   Úget_cfg_option_boolÚosÚpathÚisfileÚCHEF_VALIDATION_PEM_PATHÚunlink)Úchef_cfgÚ
delete_pems   & Ú:/usr/lib/python3/dist-packages/cloudinit/config/cc_chef.pyÚpost_run_chefr7   g   sF   € Ü×)Ò)ØÐ/¸ô€J÷ ”b—g‘g—n‘nÔ%=×>Ò>Ü
�	Š	Ô*Ö+ñ ?�zó    c                 ó  € \         P                  4       pVP                  4        Fo  w  r4V\        9  d   \        P                  R V4       K(  Vf   RW#&   K2  V\        9   d   \        P                  ! W4      W#&   KW  \        P                  ! W4      W#&   Kq  	  VP                  R\        P                  ! 4       R\        P                  ! VRV R7      R\        P                  ! VRRR7      RVR,          RVR,          /4       V# )	z'Skipping unknown chef template key '%s'NÚgenerated_byr   r,   r    Ú_defaultr   r!   )ÚCHEF_RB_TPL_DEFAULTSÚcopyÚitemsÚCHEF_RB_TPL_KEYSÚLOGÚdebugÚCHEF_RB_TPL_BOOL_KEYSr   r.   Úget_cfg_option_strÚupdateÚmake_header)Úiidr4   ÚparamsÚkÚvs   &&   r6   Úget_template_paramsrJ   o   sê   € Ü!×&Ñ&Ó(€Fð —‘Ö ‰ˆØÔ$Ô$Ü�I‰IÐ?ÀÔCÙØŠ9ØˆF‹Ið Ô)Ô)Ü ×4Ò4°XÓA�“	ä ×3Ò3°HÓ@�“	ñ !ð ‡M�MàœD×,Ò,Ó.Øœ×0Ò0Ø˜+¨sôð œ4×2Ò2Ø˜-°ôð ˜( <Õ0Ø˜xÐ(9Õ:ð	
ôð €Mr8   c            	     óŒ  € \         P                  4        EF*  w  r\        P                  P	                  V 4      '       g   K-  \        P
                  ! V 4       Fã  p\        P                  P	                  \        P                  P                  W4      4      '       d7   \        P                  R\        P                  P                  W4      V4       K{  \        P                  R\        P                  P                  W4      V4       \        P                  ! \        P                  P                  W4      V4       Kå  	  EK-  	  R# )zEMigrate legacy chef backup and cache directories to new config paths.z4Ignoring migration of %s. File already exists in %s.zMoving %s to %s.N)ÚCHEF_DIR_MIGRATIONr>   r/   r0   ÚexistsÚlistdirÚjoinr@   rA   ÚshutilÚmove)Úold_dirÚmigrated_dirÚfilenames      r6   Úmigrate_chef_config_dirsrU   ’   sÄ   € ä!3×!9Ñ!9×!;ÑˆÜ�7‰7�>‰>˜'×"Ô"ÜŸJšJ wÖ/�Ü—7‘7—>‘>¤"§'¡'§,¡,¨|Ó"F×GÒGÜ—I‘IØNÜŸ™Ÿ™ WÓ7Ø$ôñ
 Ü—	‘	Ø&Ü—G‘G—L‘L Ó3Ø ôô
 —’œBŸG™GŸL™L¨Ó;¸\ÖJô 0ó "<r8   c          
      óL   € V ^8„  d   QhR\         R\        R\        R\        RR/# )é   ÚnameÚcfgÚcloudÚargsÚreturnN)Ústrr
   r	   Úlist)Úformats   "r6   Ú__annotate__r`   ¦   s6   € ÷ U ñ U ”ð U œ6ð U ¬%ð U ´tð U Àñ U r8   c                óú  € RV9  d   \         P                  RV 4       R# VR,          p\        P                  ! VR4      pV'       g   \	        \
        4      p\        P                  ! V\        4       F  p\        P                  ! V4       K  	  \        4        VP                  R\        4      pVP                  R4      pV'       dZ   VR8w  d   \        P                  ! Wx4       M;\        P                  P!                  V4      '       g   \         P#                  RV4       \        P$                  ! VR	\&        R
7      p	VP)                  R4      p
V
'       dÅ   \+        VP,                  P/                  4       4      p\1        W´4      p\3        4       pVP5                  4        FJ  w  rïV\6        9   g   K  V'       g   K  VP9                  \        P                  P;                  V4      4       KL  	  \        P<                  ! V4       \>        P@                  ! W©V4       M\         P#                  RV	4       \        P$                  ! VR\B        R
7      pV'       g   \         PE                  R4       M|/ pRV9   d   VR,          VR&   RV9   d6   VR,          p\	        VPG                  4       4       F  pVV,          VV&   K  	  \        P                  ! V\H        PJ                  ! V4      4       \        PL                  ! VRRR
7      p\N        PP                  ! \R        4      pV'       d	   V'       d   \U        W$4      pM$V'       d   \        PL                  ! VRRR
7      pMRpV'       d   \W        V4       \Y        V4       R# R# )z'Handler method activated by cloud-init.r)   z8Skipping module named %s, no 'chef' key in configurationNÚdirectoriesr   r   ÚsystemzWchef validation_cert provided as 'system', but validation_key path '%s' does not exist.Úconfig_pathr,   zchef_client.rbz&No template found, not rendering to %sÚfirstboot_pathz7First boot path empty, not writing first boot json fileÚrun_listÚinitial_attributesÚforce_installFÚexec)-r@   rA   r   Úget_cfg_option_listr^   Ú	CHEF_DIRSÚ	itertoolsÚchainÚREQUIRED_CHEF_DIRSÚ
ensure_dirrU   Úgetr2   Ú
write_filer/   r0   r1   ÚwarningrC   ÚCHEF_RB_PATHÚget_template_filenamer]   Ú
datasourceÚget_instance_idrJ   Úsetr>   ÚCHEF_RB_TPL_PATH_KEYSÚaddÚdirnameÚensure_dirsr   Úrender_to_fileÚCHEF_FB_PATHÚinfoÚkeysÚjsonÚdumpsr.   r   Úis_exeÚCHEF_EXEC_PATHÚinstall_chefÚrun_chefr7   )rX   rY   rZ   r[   r4   Ú	chef_dirsÚdÚ	vkey_pathÚvcertÚcfg_filenameÚtemplate_fnrF   rG   Úparam_pathsrH   rI   Úfb_filenameÚinitial_jsonrg   rh   Ú	installedÚruns   &&&&                  r6   Úhandler‘   ¦   sž  € ð �SÔÜ�	‰	ØFÈô	
ñ 	à�6�{€Hô ×(Ò(¨°=ÓA€IßÜœ“Oˆ	Ü�_Š_˜YÔ(:Ö;ˆÜ�Š˜Öñ <ô Ôà—‘Ð-Ô/GÓH€IØ�L‰LÐ*Ó+€E÷ Ø�HÔÜ�OŠO˜IÕ-Ü—‘—‘ 	×*Ò*Ü�K‰Kð;àôô ×*Ò*Ø�-¬ô€Lð ×-Ñ-Ð.>Ó?€KßÜ�%×"Ñ"×2Ñ2Ó4Ó5ˆÜ$ SÓ3ˆô “eˆØ—L‘L–N‰DˆAØÔ)Ö)¯a©aØ—‘¤§¡§¡°Ó 2Ö3ñ #ô 	×Ò˜Ô%Ü× Ò  ¸FÕCä�‰Ð<¸lÔKô ×)Ò)ØÐ"¬Lô€K÷ Ü�‰ÐJÕKàˆØ˜Ô!Ø'/°
Õ';ˆL˜Ñ$Ø 8Ô+Ø!)Ð*>Õ!?ÐÜÐ,×1Ñ1Ó3Ö4�Ø"4°QÕ"7�˜Q“ñ 5ä�Š˜¤T§Z¢Z°Ó%=Ô>ô ×,Ò,Ø�/¨5ô€Mô —’œNÓ+€IßŸÜ˜5Ó+‰ß	Ü×&Ò& x°ÀÔG‰àˆß
Ü�ÔÜ�hÖñ r8   c                 óÎ  € \         P                  R 4       \        .pRV 9   d•   V R,          p\        V\        \
        34      '       d   VP                  V4       Mr\        V\        4      '       d   VP                  V4       MJ\         P                  R\        V4      4       VP                  \        4       MVP                  \        4       \        P                  ! VRR7       R# )zRunning chef-clientÚexec_argumentszRUnknown type %s provided for chef 'exec_arguments' expected list, tuple, or stringF©ÚcaptureN)r@   rA   rƒ   Ú
isinstancer^   ÚtupleÚextendr]   Úappendrr   ÚtypeÚCHEF_EXEC_DEF_ARGSr   )r4   ÚcmdÚcmd_argss   &  r6   r…   r…   þ   s¤   € Ü‡I�IÐ#Ô$ÜÐ
€CØ˜8Ô#ØÐ,Õ-ˆÜ�h¤¤u ×.Ò.Ø�J‰J�xÕ Ü˜¤#×&Ò&Ø�J‰J�xÕ ä�K‰Kðô �X“ô	ð �J‰JÔ)Õ*à�
‰
Ô%Ô&Ü‡I‚Iˆc˜5×!r8   c                ó0   € V ^8„  d   QhR\         R\        /# )rW   Údistror[   )r   r^   )r_   s   "r6   r`   r`     s   € ÷ .ñ .¬ð .´dñ .r8   c                ó¢  € VP                  4       pVP                  RR4      p\        P                  ! VP	                  4       RR7      ;_uu_ 4       p\
        P                  P                  WT4      pVP                  ^ V4       \        P                  ! W`RR7       \        P                  ! R	RV/VB uuRRR4       #   + '       g   i     R# ; i)
zòWrite blob to a tempfile, and call subp with args, kwargs. Then cleanup.

'basename' as a kwarg allows providing the basename for the file.
The 'args' argument to subp will be updated with the full path to the
filename as the first argument.
ÚbasenameÚ	subp_blobT)ÚdirÚ	needs_exeiÀ  )Úmoder[   N© )r=   Úpopr   ÚtempdirÚget_tmp_exec_pathr/   r0   rO   Úinsertr   rq   r   )ÚblobrŸ   r[   Úkwargsr¡   ÚtmpdÚtmpfs   &&&,   r6   Úsubp_blob_in_tempfiler¯     sš   € ð �9‰9‹;€DØ�z‰z˜* kÓ2€Hä	×	Ò	Ø×$Ñ$Ó&°$÷
õ 
à	Ü�w‰w�|‰|˜DÓ+ˆØ�‰�A�tÔÜ�Š˜¨Õ/Ü�yŠyÑ-˜dÐ- fÑ-÷
÷ 
÷ 
ó 
ús   ÁA!B=Â=C	c                ó$   € V ^8„  d   QhR\         /# )rW   rŸ   r   )r_   s   "r6   r`   r`   '  s   € ÷ ñ Üñr8   c                ó¢   € Vf   \         pVf   \        pVf   . pMRV.p\        P                  ! WR7      P                  p\        V VVRRR7      # )aK  Install an omnibus unified package from url.

@param url: URL where blob of chef content may be downloaded. Defaults to
    OMNIBUS_URL.
@param retries: Number of retries to perform when attempting to read url.
    Defaults to OMNIBUS_URL_RETRIES
@param omnibus_version: Optional version string to require for omnibus
    install.
z-v)ÚurlÚretrieszchef-omnibus-installF)rŸ   r«   r[   r¡   r•   )ÚOMNIBUS_URLÚOMNIBUS_URL_RETRIESr   ÚreadurlÚcontentsr¯   )rŸ   r²   r³   Úomnibus_versionr[   Úcontents   &&&&  r6   Úinstall_chef_from_omnibusrº   '  s_   € ð ‚{ÜˆØ‚Ü%ˆàÒØ‰à�oÐ&ˆÜ× Ò  SÔ:×CÑC€GÜ ØØØØ'Øôð r8   c                ó$   € V ^8„  d   QhR\         /# )rW   rZ   r   )r_   s   "r6   r`   r`   F  s   € ÷ ñ œñ r8   c                 ó€  € \         P                  ! VR R4      p\         P                  ! VRRR7      pVR8X  df   \         P                  ! VRR4      p\         P                  ! VR\        4      p\	        WTV P
                  4       \         P                  ! VRR	R7      pV# VR8X  d   V P
                  P                  R
.4       V# VR8X  d]   \         P                  ! VR4      p\        V P
                  \         P                  ! VR4      \         P                  ! VR4      VR7       V# \        P                  RV4       RpV# )Úinstall_typeÚpackagesri   Fr,   ÚgemsÚversionNÚruby_versionTr)   Úomnibusr¸   Úomnibus_urlÚomnibus_url_retries)rŸ   r²   r³   r¸   zUnknown chef install type '%s')r   rC   r.   ÚRUBY_VERSION_DEFAULTÚinstall_chef_from_gemsrŸ   Úinstall_packagesrº   Úget_cfg_option_intr@   rr   )rZ   r4   r½   r�   Úchef_versionrÁ   r¸   s   &&     r6   r„   r„   F  s'  € ä×*Ò*Ø�. *ó€Lô ×
"Ò
" 8¨V¸UÔ
C€CØ�vÔä×.Ò.¨x¸ÀDÓIˆÜ×.Ò.Ø�nÔ&:ó
ˆô 	˜|¸5¿<¹<ÔHô ×&Ò& x°ÀÔFˆð €Jð 
˜Ô	#à�‰×%Ñ% v hÔ/ð €Jð 
˜Ô	"Ü×1Ò1°(Ð<MÓNˆÜ!Ø—<‘<Ü×'Ò'¨°-Ó@Ü×+Ò+¨HÐ6KÓLØ+õ		
ð €Jô 	�‰Ð4°lÔCØˆØ€Jr8   c                ó:   € V ^8„  d   QhR\         \        ,          /# )rW   r\   )r   r]   )r_   s   "r6   r`   r`   g  s   € ÷ ñ ¤$¤s¥)ñ r8   c                 óZ   € R V ,          RV ,          .pV R8X  d   VP                  R4       V# )zruby%sz
ruby%s-devr   )zlibopenssl-ruby1.8zrubygems1.8)r˜   )rÀ   Úpkgss   & r6   Úget_ruby_packagesrÍ   g  s0   € à 'Õ)¨<¸'Õ+AÐB€DØ�%ÔØ�‰Ð9Ô:Ø€Kr8   c                 óÞ  € VP                  \        V 4      4       \        P                  P	                  R 4      '       g   \
        P                  ! RV ,          R 4       \        P                  P	                  R4      '       g   \
        P                  ! RV ,          R4       V'       d+   \        P                  ! R RRRV,          RRR	R
R.	RR7       R# \        P                  ! . RORR7       R# )ú/usr/bin/gemz/usr/bin/gem%sz/usr/bin/rubyz/usr/bin/ruby%sÚinstallr)   z-v %sú--no-riú	--no-rdocú--bindirú/usr/binú-qFr”   N)rÏ   rÐ   r)   rÑ   rÒ   rÓ   rÔ   rÕ   )rÇ   rÍ   r/   r0   rM   r   Úsym_linkr   )rÁ   rÉ   rŸ   s   &&&r6   rÆ   rÆ   o  sµ   € Ø
×ÑÔ-¨lÓ;Ô<Ü�7‰7�>‰>˜.×)Ò)Ü�ŠÐ&¨Õ5°~ÔFÜ�7‰7�>‰>˜/×*Ò*Ü�ŠÐ'¨,Õ6¸ÔHßÜ�	Š	àØØØ˜,Õ&ØØØØØð
ð ÷	
ô 	�	Š	ò	ð ÷	
r8   c                ó@   € V ^8„  d   Qh/ ^ \         9   d
   \        ;R&   # )rW   Úmeta)Ú__conditional_annotations__r   )r_   s   "r6   r`   r`   	   s    € × =Ñ =÷lò „jñ òm >r8   )ú	/etc/chefz/var/log/chefz/var/lib/chefr   r   z/var/run/chef)rÚ   )r   r   r   r   r   r   r   )z-dz-iÚ1800z-sÚ20)NNN)9rÙ   Ú__doc__rl   r€   Úloggingr/   rP   Útypingr   Ú	cloudinitr   r   r   r   r   Úcloudinit.cloudr	   Úcloudinit.configr
   Úcloudinit.config.schemar   Úcloudinit.distrosr   Úcloudinit.settingsr   rÅ   rk   rn   rL   r´   rµ   r2   r}   r<   Ú	frozensetrB   rx   r   r?   rs   rƒ   r›   Ú	getLoggerÚ__name__r@   rØ   r7   rJ   rU   r‘   r…   r¯   rº   r„   rÍ   rÆ   r`   )rÙ   s   @r6   Ú<module>ré      sÈ  øðö >ã Û Û Û 	Û Ý ç CÕ CÝ !Ý #Ý .Ý $Ý )àÐ ð€	ð $Ð ð Ð(ØÐ+ðÐ ð 4€ØÐ à5Ð Ø)€ð �~Ø�àÐ.ØÐ.Ø�tØÐ(Ø�LØÐ(ØÐ*ØÐ*Ø�Ø ðÐ ñ  " ; -Ó0Ð Ù!òó
Ð ñ ð	Ø	×	"Ñ	"Ó	$ð	à	ð	ð 
ð	ð 	ð		ð
 	ð	ð 	ð	ð 	ð	ð 	ð	óÐ ð %€Ø'€Ø5Ð ð ×Ò˜Ó!€ð 	ˆ)Ø�ˆwØ�Ø ˜xð	€ó ò,ò òFKõ(U òp"õ,.÷&õ>õBô"
r8   