CasperSecurity

Current Path : /lib/python3/dist-packages/cloudinit/cmd/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/cloudinit/cmd/__pycache__/clean.cpython-310.pyc

o

쑛h��@sdZddlZddlZddlZddlZddlZddlmZmZddl	m
Z
ddlmZddl
mZddlmZddlmZdd	lmZmZmZdd
lmZmZmZmZmZe�e�ZdZ edd
dddgZ!dgZ"ddd�Z#ddd�Z$dd�Z%dd�Z&edkr�e&�dSdS)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	Cs�|s	tjddd�}|jdddddd	d
�|jddddd
�|jdddddd
�|jddddddd
�|jddgd�gdddd�|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.)rrrz-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�nargsrr)�argparse�ArgumentParser�add_argument��parser�r)�5/usr/lib/python3/dist-packages/cloudinit/cmd/clean.py�
get_parser-sX	���
���r+Fc
Cs|��|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|����Wntjy�tjd	ttjd�Ynwtj�|jjd
�}t�d|jj�D]=}||kr�|s�q�ztj�
|�r�t|�s�t|�nt|�Wq�ty�}	zt�d�|t|	���WYd
}	~	dSd
}	~	wwzt t!j"�WdSt#�y}	zt�dt!j"�d|	���WYd
}	~	dSd
}	~	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.
    rrrrrzArtifacts already cleaned.)�log�	log_levelrz%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�fetchrr�DataSourceNotFoundException�joinrr�OSError�error�format�strr
r�CLEAN_RUNPARTS_DIR�	Exception)
�initrrr!�log_filer9�conf�clean_datasource�	seed_path�er)r)r*�remove_artifactsrsx

��
��
��
�������rPc
Cs�tgd�}t||j|j|j�}|jr!t�rttddd�nt	t�|dkr[|j
r[|jjdddd	�}z	t
|d
d�W|StyZ}zt�d�|t|���d
}WYd}~|Sd}~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/)rrPrrr!�
machine_idrr�ETC_MACHINE_IDr
rS�distro�shutdown_commandrr	rrErFrG)�name�argsrJ�	exit_code�cmdrOr)r)r*�handle_clean_args�s4
�������r`cCst�}t�td|����dS)z4Tool to collect and tar all cloud-init related logs.rN)r+�sys�exitr`�
parse_argsr'r)r)r*�main�srd�__main__)N)FN)'�__doc__r$r5r?r8ra�	cloudinitrr�cloudinit.configr�cloudinit.distrosr�
cloudinit.logr�cloudinit.net.netplanr�cloudinit.stagesr�cloudinit.subpr	r
r�cloudinit.utilrr
rrr�	getLogger�__name__r>rYr4r6r+rPr`rdr)r)r)r*�<module>s@
�	�

EH
�
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY