HEX
Server: Apache/2.4.62 (Unix) OpenSSL/1.1.1k
System: Linux ns565604.ip-54-39-133.net 4.18.0-553.50.1.el8_10.x86_64 #1 SMP Tue Apr 15 08:09:22 EDT 2025 x86_64
User: greer489 (1034)
PHP: 8.3.19
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/cloudinit/__pycache__/temp_utils.cpython-36.pyc
3

\�me��@s�ddlZddlZddlZddlZddlZddlZddlmZeje	�Z
dadZdZ
ded�dd�Zded�d	d
�Zdd�Zejdd
d��Zded�dd�Zded�dd�ZdS)�N)�utilz/run/cloud-init/tmpz/var/tmp/cloud-initF)�	needs_execCs:|dk	r|S|rtStrtStj�dkr,tStjjdd�S)NrZTMPDIRz/tmp)�_EXE_ROOT_TMPDIR�_TMPDIR�os�getuid�_ROOT_TMPDIR�environ�get)�odirr�r� /usr/lib/python3.6/temp_utils.py�get_tmp_ancestorsrcCs^t||�}tjj|�s,tj|�tj|d�|rHtj|d�rHtj	d|�|dkrZ|rZ|a
|S)a%Return the proper 'dir' argument for tempfile functions.

    When root, cloud-init will use /run/cloud-init/tmp to avoid
    any cleaning that a distro boot might do on /tmp (such as
    systemd-tmpfiles-clean).

    If the caller of this function (mkdtemp or mkstemp) was provided
    with a 'dir' argument, then that is respected.

    @param odir: original 'dir' arg to 'mkdtemp' or other.
    @param needs_exe: Boolean specifying whether or not exe permissions are
        needed for tempdir. This is needed because /run is mounted noexec.
    i�ZnoexeczDRequested temporal dir with exe permission `%s` is mounted as noexecN)rr�path�isdir�makedirs�chmodrZ
has_mount_opt�LOGZwarningr)rr�tdirrrr
�_tempfile_dir_args

rcsTt|jdd�|jdd��|d<tjf|��dd�}|�_�fdd�}t�d|��S)	N�dirrFcSsFytj|�Wn2tk
r@}z|jtjkr0|�WYdd}~XnXdS)N)r�unlink�OSError�errno�ENOENT)r�errr
�_unlink_if_existsIs
z0ExtendedTemporaryFile.<locals>._unlink_if_existscs�j�j�dS)N)r�namer)�fhrr
�
unlink_nowWsz)ExtendedTemporaryFile.<locals>.unlink_nowr)r�pop�tempfileZNamedTemporaryFiler�setattr)�kwargsrrr)rr
�ExtendedTemporaryFile@sr$c
ks*tf|�}z
|VWdtj||d�XdS)N)�
ignore_errors)�mkdtemp�shutilZrmtree)Zrmtree_ignore_errorsr#rrrr
�tempdir^s

r(cKst||�}tjfd|i|��S)Nr)rr!r&)rrr#rrr
r&js
r&cKst||�}tjfd|i|��S)Nr)rr!�mkstemp)rrr#rrr
r)os
r))NF)NF)F)NF)NF)�
contextlibrZloggingrr'r!Z	cloudinitrZ	getLogger�__name__rrrr�boolrrr$�contextmanagerr(r&r)rrrr
�<module>s"
"