%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /snap/core/17212/usr/lib/python3/dist-packages/cloudinit/__pycache__/
Upload File :
Create Path :
Current File : //snap/core/17212/usr/lib/python3/dist-packages/cloudinit/__pycache__/helpers.cpython-35.pyc



�EHd�>�@s�ddlmZddlZddlZddlmZmZmZddlmZddl	m
Z
mZmZm
Z
ddlmZddlmZddlmZdd	lmZeje�ZGd
d�de�ZGdd
�d
e�ZGdd�de�ZGdd�de�Zdd�ZGdd�de�ZGdd�de�ZGdd�de�Z Gdd�de�Z!Gdd�dej"�Z#Gdd�de�Z$dS) �)�timeN)�NoSectionError�
NoOptionError�RawConfigParser)�StringIO)�PER_INSTANCE�
PER_ALWAYS�PER_ONCE�CFG_ENV_NAME)�log)�
type_utils)�persistence)�utilc@seZdZdS)�LockFailureN)�__name__�
__module__�__qualname__�rr�3/usr/lib/python3/dist-packages/cloudinit/helpers.pyrsrc@seZdZdS)�	DummyLockN)rrrrrrrr!src@sXeZdZdd�Zejddd��Zdd�Zdd	�Zd
d�Z	dS)
�DummySemaphorescCsdS)Nr)�selfrrr�__init__&szDummySemaphores.__init__Fccst�VdS)N)r)r�_name�_freqZ_clear_on_failrrr�lock)szDummySemaphores.lockcCsdS)NFr)rrrrrr�has_run-szDummySemaphores.has_runcCsdS)NTr)rrrrrr�clear0szDummySemaphores.clearcCsdS)Nr)rrrr�	clear_all3szDummySemaphores.clear_allN)
rrrr�
contextlib�contextmanagerrrrrrrrrr%src@s(eZdZdd�Zdd�ZdS)�FileLockcCs
||_dS)N)�fn)rr"rrrr8szFileLock.__init__cCsdtj|�|jfS)Nz<%s using file %r>)rZobj_namer")rrrr�__str__;szFileLock.__str__N)rrrrr#rrrrr!7sr!cCs|jdd�S)N�-�_)�replace)�namerrr�canon_sem_name?sr(c@speZdZdd�Zejddd��Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�ZdS)�FileSemaphorescCs
||_dS)N)�sem_path)rr*rrrrDszFileSemaphores.__init__FccsSt|�}y|j||�VWn+tk
rN|rG|j||��YnXdS)N)r(�_acquire�	Exceptionr)rr'�freq�
clear_on_failrrrrGs
zFileSemaphores.lockcCset|�}|j||�}ytj|�Wn/ttfk
r`tjtd|�dSYnXdS)NzFailed deleting semaphore %sFT)r(�	_get_pathrZdel_file�IOError�OSError�logexc�LOG)rr'r-�sem_filerrrrQs	zFileSemaphores.clearcCsIytj|j�Wn.ttfk
rDtjtd|j�YnXdS)Nz&Failed deleting semaphore directory %s)rZdel_dirr*r0r1r2r3)rrrrr[s
zFileSemaphores.clear_allcCs�|j||�rdS|j||�}dtj�t�f}ytj||�Wn/ttfk
r�tj	t
d|�dSYnXt|�S)Nz%s: %s
z Failed writing semaphore file %s)rr/�os�getpidrrZ
write_filer0r1r2r3r!)rr'r-r4�contentsrrrr+bs	zFileSemaphores._acquirecCs�|s|tkrdSt|�}|j||�}tjj|�rKdS||kr�tjj|j||��r�tjd||�dSdS)NFTz�%s has run without canonicalized name [%s].
likely the migrator has not yet run. It will run next boot.
run manually with: cloud-init single --name=migrator)rr(r/r5�path�existsr3�warning)rr'r-Zcnamer4rrrrrs*	
zFileSemaphores.has_runcCsP|j}|s|tkr/tjj||�Stjj|d||f�SdS)Nz%s.%s)r*rr5r8�join)rr'r-r*rrrr/�s	zFileSemaphores._get_pathN)rrrrrr rrrr+rr/rrrrr)Cs	
r)c@s:eZdZdd�Zdd�Zdddd�ZdS)	�RunnerscCs||_i|_dS)N)�paths�sems)rr=rrrr�s	zRunners.__init__cCs�|tks|rdSd}|tkr>|jjd�}n|tkr\|jjd�}|sfdS||jkr�t|�|j|<|j|S)N�sem)rrr=�	get_ipathr	�	get_cpathr>r))rr-r*rrr�_get_sem�szRunners._get_semNFc	Cs�|j|�}|st�}|s*g}|j||�rStjd||�dS|j|||��g}|s�td|��nGtjd||�t|t�r�||�}n||�}d|fSWdQRXdS)Nz%s already ran (freq=%s)FzFailed to acquire lock for %szRunning %s using lock (%s)T)FN)	rBrrr3�debugrr�
isinstance�dict)	rr'Zfunctor�argsr-r.r?ZlkZresultsrrr�run�s 	zRunners.run)rrrrrBrGrrrrr<�sr<c@smeZdZddddddd�Zdd�Zdd�Zd	d
�Zdd�Zed
d��Z	dS)�ConfigMergerNTcCs:||_||_||_||_||_d|_dS)N)�_paths�_ds�_fns�	_base_cfg�_include_vendor�_cfg)rr=�
datasourceZadditional_fnsZbase_cfgZinclude_vendorrrrr�s					zConfigMerger.__init__cCssg}|jroy5|jj�}|rCt|t�rC|j|�Wn(tk
rntjtd|j�YnX|S)Nz2Failed loading of datasource config object from %s)	rJZget_config_objrDrE�appendr,rr2r3)rZd_cfgsZds_cfgrrr�_get_datasource_configs�s	
z$ConfigMerger._get_datasource_configscCshg}ttjkrdtjt}y|jtj|��Wn%tk
rctjtd|�YnX|S)Nz%Failed loading of env. config from %s)	r
r5�environrPr�	read_confr,r2r3)rZe_cfgsZe_fnrrr�_get_env_configs�s

zConfigMerger._get_env_configscCs�g}|js|Sdg}|jr?|jd�|jd�x�|D]�}|jj|�}|rFtjj|�rFy|jtj|��WqFt	k
r�t
jd|�YqFtk
r�tj
t
d|�YqFXqFW|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)rIrMrP�
get_ipath_curr5r8�isfilerrS�PermissionErrorr3rCr,r2)rZi_cfgsZcc_pathsZcc_pZcc_fnrrr�_get_instance_configs�s(			




z"ConfigMerger._get_instance_configscCs�g}|jrexS|jD]H}y|jtj|��Wqtk
r`tjtd|�YqXqW|j|j��|j|j	��|j|j
��|jr�|j|j�tj|�S)Nz'Failed loading of configuration from %s)
rKrPrrSr,r2r3�extendrTr[rQrLZ
mergemanydict)r�cfgsZc_fnrrr�	_read_cfg�s	
	zConfigMerger._read_cfgcCs%|jdkr|j�|_|jS)N)rNr^)rrrr�cfgszConfigMerger.cfg)
