HEX
Server: Apache/2.4.65 (Debian)
System: Linux kubikelcreative 5.10.0-35-amd64 #1 SMP Debian 5.10.237-1 (2025-05-19) x86_64
User: www-data (33)
PHP: 8.4.13
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/cloudinit/config/__pycache__/cc_migrator.cpython-39.pyc
a

��`L�@sXdZddlZddlZddlmZddlmZddlmZeZdd�Z	dd	�Z
d
d�ZdS)a%
Migrator
--------
**Summary:** migrate old versions of cloud-init data to new

This 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.

**Internal name:** ``cc_migrator``

**Module frequency:** per always

**Supported distros:** all

**Config keys**::

    migrate: <true/false>
�N)�helpers)�util)�
PER_ALWAYSc
Cs�|j�d�|j�d�f}d}|D]�}|r tj�|�s6q t�|�D]f}tj�||�}tj�|�r@tj�	|�\}}t
�|�}||kr@tj�|||�}	t�
||	�|d7}q@q |S)N�semr�)�paths�	get_ipath�	get_cpath�os�path�exists�listdir�join�isfile�splitextr�canon_sem_name�shutil�move)
�cloudrZam_adjusted�sem_path�p�	full_path�name�ext�
canon_name�new_path�r�>/usr/lib/python3/dist-packages/cloudinit/config/cc_migrator.py�_migrate_canon_sems(s
rcCs$dddgi}|j�d�|j�d�f}|D]�}|r(tj�|�s>q(t�|�}|��D]�\}}|t�	|�g}g}	t�
|�D]2}
tj�|
�\}}||vrttj�|
�rt|	�
|
�qt|	D]n}
t�tj�||
��tj�|
�\}
}|D]@}|�d|
|�|�||��Wd�q�1�s0Yq�q�qPq(dS)Nzapt-update-upgradez
apt-configurezpackage-update-upgrade-installrz*Migrating %s => %s with the same frequency)rrr	r
rrr�FileSemaphores�itemsrr
rr�appendr�del_filer�debug�lock)r�logZ
legacy_adjustrrZ
sem_helper�mod_nameZ
migrate_toZ	possiblesZ
old_existsrrZ_ext�_name�freq�mrrr�_migrate_legacy_sems:s4��
�r*cCsJt�|dd�}t�|�s(|�d|�dSt|�}|�d|�t||�dS)NZmigrateTz,Skipping module named %s, migration disabledz8Migrated %s semaphore files to there canonicalized names)r�get_cfg_option_str�translate_boolr#rr*)r�cfgrr%�_argsZ
do_migrateZ
sems_movedrrr�handleWs
�r/)�__doc__r
r�	cloudinitrr�cloudinit.settingsr�	frequencyrr*r/rrrr�<module>s