name : ug_util.cpython-39.pyc
a

'�Dg'�@sNddlZddlmZmZmZe�e�Zdd�Zddd�Z	dd�Z
dd	d
�ZdS)
�N)�	lifecycle�
type_utils�utilcCst|t�r|���d�}t|t�r�i}|D]�}t|t�r�|��D]X\}}t|ttf�shtdt�	|���t|t�r�|�
|g��|�q@|�
|g��|�q@q*t|t�r�||vr�g||<q*tdt�	|���q*|}i}t|t��r|��D]\}}t
�|�||<q�ntdt�	|���|S)N�,zBad group member type %szUnknown group name type %sz@Group config must be list, dict or string type only but found %s)�
isinstance�str�strip�split�list�dict�items�	TypeErrorr�obj_name�
setdefault�extend�appendr�uniq_merge_sorted)Zgrp_cfgZ	c_grp_cfg�i�k�v�groupsZgrp_nameZgrp_members�r�=/usr/lib/python3.9/site-packages/cloudinit/distros/ug_util.py�_normalize_groupssB


��


���rcCs>t|t�r�g}|��D]h\}}t|ttttf�rJt�|�r~|�	t|��qt|t�rh||d<|�	|�qt
dt�|�|f��q|}nt|t�r�t�
|�}i}|D]�}t|ttf�r�t�|�D]}|r�||vr�i||<q�q�t|t��r|�dd�}|�|�p�i}	t�|	|g�||<q�t
dt�|���q�|�r�i}
|��D]H\}}i}
|��D](\}}|�dd���}|�rN||
|<�qN|
|
|<�q:|
}d}|�rd|v�r|�d�}|�r|��}|�d�}|�dg�}|�|i�}|�dg�}t�
||�}d�|�|d<t�|||g�||<|��D] \}}|�r.||knd	|d<�q|S)
N�namez(Unmappable user value type %s for key %s�defaultzDUser config must be dictionary/list or string  types only and not %s�-�_rrF)rrr�bool�int�floatrrZis_truerr
rrrr
Z
uniq_merge�pop�get�
mergemanydict�replacer�copy�join)Zu_cfgZdef_user_cfgZad_ucfgrr�usersZuser_config�u�nZprev_configZc_users�unameZuconfigZ	c_uconfigZdef_userZ
def_configZ
def_groupsZ
parsed_configZ
parsed_groupsZusers_groupsrrr�_normalize_usersIsv


��

��

�r+cCs~|si}i}d|vrh|drh|d}t|t�rHd|i}tjdddd�n t|t�sht�dt�|��i}i}z|�	�}Wnt
y�t�d�Yn0t�||g�}|�
d	g�}t|ttf�r�tjd
t|���ddd�n t|t�s�t�dt�|��g}|�rRt|t��r|�dd
i�n6t|t��r>t|��
d
d�|d
<nt|t��rR|d7}i}d|v�rlt|d�}t||�}||fS)N�userrz'user' of type stringz22.2zUse 'users' list instead.)Z
deprecatedZdeprecated_versionZ
extra_messagez?Format for 'user' key must be a string or dictionary and not %sziDistro has not implemented default user access. No distribution provided default user will be normalized.r'z'users' of type zUse 'users' as a list.z^Format for 'users' key must be a comma-separated string or a dictionary or a list but found %srTz,defaultr)rrrZ	deprecater�LOGZwarningrrZget_default_user�NotImplementedErrorrr#r"�typer
rrr+)ZcfgZdistroZold_userZdistro_user_configZdefault_user_configZ
base_usersrr'rrr�normalize_users_groups�sf
�
��
�
�

r0cCsZ|s||fSdd�}tt||����}|s2||fSt|�d}||}|�dd�||fS)NcSs |d}|rd|vrdS|dS)N�rFr)�entry�configrrr�	safe_find�sz"extract_default.<locals>.safe_findrr)r�filterrr
r!)r'Zdefault_nameZdefault_configr4Z	tmp_usersrr3rrr�extract_default�sr6)N)NN)ZloggingZ	cloudinitrrrZ	getLogger�__name__r-rr+r0r6rrrr�<module>s
1
\N

© 2025 Cubjrnet7