o
    f                  
   @   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	}|rd
 v sgd v rmt	d|
 |dvryt	d|
|f |d u rt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    
"