%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /snap/core20/2582/lib/python3/dist-packages/cloudinit/__pycache__/
Upload File :
Create Path :
Current File : //snap/core20/2582/lib/python3/dist-packages/cloudinit/__pycache__/helpers.cpython-38.pyc

U

Ӈg�@�@sddlZddlZddlZddlmZmZmZddlmZddl	m	Z	ddl
mZmZm
Z
mZddlmZmZmZmZe�e�ZGdd�de�ZGd	d
�d
�ZGdd�d�ZGd
d�d�Zdd�ZGdd�d�ZGdd�d�ZGdd�d�ZGdd�d�Z Gdd�dej!�Z"Gdd�de�Z#dS)�N)�
NoOptionError�NoSectionError�RawConfigParser)�StringIO)�time)�persistence�settings�
type_utils�util)�CFG_ENV_NAME�
PER_ALWAYS�PER_INSTANCE�PER_ONCEc@seZdZdS)�LockFailureN��__name__�
__module__�__qualname__�rr�3/usr/lib/python3/dist-packages/cloudinit/helpers.pyrsrc@seZdZdS)�	DummyLockNrrrrrrsrc@s4eZdZdd�Zejddd��Zdd�Zdd	�Zd
S)�DummySemaphorescCsdS�Nr��selfrrr�__init__!szDummySemaphores.__init__Fccst�VdSr)r)r�_name�_freqZ_clear_on_failrrr�lock$szDummySemaphores.lockcCsdS�NFr�rrrrrr�has_run(szDummySemaphores.has_runcCsdS)NTrr rrr�clear+szDummySemaphores.clearN)F)	rrrr�
contextlib�contextmanagerrr!r"rrrrr s
rc@seZdZdd�Zdd�ZdS)�FileLockcCs
||_dSr)�fn)rr&rrrr0szFileLock.__init__cCsdt�|�|jfS)Nz<%s using file %r>)r	Zobj_namer&rrrr�__str__3szFileLock.__str__N)rrrrr'rrrrr%/sr%cCs|�dd�S)N�-�_)�replace)�namerrr�canon_sem_name7sr,c@sDeZdZdd�Zejddd��Zdd�Zdd	�Zd
d�Z	dd
�Z
dS)�FileSemaphorescCs
||_dSr)�sem_path)rr.rrrr<szFileSemaphores.__init__FccsFt|�}z|�||�VWn&tk
r@|r:|�||��YnXdSr)r,�_acquire�	Exceptionr")rr+�freq�
clear_on_failrrrr?szFileSemaphores.lockc	CsPt|�}|�||�}zt�|�Wn(ttfk
rJt�td|�YdSXdS)NzFailed deleting semaphore %sFT)r,�	_get_pathr
Zdel_file�IOError�OSError�logexc�LOG)rr+r1�sem_filerrrr"IszFileSemaphores.clearc	Csp|�||�rdS|�||�}dt��t�f}zt�||�Wn(ttfk
rft�	t
d|�YdSXt|�S)Nz%s: %s
z Failed writing semaphore file %s)r!r3�os�getpidrr
Z
write_filer4r5r6r7r%)rr+r1r8�contentsrrrr/SszFileSemaphores._acquirecCs0|r|tkrdSt|�}|�||�}tj�|�Sr)rr,r3r9�path�exists)rr+r1Zcnamer8rrrr!cs
zFileSemaphores.has_runcCs:|j}|r|tkr tj�||�Stj�|d||f�SdS)Nz%s.%s)r.r
r9r<�join)rr+r1r.rrrr3mszFileSemaphores._get_pathN)F)rrrrr#r$rr"r/r!r3rrrrr-;s	

r-c@s&eZdZdd�Zdd�Zd	dd�ZdS)
�RunnerscCs||_i|_dSr)�paths�sems)rr@rrrrvszRunners.__init__cCsh|tks|sdSd}|tkr*|j�d�}n|tkr>|j�d�}|sFdS||jkr^t|�|j|<|j|S)N�sem)rr
r@�	get_ipathr�	get_cpathrAr-)rr1r.rrr�_get_semzs
zRunners._get_semNFc	
Cs�|�|�}|st�}|sg}|�||�r:t�d||�dS|�|||��X}|s\td|��n@t�d||�t|t�r�|f|�}n||�}d|fW5QR�SW5QRXdS)Nz%s already ran (freq=%s))FNzFailed to acquire lock for %szRunning %s using lock (%s)T)	rErr!r7�debugrr�
isinstance�dict)	rr+Zfunctor�argsr1r2rBZlkZresultsrrr�run�s 

