Ë
    x[hü  ã            
       ó  — U d Z ddlZddlZddlZddlmZ ddlmZmZ ddl	m
Z
 ddlmZ ddlmZ ddlmZ d	Zd
ZdZ ej(                  e«      ZddgedgdœZeed<   dedede
deddf
d„Zd„ Zddedee   fd„Zd„ Zd„ Z d„ Z!y)z"Write Files: write arbitrary filesé    N)ÚOptional)Ú
url_helperÚutil)ÚCloud)ÚConfig)Ú
MetaSchema)ÚPER_INSTANCEi¤  Fz
text/plainÚcc_write_filesÚallÚwrite_files)ÚidÚdistrosÚ	frequencyÚactivate_by_schema_keysÚmetaÚnameÚcfgÚcloudÚargsÚreturnc                 ó:  — |j                  dg «      }|D �cg c]  }t        j                  |dt        «      s|‘Œ! }}|st        j                  d| «       y t        j                  |j                  «      }t        | ||j                  j                  |«       y c c}w )Nr   ÚdeferzESkipping module named %s, no/empty 'write_files' key in configuration)Úgetr   Úget_cfg_option_boolÚDEFAULT_DEFERÚLOGÚdebugÚfetch_ssl_detailsÚpathsr   ÚdistroÚdefault_owner)r   r   r   r   Ú	file_listÚfÚfiltered_filesÚssl_detailss           úA/usr/lib/python3/dist-packages/cloudinit/config/cc_write_files.pyÚhandler'   "   s’   € Ø—‘˜ rÓ*€Ið öàÜ×'Ñ'¨¨7´MÔBò 	
ð€Nð ñ
 Ü�	‰	ð;àô	
ð
 	Ü×(Ñ(¨¯©Ó5€KÜ��n e§l¡l×&@Ñ&@À+ÕNùòs   —$Bc                 óÚ   — | sd} | j                  «       j                  «       } | dv rdgS | dv rddgS | dv rdgS | t        k(  rt        gS | rt        j	                  d| t        «       t        gS )NÚ )ÚgzÚgzipúapplication/x-gzip)z	gz+base64zgzip+base64zgz+b64zgzip+b64úapplication/base64)Úb64Úbase64z%Unknown encoding type %s, assuming %s)ÚlowerÚstripÚTEXT_PLAIN_ENCr   Úwarning)Úencoding_types    r&   Úcanonicalize_extractionr5   4   s�   € ÙØˆØ!×'Ñ'Ó)×/Ñ/Ó1€MØ˜Ñ&Ø$Ð%Ð%ØÐJÑJØ$Ð&:Ð;Ð;ð
 Ð)Ñ)Ø$Ð%Ð%ØœÒ&ÜÐÐÙÜ�‰Ø3ØÜô	
ô
 ÐÐó    Úownerr%   c           
      óª  — |sy t        |«      D �]A  \  }}|j                  d«      }|st        j                  d|dz   | «       Œ5t        j
                  j                  |«      }t        |j                  dd «      ||j                  dd «      |j                  dd «      «      }|€t        j                  d|dz   | «       Œ¯t        j                  |j                  d|«      «      \  }}	t        |j                  d	«      t        «      }
t        j                  |d
«      rdnd}t        j                  ||||
||	¬«       t        j                  |||	«       �ŒD y )NÚpathz3No path provided to write for entry %s in module %sé   ÚsourceÚcontentÚencodingz>No content could be loaded for entry %s in module %s; skippingr7   ÚpermissionsÚappendÚabÚwb)ÚomodeÚmodeÚuserÚgroup)Ú	enumerater   r   r3   Úosr9   ÚabspathÚread_url_or_decoder   Úextract_usergroupÚdecode_permsÚDEFAULT_PERMSr   Ú
write_fileÚchownbyname)r   Úfilesr7   r%   ÚiÚf_infor9   ÚcontentsÚuÚgÚpermsrB   s               r&   r   r   M   s:  € ÙØä˜uÓ%ó !%‰	ˆˆ6Ø�z‰z˜&Ó!ˆÙÜ�K‰KØEØ�A‘Øôð
 Ü�w‰w�‰˜tÓ$ˆä%Ø�J‰J�x Ó&ØØ�J‰J�y $Ó'Ø�J‰J�z 4Ó(ó	
