3 \¼meü&ã@sJddlZddlmZmZejeƒZdd„Zd dd„Zdd„Z d d d „Z dS) éN)Ú type_utilsÚutilcCs$t|tƒr|jƒjdƒ}t|tƒrØi}x¬|D]¤}t|tƒr¢x”|jƒD]X\}}t|ttfƒsltdtj |ƒƒ‚t|tƒrŠ|j |gƒj |ƒqD|j |gƒj |ƒqDWq,t|tƒr¾||krÐg||<q,tdtj |ƒƒ‚q,W|}i}t|tƒrx6|jƒD]\}}t j|ƒ||<qòWntdtj |ƒƒ‚|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_nameZ grp_members©rú/usr/lib/python3.6/ug_util.pyÚ_normalize_groupss8        rcCsXt|tƒrŠg}xt|jƒD]h\}}t|ttttfƒrLtj|ƒr€|j t|ƒƒqt|tƒrj||d<|j |ƒqt dt j |ƒ|fƒ‚qW|}nt|tƒržtj |ƒ}i}x’|D]Š}t|ttfƒräxvtj|ƒD]}|rÆ||krÆi||<qÆWq¨t|tƒr |jddƒ}|j|ƒp i} tj| |gƒ||<q¨t dt j |ƒƒ‚q¨W|rži} xX|jƒD]L\} } i} x4| jƒD](\}}|jddƒjƒ}|r`|| |<q`W| | | <qJW| }d}|r&d|kr&|jdƒ}|r&|jƒ}|jdƒ}|jdgƒ}|j|iƒ}|jdgƒ}tj ||ƒ}dj|ƒ|d<tj|||gƒ||<x,|jƒD] \} } |rF| |knd | d<q0W|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)rr r ÚboolÚintÚfloatrrZis_truerr rr rr Z uniq_mergeÚpopÚgetÚ mergemanydictÚreplacerÚcopyÚjoin)Zu_cfgZ def_user_cfgZad_ucfgrrÚusersZ user_configÚuÚnZ prev_configZc_usersÚunameZuconfigZ c_uconfigZdef_userZ def_configZ def_groupsZ parsed_configZ parsed_groupsZ users_groupsrrrÚ_normalize_usersIsl                r*c Cs‚|si}i}d|krh|drh|d}t|tƒrHd|i}tjddddn t|tƒshtjdtj|ƒƒi}i}y |j ƒ}Wnt k r–tjdƒYnXtj ||gƒ}|j d gƒ}t|ttfƒrÜtjd t |ƒ›dd dn"t|tƒsþtjd tj|ƒƒg}|rVt|tƒr |jdd iƒn6t|tƒrBt|ƒj d dƒ|d <nt|tƒrV|d7}i}d|krpt|dƒ}t||ƒ}||fS)NÚuserrz'user' of type stringz22.2zUse 'users' list instead.)Z deprecatedZdeprecated_versionZ extra_messagez?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'users' of type zUse '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)rrrZ deprecater ÚLOGZwarningrr Zget_default_userÚNotImplementedErrorr"r!Útyper rrr*)ZcfgZdistroZold_userZdistro_user_configZdefault_user_configZ base_usersrr&rrrÚnormalize_users_groups¥s\                 r/cCsZ|s ||fSdd„}tt||jƒƒƒ}|s2||fSt|ƒd}||}|jddƒ||fS)NcSs"|d}| sd|krdS|dS)NérFr)ÚentryÚconfigrrrÚ safe_find÷sz"extract_default..safe_findrr)r Úfilterr r r )r&Z default_nameZdefault_configr3Z tmp_usersrr2rrrÚextract_defaultós  r5)N)NN) ZloggingZ cloudinitrrZ getLoggerÚ__name__r,rr*r/r5rrrrÚ s  1 \N