HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/cloudinit/config/__pycache__/cc_migrator.cpython-310.pyc
o

�Ad�@s�UdZddlZddlZddlmZddlmZmZddlm	Z	ddl
mZddlm
Z
mZddlmZd	Zd
gZeZddd
eedgegd�Ze
ed<ee�Zdd�Zdd�Zdedede	dededdfdd�ZdS)z8Migrator: Migrate old versions of cloud-init data to new�N)�Logger)�helpers�util)�Cloud)�Config)�
MetaSchema�get_meta_doc)�
PER_ALWAYSaEThis module handles moving old versions of cloud-init data to newer ones.
Currently, it only handles renaming cloud-init's per-frequency semaphore files
to canonicalized name and renaming legacy semaphore names to newer ones. This
module is enabled by default, but can be disabled by specifying ``migrate:
false`` in config.
�all�cc_migrator�Migratorz.Migrate old versions of cloud-init data to newz6# Do not migrate cloud-init semaphores
migrate: false
)�id�name�title�description�distros�examples�	frequency�activate_by_schema_keys�metac
Cs�|j�d�|j�d�f}d}|D]D}|rtj�|�sqt�|�D]3}tj�||�}tj�|�rStj�	|�\}}t
�|�}||krStj�|||�}	t�
||	�|d7}q q|S)N�semr�)�paths�	get_ipath�	get_cpath�os�path�exists�listdir�join�isfile�splitextr�canon_sem_name�shutil�move)
�cloudr�am_adjusted�sem_path�p�	full_pathr�ext�
canon_name�new_path�r-�>/usr/lib/python3/dist-packages/cloudinit/config/cc_migrator.py�_migrate_canon_sems,s"
��	r/cCs"dddgi}|j�d�|j�d�f}|D]z}|rtj�|�sqt�|�}|��D]e\}}|t�	|�g}g}	t�
|�D]}
tj�|
�\}}||vrStj�|
�rS|	�
|
�q:|	D]6}
t�tj�||
��tj�|
�\}
}|D]}|�d|
|�|�||��Wd�n1s�wYqlqVq(qdS)Nzapt-update-upgradez
apt-configurezpackage-update-upgrade-installrz*Migrating %s => %s with the same frequency)rrrrrrr�FileSemaphores�itemsr"rr!r �appendr�del_filer�debug�lock)r%�log�
legacy_adjustrr'�
sem_helper�mod_name�
migrate_to�	possibles�
old_existsr(r�_ext�_name�freq�mr-r-r.�_migrate_legacy_sems>sB��

��������rAr�cfgr%r6�args�returncCsJt�|dd�}t�|�s|�d|�dSt|�}|�d|�t||�dS)N�migrateTz,Skipping module named %s, migration disabledz8Migrated %s semaphore files to there canonicalized names)r�get_cfg_option_str�translate_boolr4r/rA)rrBr%r6rC�
do_migrate�
sems_movedr-r-r.�handle\s
�rJ)�__doc__rr#�loggingr�	cloudinitrr�cloudinit.cloudr�cloudinit.configr�cloudinit.config.schemarr�cloudinit.settingsr	�MODULE_DESCRIPTIONrrr�__annotations__r/rA�str�listrJr-r-r-r.�<module>sJ�������