ˆð ÐÜ�K‰Kðà�A‘Øô	ð ô ×'Ñ'¨¯
©
°7¸EÓ(BÓC‰ˆˆAÜ˜VŸZ™Z¨Ó6¼ÓFˆÜ×0Ñ0°¸ÔB‘ÈˆÜ�‰Ø�( %¨e¸!À1õ	
ô 	×Ñ˜˜q !Ö$ñC!%r6   c                 óX  — | €|S 	 t        | t        t        f«      rt        | «      S t        t        | «      d«      S # t        t
        f$ r^ g }| |fD ]:  }	 |j                  d|z  «       Œ# t        $ r |j                  d|z  «       Y Œ8w xY w t        j                  dg|¢­Ž  |cY S w xY w)Né   z%oz%rz0Undecodable permissions %s, returning default %s)	Ú
isinstanceÚintÚfloatÚstrÚ	TypeErrorÚ
ValueErrorr?   r   r3   )ÚpermÚdefaultÚrepsÚrs       r&   rK   rK   u   sµ   € Ø€|ØˆðÜ�dœS¤%˜LÔ)ä�t“9Ðô ”s˜4“y !Ó$Ð$øÜ”zÐ"ò ØˆØ˜�ò 	&ˆAð&Ø—‘˜D 1™HÕ%øÜò &Ø—‘˜D 1™HÖ%ð&úð	&ô
 	�‰ÐFÐNÈÓNØŠðús7   † < §< ¼B)ÁA*Á)B)Á*B
ÂB)Â	B
Â
B)Â(B)c                 óR  — | €d n| j                  dd «      }t        |«      }|€|syd }|r5	 t        j                  || j                  dd «      dd|¬«      j                  }|�|st        |«      }t        ||«      }|S # t
        $ r  t        j                  t        d|«       d}Y ŒEw xY w)NÚurir)   Úheadersé   )rd   ÚretriesÚsec_betweenr%   zVFailed to retrieve contents from source "%s"; falling back to data from "contents" keyF)r   Úboolr   Úread_file_or_urlrR   Ú	Exceptionr   Úlogexcr   r5   Úextract_contents)r;   r%   r<   r=   ÚurlÚuse_urlÚresultÚextractionss           r&   rI   rI   Š   sÄ   € Ø�.‰$ f§j¡j°¸Ó&=€CÜ�3‹i€Gà€™wØà€FÙð	ô  ×0Ñ0ØØŸ
™
 9¨dÓ3ØØØ'ô÷ ‰hð ð" Ð¡7ô .¨hÓ7ˆÜ! '¨;Ó7ˆØ€Møô ò 	Ü�K‰KÜð,àô	ð ŠGð	ús   ¬4A= Á=&B&Â%B&c                 óž   — | }|D ]E  }|dk(  rt        j                  |dd¬«      }Œ!|dk(  rt        j                  |«      }Œ<|t        k(  sŒFŒG |S )Nr,   F)ÚquietÚdecoder-   )r   Údecomp_gzipr/   Ú	b64decoder2   )rR   Úextraction_typesro   Úts       r&   rl   rl   ¯   s^   € Ø€FØò ˆØÐ$Ò$Ü×%Ñ% f°EÀ%ÔH‰FØÐ&Ò&Ü×%Ñ% fÓ-‰FØ”.Ó Øðð €Mr6   )N)"Ú__doc__r/   ÚloggingrG   Útypingr   Ú	cloudinitr   r   Úcloudinit.cloudr   Úcloudinit.configr   Úcloudinit.config.schemar   Úcloudinit.settingsr	   rL   r   r2   Ú	getLoggerÚ__name__r   r   Ú__annotations__r[   Úlistr'   r5   Údictr   rK   rI   rl   © r6   r&   ú<module>r†      sÁ   ðò )ã Û Û 	Ý ç &Ý !Ý #Ý .Ý +à€Ø€Ø€à€g×Ñ˜Ó!€ð ØˆwØØ -˜ñ	€€jó ðO�ð O˜6ð O¨%ð O°tð OÀó Oò$ñ2%% Cð %%°h¸t±nó %%òPò*"óJ	r6   