zRunners.run)NF)rrrrrErJrrrrr?usr?c@sHeZdZddd�Zdd�Zdd�Zd	d
�Zed�dd
�Ze	dd��Z
dS)�ConfigMergerNTcCs(||_||_||_||_||_d|_dSr)�_paths�_ds�_fns�	_base_cfg�_include_vendor�_cfg)rr@�
datasourceZadditional_fnsZbase_cfgZinclude_vendorrrrr�szConfigMerger.__init__cCsZg}|jrVz&|j��}|r.t|t�r.|�|�Wn$tk
rTt�td|j�YnX|S)Nz2Failed loading of datasource config object from %s)	rMZget_config_objrGrH�appendr0r
r6r7)rZd_cfgsZds_cfgrrr�_get_datasource_configs�s
�
z$ConfigMerger._get_datasource_configscCsTg}ttjkrPtjt}z|�t�|��Wn"tk
rNt�td|�YnX|S)Nz%Failed loading of env. config from %s)	rr9�environrSr
�	read_confr0r6r7)rZe_cfgsZe_fnrrr�_get_env_configs�s

zConfigMerger._get_env_configsc	Cs�g}|js|Sdg}|jr.|�d�|�d�|D]v}|j�|�}|r2tj�|�r2z|�t�|��Wq2t	k
r�t
�d|�Yq2tk
r�t�
t
d|�Yq2Xq2|S)N�cloud_config�vendor2_cloud_config�vendor_cloud_configz5Skipped loading cloud-config from %s due to non-root.z&Failed loading of cloud-config from %s)rLrPrS�
get_ipath_curr9r<�isfiler
rV�PermissionErrorr7rFr0r6)rZi_cfgsZcc_pathsZcc_pZcc_fnrrr�_get_instance_configs�s0

��z"ConfigMerger._get_instance_configs)�returnc	Cs�g}|jrN|jD]<}z|�t�|��Wqtk
rJt�td|�YqXq|�|���|�|�	��|�|�
��|jr�|�|j�t�|�S)Nz'Failed loading of configuration from %s)
rNrSr
rVr0r6r7�extendrWr^rTrOZ
mergemanydict)r�cfgsZc_fnrrr�	_read_cfg�s"
�zConfigMerger._read_cfgcCs|jdkr|��|_|jSr)rQrbrrrr�cfgs

zConfigMerger.cfg)NNNNT)rrrrrTrWr^rHrb�propertyrcrrrrrK�s�

 rKc@sFeZdZdd�Zdd�Zdd�Zdd�Zddd�Zd
d�Zdd�Z	dS)�ContentHandlerscCsi|_g|_dSr)�
registered�initializedrrrrr
szContentHandlers.__init__cCs
|�|�Sr)�
is_registered)r�itemrrr�__contains__szContentHandlers.__contains__cCs
|�|�Sr)�_get_handler)r�keyrrr�__getitem__szContentHandlers.__getitem__cCs
||jkSr�rf�rZcontent_typerrrrhszContentHandlers.is_registeredFTcCsjt�}|��D](}|r"|�|�q|�|�s|�|�q|D]}||j|<q<|rf||jkrf|j�|�|Sr)�setZ
list_types�addrhrfrgrS)r�modrgZ	overwrite�types�trrr�registers
zContentHandlers.registercCs
|j|Srrnrorrrrk(szContentHandlers._get_handlercCst|j���Sr)�listrf�itemsrrrrrw+szContentHandlers.itemsN)FT)
rrrrrjrmrhrurkrwrrrrres
rec@sreZdZdZded�dd�Zedd�dd�Zdd	d
�Zddd�Z	dd
d�Z
ddd�Zded�dd�Z
ddd�ZdS)�Paths�N)�	path_cfgscCs�||_|�dd�|_|�dd�|_|�dtj�|_tj�	|jd�|_
tj�	|j
d�|_tj�	|jd�|_|�d	d
�}tj�	|d�|_
dd
ddddddddddddddddddd d!d"d#d$d%�|_||_dS)&N�	cloud_dirz/var/lib/cloud�docs_dirz/usr/share/doc/cloud-init/�run_dir�instancez
boot-finishedZseedZ
templates_dirz/etc/cloud/templates/z%s.tmpl�	boothookszcloud-config.txt�data�handlers�instance-data.json�instance-data-sensitive.json�combined-cloud-config.jsonznetwork-config.jsonz.instance-idzmanual-cleanzobj.pkl�scriptsrBzuser-data.txt.iz
user-data.txtzvendor-data.txt.izvendor-data2.txt.izvendor-data2.txtzvendor-data.txtzvendor2-cloud-config.txtzvendor-cloud-config.txtzscripts/vendor�warnings�hotplug.enabled�
.skip-network)rrXr�r��
instance_data�instance_data_sensitive�combined_cloud_configZnetwork_configZinstance_idZmanual_clean_markerZobj_pklr�rBZuserdataZuserdata_rawZ
vendordataZvendordata2Zvendordata2_rawZvendordata_rawrYrZZvendor_scriptsr�r�r�)ra�getr{r|rZDEFAULT_RUN_DIRr}r9r<r>�
instance_linkZ
boot_finishedZseed_dirZtemplate_tpl�lookupsrR)rrz�dsZtemplate_dirrrrr2sZ����!zPaths.__init__)�ci_pkl_versionr_cCsrt|d�st|j|jd�j|_d|jkr2d|jd<d|jkrFd|jd<d|jkrZd|jd<d	|jkrnd	|jd	<d
S)z(Perform deserialization fixes for Paths.r})rzr�r�r�r�r�r�r�r�N)�hasattrrxrarRr}r�)rr�rrr�	_unpicklegs
�



