HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/cloudinit/config/__pycache__/cc_write_files.cpython-38.pyc
U

Ӈg��@s�UdZddlZddlZddlZddlmZddlmZmZddl	m
Z
ddlmZddl
mZddlmZd	Zd
ZdZe�e�Zdd
gedgd�Zeed<eee
edd�dd�Zdd�Zdeeed�dd�Zdd�Zdd�Z dd�Z!dS)z"Write Files: write arbitrary files�N)�Optional)�
url_helper�util)�Cloud)�Config)�
MetaSchema)�PER_INSTANCEi�Fz
text/plainZcc_write_files�all�write_files)�idZdistrosZ	frequencyZactivate_by_schema_keys�meta)�name�cfg�cloud�args�returncCsP|�dg�}dd�|D�}|s.t�d|�dSt�|j�}t|||jj|�dS)Nr
cSsg|]}t�|dt�s|�qS)Zdefer)r�get_cfg_option_bool�
DEFAULT_DEFER)�.0�f�r�A/usr/lib/python3/dist-packages/cloudinit/config/cc_write_files.py�
<listcomp>$s�zhandle.<locals>.<listcomp>zESkipping module named %s, no/empty 'write_files' key in configuration)	�get�LOG�debugrZfetch_ssl_details�pathsr
ZdistroZ
default_owner)r
rrrZ	file_listZfiltered_files�ssl_detailsrrr�handle"s��rcCsf|sd}|����}|dkr"dgS|dkr2ddgS|dkr@dgS|tkrNtgS|r`t�d|t�tgS)N�)ZgzZgzip�application/x-gzip)z	gz+base64zgzip+base64zgz+b64zgzip+b64�application/base64)Zb64�base64z%Unknown encoding type %s, assuming %s)�lower�strip�TEXT_PLAIN_ENCr�warning)Z
encoding_typerrr�canonicalize_extraction4s$�r')�ownerrc	Cs�|sdSt|�D]�\}}|�d�}|s:t�d|d|�qtj�|�}t|�dd�||�dd�|�dd��}|dkr�t�d|d|�qt�	|�d|��\}}	t
|�d	�t�}
t�|d
�r�dnd}tj
||||
||	d
�t�|||	�qdS)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; skippingr(Zpermissions�appendZab�wb)�omode�mode�user�group)�	enumeraterrr&�osr)�abspath�read_url_or_decoderZextract_usergroup�decode_perms�
DEFAULT_PERMSrZ
write_fileZchownbyname)r
�filesr(r�iZf_infor)�contents�u�gZpermsr0rrrr
MsJ
�


���cCs�|dkr|Sz,t|ttf�r&t|�WStt|�d�WSWnrttfk
r�g}||fD]:}z|�d|�WqXtk
r�|�d|�YqXXqXtjd|��|YSXdS)N�z%oz%r�0Undecodable permissions %s, returning default %s)r@)	�
isinstance�int�float�str�	TypeError�
ValueErrorr.rr&)Zperm�defaultZreps�rrrrr8us
r8cCs�|dkrdn
|�dd�}t|�}|dkr0|s0dSd}|r�z"tj||�dd�dd|d�j}Wn&tk
r�t�td|�d}YnX|dk	r�|s�t	|�}t
||�}|S)NZurir�headers�)rIZretriesZsec_betweenrzVFailed to retrieve contents from source "%s"; falling back to data from "contents" keyF)r�boolrZread_file_or_urlr<�	ExceptionrZlogexcrr'�extract_contents)r+rr,r-ZurlZuse_url�resultZextractionsrrrr7�s2
��

r7cCsH|}|D]:}|dkr&tj|ddd�}q|dkr:t�|�}q|tkrq|S)Nr F)�quiet�decoder!)rZdecomp_gzipr"Z	b64decoder%)r<Zextraction_typesrN�trrrrM�srM)N)"�__doc__r"Zloggingr5�typingrZ	cloudinitrrZcloudinit.cloudrZcloudinit.configrZcloudinit.config.schemarZcloudinit.settingsrr9rr%Z	getLogger�__name__rr�__annotations__rD�listrr'�dictr
r8r7rMrrrr�<module>s0
�(%