MOON
Server: Apache
System: Linux vps.erhabenn.com.br 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64
User: machen (1008)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyo
�
d�bc@ssddlZddlZddlZddlZddlZddlmZddljjZddl	m
Z
dZdZej
d�ej
dej�ej
dej�ej
d	ej�ej
d
�gZej
dej�Zej
d�Zej
d
�Zdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZdS(i����N(tdatetime(tfileutilthistoryi2s^VmSettings.\d+\.json$s^(.*)\.(\d+)\.(agentsManifest)$s^(.*)\.(\d+)\.(manifest\.xml)$s^(.*)\.(\d+)\.(xml)$swaagent_status\.(\d+)\.json$s^(.*)/GoalState\.(\d+)\.xml$sB^\d{4}\-\d{2}\-\d{2}T\d{2}:\d{2}:\d{2}\.\d+(_incarnation_(\d+))?$$sF^\d{4}\-\d{2}\-\d{2}T\d{2}:\d{2}:\d{2}\.\d+(_incarnation_(\d+))?\.zip$tStateFlushercBsVeZd�Zd�Zd�Zed��Zd�Zd�Zd�Z	d�Z
RS(cCs�||_tjj|jt�}tjj|�s�ytj|�Wq�tk
r�}|j	t	j
kr�tjd|j|j
�q�q�XndS(Ns	{0} : {1}(t_sourcetostpathtjointARCHIVE_DIRECTORY_NAMEtexistsRtmkdirtOSErrorterrnotEEXISTtloggerterrortstrerror(tselftlib_dirt	directoryt	exception((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyt__init__=s	cCsh|j�}|sdS|j|�}|dkr5dS|j|�rW|j||�n
|j|�dS(N(t_get_files_to_archivet_get_archive_nametNonet_mkdirt_archivet_purge(Rtfilestarchive_name((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pytflushHscCstjj|jt|�S(N(RRRRR(Rtname((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pythistory_dirVscCs�d}d}xl|D]d}tj|�}|s4qntjj|�}|dks^||kr|}|j�d}qqW|dk	r�|dk	r�tj|�j	�dj
|�SdS(s�
        Gets the most recently modified GoalState.*.xml and uses that timestamp and incarnation for the archive name.
        In a normal workflow, we expect there to be only one GoalState.*.xml at a time, but if the previous one
        wasn't purged for whatever reason, we take the most recently modified goal state file.
        If there are no GoalState.*.xml files, we return None.
        is_incarnation_{0}N(Rt_GOAL_STATE_PATTERNtmatchRRtgetmtimetgroupsRtutcfromtimestampt	isoformattformat(Rtlatest_timestamp_mstincarnationtcurrent_fileR"tmodification_time_ms((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyRYs
 cCs|g}xotj|j�D][}tjj|j|�}x:tD]2}|j|�}|dk	r>|j|�Pq>q>WqW|S(N(	RtlistdirRRRt_CACHE_PATTERNSR"Rtappend(RRR*t	full_pathtpatternR"((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyRrs

cCsOxH|D]@}tjj|j|�tjj|��}tj||�qWdS(N(RRRR tbasenametshutiltmove(RRt	timestampR*tdst((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyR~s
*cCs"x|D]}tj|�qWdS(N(Rtremove(RRR*((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyR�s
cCsa|j|�}ytj|dd�tSWn0tk
r\}tjdj||j��t	SXdS(Ntmodei�s	{0} : {1}(
R RR
tTruetIOErrorRRR'RtFalse(RRRR((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyR�s(t__name__t
__module__RRR tstaticmethodRRRRR(((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyR<s						tStatecBsheZd�Zed��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�ZRS(
cCs||_||_dS(N(t_patht
_timestamp(RRR4((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyR�s	cCs|jS(N(R@(R((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyR4�scCsdS(N((R((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pytdelete�scCsdS(N((R((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pytarchive�scCs|j|jkS(N(R@R4(Rtother((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyt__eq__�scCs|j|jkS(N(R@R4(RRC((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyt__ne__�scCs|j|jkS(N(R@R4(RRC((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyt__lt__�scCs|j|jkS(N(R@R4(RRC((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyt__gt__�scCs|j|jkS(N(R@R4(RRC((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyt__le__�scCs|j|jkS(N(R@R4(RRC((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyt__ge__�s(
R;R<RtpropertyR4RARBRDRERFRGRHRI(((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyR>�s								tStateZipcBseZd�ZRS(cCstj|j�dS(N(RR6R?(R((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyRA�s(R;R<RA(((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyRK�stStateDirectorycBseZd�Zd�ZRS(cCstj|j�dS(N(R2trmtreeR?(R((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyRA�scCs�dj|j�}dj|j�}d}zatj|d�}xHtj|j�D]4}tjj|j|�}|j	||tj
�qRWWd|dk	r�|j�nXtj||�t
j|j�dS(Ns{0}.zip.tmps{0}.ziptw(R'R?RtzipfiletZipFileRR,RRtwritetZIP_DEFLATEDtclosetrenameR2RM(Rtfn_tmptfilenametziphR*R/((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyRB�s(R;R<RARB(((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyRL�s	t
StateArchivercBs,eZd�Zd�Zd�Zd�ZRS(cCs�tjj|t�|_tjj|j�s�ytj|jdd�Wq�tk
r�}|j	t	j
kr�tjd|j|j
�q�q�XndS(NR7i�s	{0} : {1}(RRRRRtisdirRR
R9RR
RRR(RRR((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyR�scCs?|j�}|jdt�x|tD]}|j�q'WdS(s�
        Delete "old" archive directories and .zip archives.  Old
        is defined as any directories or files older than the X
        newest ones.
        treverseN(t_get_archive_statestsortR8t_MAX_ARCHIVED_STATESRA(Rtstateststate((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pytpurge�scCs+|j�}x|D]}|j�qWdS(N(R[RB(RR^R_((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyRB�s
cCs�g}x�tj|j�D]�}tjj|j|�}tj|�}|dk	rt|jt	||j
d���ntj|�}|dk	r|jt||j
d���qqW|S(Ni(
RR,RRRt_ARCHIVE_PATTERNS_DIRECTORYR"RR.RLtgroupt_ARCHIVE_PATTERNS_ZIPRK(RR^R*R/R"((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyR[�s"&(R;R<RR`RBR[(((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyRX�s	
		(RRtreR2RORtazurelinuxagent.common.loggertcommonRtazurelinuxagent.common.utilsRRR]tcompilet
IGNORECASER-R!RaRctobjectRR>RKRLRX(((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/utils/archive.pyt<module>s,Z"