관리-도구
편집 파일: clean.cpython-39.pyc
a ����'�Dg�����������������������@���s����d�Z�ddlZddlZddlZddlZddlmZ�ddlmZ�ddl m Z �ddlmZ�ddl mZ�ddlmZmZmZ�dd lmZmZmZmZmZ�d Zeddd ddgZdgZddd�Zddd�Zdd��Zdd��Ze dkr�e���dS�)zFDefine 'clean' utility and handler as part of cloud-init command line.�����N)�settings)�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����|�st�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�+� 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%����7/usr/lib/python3.9/site-packages/cloudinit/cmd/clean.py� get_parser*���sX���� ��� ���r'���Fc����������� ������C���s���|������|r$t|�j�D�]}t|��q|r\t|��ddg�r\tD�]}t�|�D�]}t|��qLq>|r�t|��ddg�r�tD�]}t|��qvt j �|�jj �s�dS�t j �|�jj d�}t�d|�jj ��D�]~}||kr�|s�q�z*t j �|�r�t|�s�t|��nt|��W�q��t�y8�}�z&t�d�|t|����W�Y�d}~�d S�d}~0�0�q�zttj��W�n@�t�y��}�z&t�d tj��d|�����W�Y�d}~d S�d}~0�0�dS�)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. @returns: 0 on success, 1 otherwise. r���r���r���r���Zseedz%s/*zCould not remove {0}: {1}N����zFailure during run-parts of z: )Zread_cfgr���Zcfgr����set�intersection�GEN_NET_CONFIG_FILES�glob�GEN_SSH_CONFIG_FILES�os�path�isdir�pathsZ cloud_dir�joinr ���r ����OSErrorr����error�format�strr���r���ZCLEAN_RUNPARTS_DIR� Exception) �initr���r���r���Zlog_filer/���ZconfZ seed_path�er%���r%���r&����remove_artifactsm���sD���� � �r:���c�������������� ���C���s����t�g�d�}t||j|j|j�}|jrBt��r:ttddd��nt t��|dkr�|j r�|jjdddd �}zt |d d��W�n>�ty��}�z&t�d�|t|����d }W�Y�d}~n d}~0�0�|S�)z3Handle calls to 'cloud-init clean' as a subcommand.)Zds_depszuninitialized i$��)�moder����rebootZnowN)r;���Zdelay�messageF)Zcapturez-Could not reboot this system using "{0}": {1}r(���)r���r:���r���r���r���Z machine_idr���r����ETC_MACHINE_IDr���r<���ZdistroZshutdown_commandr ���r���r���r4���r5���r6���)�name�argsr8���Z exit_code�cmdr9���r%���r%���r&����handle_clean_args����s,���� ����rB���c������������������C���s���t���}�t�td|�������dS�)z4Tool to collect and tar all cloud-init related logs.r���N)r'����sys�exitrB���� parse_argsr#���r%���r%���r&����main����s����rF����__main__)N)FN)!�__doc__r ���r,���r.���rC���Z cloudinitr���Zcloudinit.distrosr���Z cloudinit.logr���Zcloudinit.net.netplanr���Zcloudinit.stagesr���Zcloudinit.subpr���r���r ���Zcloudinit.utilr ���r���r���r ���r���r>���r+���r-���r'���r:���rB���rF����__name__r%���r%���r%���r&����<module>���s6���� � C 2