shell bypass 403
UnknownSec Shell
:
/
snap
/
core22
/
current
/
lib
/
python3
/
dist-packages
/
cloudinit
/
cmd
/
__pycache__
/ [
drwxr-xr-x
]
upload
mass deface
mass delete
console
info server
name :
clean.cpython-310.pyc
o 쑛h� � @ s d Z ddlZddlZddlZddlZddlZddlmZmZ ddl m Z ddlmZ ddl mZ ddlmZ ddlmZ dd lmZmZmZ dd lmZmZmZmZmZ e�e�ZdZ edd dddgZ!dgZ"ddd�Z#ddd�Z$dd� Z%dd� Z&edkr�e&� dS dS )zFDefine 'clean' utility and handler as part of cloud-init command line.� N)�settings�sources)� cc_mounts)�uses_systemd)�log_util)�CLOUDINIT_NETPLAN_FILE)�Init)�ProcessExecutionError�runparts�subp)�del_dir�del_file�get_config_logfiles�is_link� write_filez/etc/machine-idz-/etc/NetworkManager/conf.d/99-cloud-init.confz?/etc/NetworkManager/conf.d/30-cloud-init-ip6-addr-gen-mode.confz@/etc/NetworkManager/system-connections/cloud-init-*.nmconnectionz,/etc/systemd/network/10-cloud-init-*.networkz+/etc/network/interfaces.d/50-cloud-init.cfgz)/etc/ssh/sshd_config.d/50-cloud-init.confc C s� | s t jddd�} | jdddddd d � | jddddd � | jdddddd � | jddddddd � | jddg d�g dddd� | S )a# Build or extend an arg parser for clean utility. @param parser: Optional existing ArgumentParser instance representing the clean subcommand which will be extended to support the args of this utility. @returns: ArgumentParser with proper argument configuration. �cleanzJRemove logs, configs and artifacts so cloud-init re-runs on a clean system)�prog�descriptionz-lz--logs� store_trueF�remove_logszRemove cloud-init logs.)�action�default�dest�helpz--machine-idz�Set /etc/machine-id to 'uninitialized ' for golden imagecreation. On next boot, systemd generates a new machine-id. Remove /etc/machine-id on non-systemd environments.)r r r z-rz--rebootz;Reboot system after logs are cleaned so cloud-init re-runs.z-sz--seed�remove_seedz5Remove cloud-init seed directory /var/lib/cloud/seed.z-cz --configs)�all� ssh_config�network� datasource�fstab�+� remove_configzbRemove cloud-init generated config files of a certain type. Config types: all, ssh_config, network)�choicesr �nargsr r )�argparse�ArgumentParser�add_argument��parser� r) �5/usr/lib/python3/dist-packages/cloudinit/cmd/clean.py� get_parser- sX ��� ���r+ Fc C s | � � |rt| j�D ]}t|� q|r.t|��ddg�r.tD ]}t�|�D ]}t|� q&q|rBt|��ddg�rBtD ]}t|� q;|rQt|��ddg�rQt � � |o[t|��ddg�}tj� | jj�sotjdttjd� dS |r�z| �� �� W n tjy� tjd ttjd� Y nw tj�| jjd �}t�d| jj �D ]=}||kr�|s�q�ztj� |�r�t|�s�t|� nt|� W q� ty� } zt�d�|t| ��� W Y d } ~ dS d } ~ ww zt t!j"� W dS t#�y } zt�dt!j"� d| � �� W Y d } ~ dS d } ~ ww )a� Helper which removes artifacts dir and optionally log files. @param: init: Init object to use @param: remove_logs: Boolean. Set True to delete the cloud_dir path. False preserves them. @param: remove_seed: Boolean. Set True to also delete seed subdir in paths.cloud_dir. @param: remove_config: List of strings. Can be any of: all, network, ssh_config, datasource, fstab. @returns: 0 on success, 1 otherwise. r r r r r zArtifacts already cleaned.)�log� log_levelr z%No datasource found, nothing cleaned.�seedz%s/*zCould not remove {0}: {1}N� zFailure during run-parts of z: )$�read_cfgr �cfgr �set�intersection�GEN_NET_CONFIG_FILES�glob�GEN_SSH_CONFIG_FILESr � cleanup_fstab�os�path�isdir�paths� cloud_dirr � multi_log�LOG�logging�INFO�fetchr r �DataSourceNotFoundException�joinr r �OSError�error�format�strr r �CLEAN_RUNPARTS_DIR� Exception) �initr r r! �log_filer9 �conf�clean_datasource� seed_path�er) r) r* �remove_artifactsr sx �� �� �� �������rP c C s� t g d�}t||j|j|j�}|jr!t� rttddd� nt t� |dkr[|j r[|jjdddd �}z t |d d� W |S tyZ } zt�d�|t|��� d }W Y d}~|S d}~ww |S )z3Handle calls to 'cloud-init clean' as a subcommand.)�ds_depszuninitialized i$ )�moder �reboot�nowN)rR �delay�messageF)�capturez-Could not reboot this system using "{0}": {1}r/ )r rP r r r! � machine_idr r �ETC_MACHINE_IDr rS �distro�shutdown_commandr r r rE rF rG )�name�argsrJ � exit_code�cmdrO r) r) r* �handle_clean_args� s4 �������r` c C s t � } t�td| �� �� dS )z4Tool to collect and tar all cloud-init related logs.r N)r+ �sys�exitr` � parse_argsr'