Your IP : 216.73.217.13


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

U

�Ad0'�@sNddlmZddlmZmZe�e�Zdd�Zddd�Z	dd	�Z
d
d
d�ZdS)�)�log)�
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�||kr�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/dist-packages/cloudinit/distros/ug_util.py�_normalize_groupssB


��


���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�||kr�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|k�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_usersHsv


��

��

�r+cCsp|si}i}d|krb|drb|d}t|t�rBd|i}t�d�n t|t�sbt�dt�|��i}i}z|��}Wntk
r�t�d�YnXt	�
||g�}|�dg�}t|ttf�r�t�dt|��n t|t
�s�t�dt�|��g}|�rDt|t
��r|�dd	i�n6t|t��r0t|��d	d
�|d	<nt|t��rD|d7}i}d|k�r^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.r'zlDEPRECATED: '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�LOGZwarningrrrZget_default_user�NotImplementedErrorrr#r"�typer
rrr+)ZcfgZdistroZold_userZdistro_user_configZdefault_user_configZ
base_usersrr'rrr�normalize_users_groups�s`
�
��
�
�

r0cCsZ|s||fSdd�}tt||����}|s2||fSt|�d}||}|�dd�||fS)NcSs |d}|rd|krdS|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)Z	cloudinitrZloggingrrZ	getLogger�__name__r-rr+r0r6rrrr�<module>s
1
\M