Your IP : 216.73.217.13


Current Path : /lib/python3/dist-packages/cloudinit/config/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/cloudinit/config/__pycache__/cc_migrator.cpython-38.pyc

U

�Ad�	@s�UdZddlZddlZddlmZddlmZmZddlm	Z	ddl
mZddlm
Z
mZddlmZd	Zd
gZeZddd
eedgegd�Ze
ed<ee�Zdd�Zdd�Zeee	eedd�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.
�allZcc_migratorZMigratorz.Migrate old versions of cloud-init data to newz6# Do not migrate cloud-init semaphores
migrate: false
)�id�name�titleZdescription�distrosZexamples�	frequencyZactivate_by_schema_keys�metac
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�shutilZmove)
�cloudrZam_adjusted�sem_path�p�	full_pathrZextZ
canon_name�new_path�r$�>/usr/lib/python3/dist-packages/cloudinit/config/cc_migrator.py�_migrate_canon_sems,s
r&c
Csdddgi}|j�d�|j�d�f}|D]�}|r(tj�|�s>q(t�|�}|��D]�\}}|t�	|�g}g}	t�
|�D]2}
tj�|
�\}}||krttj�|
�rt|	�
|
�qt|	D]X}
t�tj�||
��tj�|
�\}
}|D]*}|�d|
|�|�||��W5QRXq�q�qPq(dS)Nzapt-update-upgradez
apt-configurezpackage-update-upgrade-installrz*Migrating %s => %s with the same frequency)rrrrrrrZFileSemaphores�itemsrrrr�appendrZdel_filer�debug�lock)r�logZ
legacy_adjustrr Z
sem_helper�mod_nameZ
migrate_toZ	possiblesZ
old_existsr!rZ_ext�_nameZfreq�mr$r$r%�_migrate_legacy_sems>s8��
�r/)r�cfgrr+�args�returncCsJt�|dd�}t�|�s(|�d|�dSt|�}|�d|�t||�dS)NZmigrateTz,Skipping module named %s, migration disabledz8Migrated %s semaphore files to there canonicalized names)rZget_cfg_option_strZtranslate_boolr)r&r/)rr0rr+r1Z
do_migrateZ
sems_movedr$r$r%�handle\s
�r3)�__doc__rrZloggingrZ	cloudinitrrZcloudinit.cloudrZcloudinit.configrZcloudinit.config.schemarrZcloudinit.settingsr	ZMODULE_DESCRIPTIONrrr�__annotations__r&r/�str�listr3r$r$r$r%�<module>s<��