rrrrrQrTr[r^�propertyr_rrrrrH�s	rHc@sjeZdZdd�Zdd�Zdd�Zdd�Zd	d
dd�Zd
d�Zdd�Z	dS)�ContentHandlerscCsi|_g|_dS)N)�
registered�initialized)rrrrrs	zContentHandlers.__init__cCs
|j|�S)N)�
is_registered)r�itemrrr�__contains__#szContentHandlers.__contains__cCs
|j|�S)N)�_get_handler)r�keyrrr�__getitem__&szContentHandlers.__getitem__cCs
||jkS)N)rb)r�content_typerrrrd)szContentHandlers.is_registeredFTcCs�t�}xF|j�D]8}|r2|j|�q|j|�s|j|�qWx|D]}||j|<qYW|r�||jkr�|jj|�|S)N)�setZ
list_types�addrdrbrcrP)r�modrcZ	overwrite�types�trrr�register,s	
zContentHandlers.registercCs|j|S)N)rb)rrjrrrrg:szContentHandlers._get_handlercCst|jj��S)N)�listrb�items)rrrrrr=szContentHandlers.itemsN)
rrrrrfrirdrprgrrrrrrrasrac@s�eZdZdZddd�Zedddd��Zddd	�Zdd
d�Zddd
�Z	ddd�Z
ddd�Zddd�ZdS)�Paths�Nc&CsH||_|jdd�|_|jdd�|_tjj|jd�|_tjj|jd�|_|jd�|_	tjj|jd�|_
|jd	d
�}tjj|d�|_ddd
d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d+i|_||_
dS),N�	cloud_dirz/var/lib/cloud�run_dirz/run/cloud-init�instancez
boot-finishedZupstart_dirZseedZ
templates_dirz/etc/cloud/templates/z%s.tmplZhandlers�scriptsZvendor_scriptszscripts/vendorr?Z	boothooksZuserdata_rawz
user-data.txtZuserdatazuser-data.txt.iZobj_pklzobj.pklrUzcloud-config.txtrWzvendor-cloud-config.txtrVzvendor2-cloud-config.txt�dataZvendordata_rawzvendor-data.txtZvendordata2_rawzvendor-data2.txtZ
vendordatazvendor-data.txt.iZvendordata2zvendor-data2.txt.iZinstance_idz.instance-idZmanual_clean_markerzmanual-clean�warnings)r]�getrurvr5r8r;�
instance_linkZ
boot_finishedZupstart_conf_dZseed_dirZtemplate_tpl�lookupsrO)r�	path_cfgs�dsZtemplate_dirrrrrDs:	zPaths.__init__)�ci_pkl_version�returncCs4t|d�s0td|jd|j�j|_dS)z(Perform deserialization fixes for Paths.rvr~rN)�hasattrrsr]rOrv)rr�rrr�	_unpicklehs	zPaths._unpicklecCs|j|j|�S)N)r/r|)rr'rrrrXuszPaths.get_ipath_curcCs|j|j|�S)N)r/ru)rr'rrrrAzszPaths.get_cpathcCs�|js
dS|jj�}|dkr,dSt|�jtjd�}tjj|jd|�}|j	j
|�}|r�tjj||�}|S)Nr%Z	instances)rOZget_instance_id�strr&r5�sepr8r;rur}r{)rr'ZiidZ
path_safe_iid�ipathZadd_onrrr�
_get_ipaths	zPaths._get_ipathcCs.|j|�}|s&tjd�dS|SdS)Nz?No per instance data available, is there an datasource/iid set?)r�r3r:)rr'r�rrrr@�s

