o
    x[hr  ã                
   @   s–   U d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ dd	geg d
œZeed< e e¡ZdZdZdededededdf
dd„ZdS )z,Users and Groups: Configure users and groupsé    N)ÚCloud)ÚConfig)Ú
MetaSchema)Úug_util)ÚPER_INSTANCEÚcc_users_groupsÚall)ÚidÚdistrosÚ	frequencyÚactivate_by_schema_keysÚmeta)Úno_create_homeÚsystem)Ússh_authorized_keysÚssh_import_idÚssh_redirect_userÚnameÚcfgÚcloudÚargsÚreturnc              
      s4  t  ||j¡\}}t  |¡\}}| ¡ pg }| ¡ D ]\} }	|j | |	¡ q| ¡ D ]m\}
‰ ‡ fdd„tD ƒ}‡ fdd„tD ƒ}|rW|rWt	d|
› dd 
|¡› dd 
|¡› �ƒ‚ˆ  dd	¡}|r�d
ˆ v sgdˆ v rmt	d|
 ƒ‚|dvryt	d|
|f ƒ‚|d u r…t d||
¡ n|ˆ d< |ˆ d< |jj|
fi ˆ ¤Ž q*d S )Nc                    ó   g | ]	}ˆ   |¡r|‘qS © ©Úget©Ú.0Úkey©Úconfigr   úB/usr/lib/python3/dist-packages/cloudinit/config/cc_users_groups.pyÚ
<listcomp>-   ó    zhandle.<locals>.<listcomp>c                    r   r   r   r   r   r   r!   r"   .   r#   zNot creating user z	. Key(s) z, z cannot be provided with r   Fr   r   zdNot creating user %s. ssh_redirect_user cannot be provided with ssh_import_id or ssh_authorized_keys)TÚdefaultzfNot creating user %s. Invalid value of ssh_redirect_user: %s. Expected values: true, default or false.zzIgnoring ssh_redirect_user: %s for %s. No default_user defined. Perhaps missing cloud configuration users:  [default, ..].Úcloud_public_ssh_keys)r   Únormalize_users_groupsÚdistroÚextract_defaultÚget_public_ssh_keysÚitemsÚcreate_groupÚNO_HOMEÚ	NEED_HOMEÚ
ValueErrorÚjoinÚpopÚLOGÚwarningÚcreate_user)r   r   r   r   ÚusersÚgroupsÚdefault_userÚ_user_configÚ
cloud_keysÚmembersÚuserÚno_homeÚ	need_homer   r   r   r!   Úhandle#   sL   ÿÿþÿþÿú	Ûr=   )Ú__doc__ÚloggingÚcloudinit.cloudr   Úcloudinit.configr   Úcloudinit.config.schemar   Úcloudinit.distrosr   Úcloudinit.settingsr   r   Ú__annotations__Ú	getLoggerÚ__name__r1   r,   r-   ÚstrÚlistr=   r   r   r   r!   Ú<module>   s    ü
"