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/distros/__pycache__/ug_util.cpython-310.pyc
o

�Ad0'�@sNddlmZddlmZmZe�e�Zdd�Zddd�Z	dd	�Z
d
d
d�ZdS)�)�log)�
type_utils�utilcCst|t�r|���d�}t|t�rgi}|D]O}t|t�rN|��D],\}}t|ttf�s4tdt�	|���t|t�rC|�
|g��|�q |�
|g��|�q qt|t�r\||vr[g||<qtdt�	|���|}i}t|t�r�|��D]\}}t
�|�||<qr|Stdt�	|���)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)�grp_cfg�	c_grp_cfg�i�k�v�groups�grp_name�grp_members�r�;/usr/lib/python3/dist-packages/cloudinit/distros/ug_util.py�_normalize_groupssF


��
�
��
���rNcCs*t|t�rBg}|��D]3\}}t|ttttf�r%t�|�r$|�	t|��qt|t�r4||d<|�	|�qt
dt�|�|f��|}n
t|t�rLt�
|�}i}|D]@}t|ttf�rlt�|�D]}|rj||vrji||<q^qPt|t�r�|�dd�}|�|�p}i}	t�|	|g�||<qPt
dt�|���|r�i}
|��D]!\}}i}
|��D]\}}|�dd���}|r�||
|<q�|
|
|<q�|
}d}|r�d|vr�|�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�floatrr�is_truerr
rrrr
�
uniq_merge�pop�get�
mergemanydict�replacer�copy�join)�u_cfg�def_user_cfg�ad_ucfgrr�users�user_config�u�n�prev_config�c_users�uname�uconfig�	c_uconfig�def_user�
def_config�
def_groups�
parsed_config�
parsed_groups�users_groupsrrr�_normalize_usersHs~

�
��

��
���


�r?cCsd|si}i}d|vr1|dr1|d}t|t�r!d|i}t�d�nt|t�s1t�dt�|��i}i}z|��}WntyGt�d�Ynwt	�
||g�}|�dg�}t|ttf�ret�dt|��nt|t
�sut�dt�|��g}|r�t|t
�r�|�dd	i�nt|t�r�t|��d	d
�|d	<n	t|t�r�|d7}i}d|vr�t|d�}t||�}||fS)
N�userrzrDEPRECATED: 'user' of type string is deprecated and will be removed in a future release. Use 'users' list instead.z?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.r0zlDEPRECATED: 'users' of type %s is deprecated and will be removed in a future release. Use '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)rr�LOG�warningrrr�get_default_user�NotImplementedErrorrr)r(�typer
rrr?)�cfg�distro�old_user�distro_user_config�default_user_config�
base_usersrr0rrr�normalize_users_groups�sb
�
���	�
�



rLcCsZ|s||fSdd�}tt||����}|s||fSt|�d}||}|�dd�||fS)NcSs |d}|r
d|vrdS|dS)N�rFr)�entry�configrrr�	safe_find�sz"extract_default.<locals>.safe_findrr)r�filterrr
r')r0�default_name�default_configrP�	tmp_usersrrOrrr�extract_default�srU)N)NN)�	cloudinitr�loggingrr�	getLogger�__name__rArr?rLrUrrrr�<module>s

1\M