zPaths.get_ipathcCs*|dkr|Stjj||j|�S)N)r5r8r;r})r�baser'rrrr/�szPaths._get_pathcCs|j|j|�S)N)r/rv)rr'rrr�get_runpath�szPaths.get_runpath)
rrrZ_ci_pkl_versionr�intr�rXrAr�r@r/r�rrrrrsAs$
	rsc@s�eZdZdZdZdZdZdd�Zddd�Zd	d
�Z	dd�Z
d
d�Zdd�Zddd�Z
dS)�DefaultingConfigParserrgFNcCsL|j}ytj|||�}Wn#tk
r6Yntk
rGYnX|S)N)�DEF_BASErr{rr)r�section�option�valuerrrr{�s	

zDefaultingConfigParser.getcCsI|j|�r/|j�dkr/|j|�tj||||�dS)N�default)Zhas_section�lowerZadd_sectionrrk)rr�r�r�rrrrk�s"
zDefaultingConfigParser.setcCs)|j||�r%tj|||�dS)N)�
has_optionr�
remove_option)rr�r�rrrr��sz$DefaultingConfigParser.remove_optioncCs,|j||�s|jStj|||�S)N)r��DEF_BOOLEANr�
getboolean)rr�r�rrrr��sz!DefaultingConfigParser.getbooleancCs,|j||�s|jStj|||�S)N)r��	DEF_FLOATr�getfloat)rr�r�rrrr��szDefaultingConfigParser.getfloatcCs,|j||�s|jStj|||�S)N)r��DEF_INTr�getint)rr�r�rrrr��szDefaultingConfigParser.getintcCsTd}t�}|j|�|j�|j�}|rPdj||dg�}|S)N��
)r�write�flush�getvaluer;)r�headerr7Zoutputstreamrrr�	stringify�s	

z DefaultingConfigParser.stringify)rrrr�r�r�r�r{rkr�r�r�r�r�rrrrr��s
r�)%rrr5Zconfigparserrrr�iorZcloudinit.settingsrrr	r
Z	cloudinitrZloggingrr
rZ	getLoggerrr3r,r�objectrrr!r(r)r<rHraZCloudInitPickleMixinrsr�rrrr�<module>s*"N-_$i

Zerion Mini Shell 1.0