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/distros/__pycache__/ug_util.cpython-39.pyc
a

��`7+�@sVddlmZddlmZddlmZe�e�Zdd�Zd
dd�Z	d	d
�Z
ddd�ZdS)�)�log)�
type_utils)�utilcCs\t|t�r|���d�}t|t��ri}|D]�}t|t�r�|��D]�\}}||vr�t|t�rjt|�||<q�t|t�r�|g||<q�tdt�	|���qBt|t�r�||�
|�qBt|t�r�||�|�qBtdt�	|���qBq,t|t�r�||vr�g||<q,tdt�	|���q,|}i}t|t��rF|��D]\}}t�
|�||<�q*ntdt�	|���|S)N�,zBad group member type %szUnknown group name type %sz@Group config must be list, dict  or string types only and not %s)�
isinstance�str�strip�split�list�dict�items�	TypeErrorr�obj_name�extend�appendr�uniq_merge_sorted)Zgrp_cfgZ	c_grp_cfg�i�k�v�groupsZgrp_nameZgrp_members�r�;/usr/lib/python3/dist-packages/cloudinit/distros/ug_util.py�_normalize_groupssJ



�

�


��rNcCs~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��rBd|v�r|�d�}|�|��pi}	t�|	|g�||<n"|�d��p,i}	t�|	|g�|d<q�t
dt�|���q�|�r�i}
|��D]H\}}i}
|��D](\}}|�dd���}|�r|||
|<�q||
|
|<�qh|
}d}|�r>d|v�r>|�d�}|�r>|��}|�d�}|�dg�}|�|i�}|�dg�}t�
||�}d�|�|d<t�|||g�||<|�rz|��D],\}}|�rn||k�rnd	|d<nd
|d<�qL|S)N�namez(Unmappable user value type %s for key %s�defaultzDUser config must be dictionary/list  or string types only and not %s�-�_rrTF)rrr�bool�int�floatrr�is_truerr
rrrr
�
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_usersVs�


�



���

�

r,cCsJ|si}i}i}d|vr$t|d�}i}d|vrr|drr|d}t|t�rRd|i}t|t�srt�dt�|��i}i}z|��}Wnt	y�t�d�Yn0t
�||g�}|�dg�}t|t
ttf�s�t�dt�|��g}|�r8t|t
��r|�ddi�n6t|t��r$t|��dd	�|d<nt|t��r8|d
7}t||�}||fS)Nr�userrz?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\Format for 'users' key must be a comma separated string or a dictionary or a list and not %srTz,default)rrrr�LOG�warningrr�get_default_user�NotImplementedErrorrr$r#r
rr,)�cfg�distror(rZold_userZdistro_user_configZdefault_user_configZ
base_usersrrr�normalize_users_groups�sL
�
��
r4cCs^|si}dd�}|��}tt||��}|s2||fSt|�d}||}|�dd�||fSdS)NcSs$|d}|rd|vrdS|dSdS)N�rFr)�entry�configrrr�	safe_findsz"extract_default.<locals>.safe_findrr)rr�filterr
r")r(�default_nameZdefault_configr8Z	tmp_usersrr7rrr�extract_default
sr;)N)NN)�	cloudinitr�loggingrr�	getLogger�__name__r.rr,r4r;rrrr�<module>s

9
kI