�
�
zPaths._unpicklecCs|�|j|�Sr)r3r��rr+rrrr[�szPaths.get_ipath_curcCs|�|j|�Sr)r3r{r�rrrrD�szPaths.get_cpathcCsf|js
dS|j��}|dkr dSt|��tjd�}tj�|jd|�}|j	�
|�}|rbtj�||�}|S)Nr)Z	instances)rRZget_instance_id�strr*r9�sepr<r>r{r�r�)rr+ZiidZ
path_safe_iid�ipathZadd_onrrr�
_get_ipath�s
zPaths._get_ipathcCs$|�|�}|st�d�dS|SdS)Nz?No per instance data available, is there an datasource/iid set?)r�r7Zwarning)rr+r�rrrrC�s
�zPaths.get_ipath)�basecCs |dkr|Stj�||j|�Sr)r9r<r>r�)rr�r+rrrr3�szPaths._get_pathcCs|�|j|�Sr)r3r}r�rrr�get_runpath�szPaths.get_runpath)N)N)N)N)N)N)N)rrrZ_ci_pkl_versionrHr�intr�r[rDr�rCr�r3r�rrrrrx/s5



rxc@sXeZdZdZdZdZdZdd�Zddd�Zd	d
�Z	dd�Z
d
d�Zdd�Zddd�Z
dS)�DefaultingConfigParserrgFNcCsD|j}zt�|||�}Wn&tk
r,Yntk
r>YnX|Sr)�DEF_BASErr�rr�r�section�option�valuerrrr��szDefaultingConfigParser.getcCs4|�|�s |��dkr |�|�t�||||�dS)N�default)Zhas_section�lowerZadd_sectionrrpr�rrrrp�s
zDefaultingConfigParser.setcCs|�||�rt�|||�dSr)�
has_optionr�
remove_option�rr�r�rrrr��sz$DefaultingConfigParser.remove_optioncCs |�||�s|jSt�|||�Sr)r��DEF_BOOLEANr�
getbooleanr�rrrr��sz!DefaultingConfigParser.getbooleancCs |�||�s|jSt�|||�Sr)r��	DEF_FLOATr�getfloatr�rrrr��szDefaultingConfigParser.getfloatcCs |�||�s|jSt�|||�Sr)r��DEF_INTr�getintr�rrrr��szDefaultingConfigParser.getintcCs<d}t�}|�|�|��|��}|r8d�||dg�}|S)N��
)r�write�flush�getvaluer>)r�headerr;Zoutputstreamrrr�	stringify�s
z DefaultingConfigParser.stringify)N)N)rrrr�r�r�r�r�rpr�r�r�r�r�rrrrr��s

r�)$r#Zloggingr9Zconfigparserrrr�iorrZ	cloudinitrrr	r
Zcloudinit.settingsrrr
rZ	getLoggerrr7r0rrrr%r,r-r?rKreZCloudInitPickleMixinrxr�rrrr�<module>s(
:-j#

Zerion Mini Shell 1.0