ó
    x[hi*  ã                   óè   • S SK r S SKrS SKJr  S SKJrJrJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJr  \ R                   " \5      rSrS	r " S
 S\R*                  5      rSS jr\S4S jr SS jrSS jrg)é    N)ÚList)ÚdistrosÚsubpÚutil)ÚApt)ÚPackageManager)ÚHostnameConf)ÚCLOUDINIT_NETPLAN_FILEa8  # This file is generated from information provided by the datasource.  Changes
# to it will not persist across an instance reboot.  To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
z/etc/default/localec                   óÐ   ^ • \ rS rSrSrS\S.r\S   \S.\S   \SS	.S.rS
r	Sr
U 4S jrS rSS jrU 4S jrS rS rS rSS jrS rS rS S jrS rS\S\S\S\4S jrSrU =r$ )!ÚDistroé!   z/etc/hostnamez'/etc/network/interfaces.d/50-cloud-init)ÚeniÚnetplanr   )Úeni_pathÚ
eni_headerr   T)Únetplan_pathÚnetplan_headerÚpostcmdsz/var/lib/dhcpzdhclient\.\w+\.leasesc                 óÀ   >• [         TU ]  XU5        SU l        SU l        S U l        [
        R                  " U R                  U5      U l        U R                  /U l	        g )NÚdebianzC.UTF-8)
ÚsuperÚ__init__ÚosfamilyÚdefault_localeÚsystem_localer   Úfrom_configÚ_runnerÚaptÚpackage_managers)ÚselfÚnameÚcfgÚpathsÚ	__class__s       €Ú:/usr/lib/python3/dist-packages/cloudinit/distros/debian.pyr   ÚDistro.__init__7   sO   ø€ Ü‰Ñ˜ EÔ*ð !ˆŒØ'ˆÔØ!ˆÔÜ—?’? 4§<¡<°Ó5ˆŒØ7;·x±x°jˆÕó    c                 ó”   • U R                   (       d  [        5       U l         U R                   (       a  U R                   $ U R                  $ )z9Return the default locale if set, else use default locale)r   Úread_system_localer   ©r    s    r%   Ú
get_localeÚDistro.get_localeB   s>   € ð ×!×!Ü!3Ó!5ˆDÔð #'×"4×"4ˆD×Ñð	
Ø:>×:MÑ:Mð	
r'   c                 óÒ  • U(       d  [         nU(       d  [        S5      eU R                  5       n[        R                  R                  U5      nU R                  (       + nU(       a&  [        R                  S[         U R                  5        O%[        R                  SU R                  [         5        UR                  5       UR                  5       :g  =(       d    U(       + =(       d    UnU(       + =(       d    U=(       d    UnU(       a  [        UUUU R                  S9  O"[        R                  SUU R                  U5        U(       a  [        UUUU R                  S9  SU l        gg)z]Apply specified locale to system, regenerate if specified locale
differs from system default.zFailed to provide locale value.zVSystem locale not found in %s. Assuming system locale is %s based on hardcoded defaultzSystem locale set to %s via %s)ÚkeynameÚinstall_functionz9System has '%s=%s' requested '%s', skipping regeneration.N)ÚLOCALE_CONF_FNÚ
ValueErrorr+   ÚosÚpathÚexistsr   ÚLOGÚdebugr   ÚlowerÚregenerate_localeÚinstall_packagesÚupdate_locale_conf)	r    ÚlocaleÚout_fnr.   Údistro_localeÚconf_fn_existsÚsys_locale_unsetÚ
need_regenÚ	need_confs	            r%   Úapply_localeÚDistro.apply_localeM   s9  € ö Ü#ˆFæÜÐ>Ó?Ð?ð Ÿ™Ó)ˆÜŸ™Ÿ™¨Ó/ˆØ#×1Ñ1Ô1ÐÞÜ�I‰IðJäØ×#Ñ#õ	ô �I‰IØ0Ø×"Ñ"Üôð �L‰L‹N˜m×1Ñ1Ó3Ñ3÷  Ø!Ô!÷ àð 	ð
 'Ô&×H¨*×HÐ8Hˆ	æÜØØØØ!%×!6Ñ!6ó	ô �I‰IØKØØ×"Ñ"Øô	ö ÜØØØØ!%×!6Ñ!6ò	ð "&ˆDÕð r'   c                 ó8   >• [        5         [        TU ]  " U0 UD6$ ©N)Ú_maybe_remove_legacy_eth0r   Ú_write_network_state)r    ÚargsÚkwargsr$   s      €r%   rG   ÚDistro._write_network_stateˆ   s   ø€ Ü!Ô#Ü‰wÒ+¨TÐ<°VÑ<Ð<r'   c                 óT  • S n U R                  U5      nU(       d  [        S5      nUR                  U5        [        R                  " U[        U5      S5        g ! [         aC    [        R                  " U R                  SS5      nU(       a   Nz[
        R                  S5         g f = f)NÚcreate_hostname_fileTz8create_hostname_file is False; hostname file not createdÚ é¤  )Ú_read_hostname_confÚIOErrorr   Úget_cfg_option_boolÚ_cfgr5   Úinfor	   Úset_hostnameÚ
write_fileÚstr)r    ÚhostnameÚfilenameÚconfrL   s        r%   Ú_write_hostnameÚDistro._write_hostnameŒ   s™   € Øˆð	ð ×+Ñ+¨HÓ5ˆDö Ü Ó#ˆDØ×Ñ˜(Ô#Ü�Š˜¤# d£)¨UÕ3øô ó 
	Ü#'×#;Ò#;Ø—	‘	Ð1°4ó$Ð ö $Ùä—‘ØNôñ ð
	ús   „A Á3B'ÂB'Â&B'c                 óT   • U R                  U R                  5      nU R                  U4$ rE   )Ú_read_hostnameÚhostname_conf_fn)r    Úsys_hostnames     r%   Ú_read_system_hostnameÚDistro._read_system_hostname¢   s)   € Ø×*Ñ*¨4×+@Ñ+@ÓAˆØ×%Ñ% |Ð4Ð4r'   c                 ód   • [        [        R                  " U5      5      nUR                  5         U$ rE   )r	   r   Úload_text_fileÚparse)r    rX   rY   s      r%   rO   ÚDistro._read_hostname_conf¦   s%   € ÜœD×/Ò/°Ó9Ó:ˆØ�
‰
ŒØˆr'   c                 óx   • S n U R                  U5      nUR                  nU(       d  U$ U$ ! [         a     Nf = frE   )rO   rW   rP   )r    rX   ÚdefaultrW   rY   s        r%   r]   ÚDistro._read_hostname«   sH   € Øˆð	Ø×+Ñ+¨HÓ5ˆDØ—}‘}ˆHö ØˆNØˆøô	 ó 	Ùð	ús   „, ¬
9¸9c                 ó   • g)Nz	127.0.1.1© r*   s    r%   Ú_get_localhost_ipÚDistro._get_localhost_ip¶   s   € àr'   c                 óJ   • [         R                  " XR                  U5      S9  g )N)ÚtzÚtz_file)r   Úset_etc_timezoneÚ_find_tz_file)r    rn   s     r%   Úset_timezoneÚDistro.set_timezoneº   s   € Ü× Ò  B×0BÑ0BÀ2Ó0FÓGr'   c                 ód   • US:w  a  [        SU S35      eU R                  R                  S5        g )NÚupgradezUnable to handle z command)ÚRuntimeErrorr   Úrun_package_command)r    ÚcommandrH   Úpkgss       r%   Úpackage_commandÚDistro.package_command½   s3   € ð �iÓÜÐ!2°7°)¸8ÐDÓEÐEØ�‰×$Ñ$ YÕ/r'   c                 ó,   • [         R                  " 5       $ rE   )r   Úget_dpkg_architecturer*   s    r%   Úget_primary_archÚDistro.get_primary_archÄ   s   € Ü×)Ò)Ó+Ð+r'   ÚlayoutÚmodelÚvariantÚoptionsc                 óª   • SR                  SSSU S3SU S3SU S3SU S3SS	S/	5      n[        R                  " S
USSS9  U R                  SS5        g )NÚ
z'# This file was generated by cloud-initrM   z
XKBMODEL="Ú"zXKBLAYOUT="zXKBVARIANT="zXKBOPTIONS="zBACKSPACE="guess"z/etc/default/keyboardrN   Úw)rX   ÚcontentÚmodeÚomodeÚrestartzconsole-setup)Újoinr   rU   Úmanage_service)r    r€   r�   r‚   rƒ   Úcontentss         r%   Ú
set_keymapÚDistro.set_keymapÇ   s‚   € ð —9‘9à9ØØ˜U˜G 1Ð%Ø˜f˜X QÐ'Ø˜w˜i qÐ)Ø˜w˜i qÐ)ØØ#Øð
ó
ˆô 	�ŠØ,ØØØò		
ð 	×Ñ˜I Õ7r'   )r   r   r   r   r   )NÚLANGrE   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r^   r
   Únetwork_conf_fnÚNETWORK_FILE_HEADERÚrenderer_configsÚdhclient_lease_directoryÚdhclient_lease_file_regexr   r+   rB   rG   rZ   r`   rO   r]   rk   rr   rz   r~   rV   r�   Ú__static_attributes__Ú__classcell__)r$   s   @r%   r   r   !   s¸   ø† Ø&Ðà8Ø)ñ€Oð (¨Ñ.Ø-ñ
ð
 ,¨IÑ6Ø1Øñ
ñ
Ðð  /ÐØ 8Ðõ	Aò	
ô9&õv=ò4ò,5òô
	òòHô0ò,ð 8 ð  8¨Sð  8¸3ð  8È÷  8ò  8r'   r   c                 óÊ  • [         R                  R                  U 5      (       d  gSn [        R                  " U 5      nSS/nUR                  5        Vs/ s H*  oDR                  S5      (       a  M  UR                  5       PM,     nnXS:X  a  [        R                  " U 5        SU -  nO	USU -  -   n [        R                  U5        gs  snf ! [         a    USU -  -   n N/f = f)	a3  Ubuntu cloud images previously included a 'eth0.cfg' that had
hard coded content.  That file would interfere with the rendered
configuration if it was present.

if the file does not exist do nothing.
If the file exists:
  - with known content, remove it and warn
  - with unknown content, leave it and warn
Nz(Dynamic networking config may not apply.z	auto eth0ziface eth0 inet dhcpÚ#zremoved %s with known contentsz* '%s' exists with user configured content.z" %s exists, but could not be read.)r2   r3   r4   r   rc   Ú
splitlinesÚ
startswithÚstripÚdel_fileÚ	Exceptionr5   Úwarning)r3   ÚbmsgrŽ   Úknown_contentsÚfÚlinesÚmsgs          r%   rF   rF   ê   sÛ   € ô �7‰7�>‰>˜$×ÑØà5€DðAÜ×&Ò& tÓ,ˆØ%Ð'=Ð>ˆà'×2Ñ2Ô4ó
Ú4˜!¿L¹LÈ×<M‹IˆA�G‰GŽIÑ4ð 	ð 
ð Ó"Ü�MŠM˜$ÔØ2°TÑ9‰CàÐEÈÑLÑL‰Cô ‡K�K�Õùò
øô ó AØÐ9¸DÑ@Ñ@ŠðAús/   ©,C ÁCÁ2CÂ"C Â)C ÃC ÃC"Ã!C"r‘   c                 óø   • SnU (       d  [        SU -  5      e[        R                  R                  U 5      (       a>  [        R
                  " U 5      n[        R                  " U5      nUR                  US5      nU$ )z.Read system default locale setting, if presentrM   zInvalid path: %s)r1   r2   r3   r4   r   rc   Úload_shell_contentÚget)Úsys_pathr.   Úsys_valÚlocale_contentÚsys_defaultss        r%   r)   r)   
  se   € à€GÞÜÐ+¨hÑ6Ó7Ð7ä	‡w�w‡~�~�h×ÑÜ×,Ò,¨XÓ6ˆÜ×.Ò.¨~Ó>ˆØ×"Ñ" 7¨BÓ/ˆà€Nr'   c                 ó¾   • [         R                  SXU 5        [        R                  " S5      (       d	  U" S/5        [        R                  " SSU-   U< SU < 3/SS9  g)	zUpdate system locale configz%Updating %s with locale setting %s=%szupdate-localeÚlocalesz--locale-file=Ú=F©ÚcaptureN)r5   r6   r   Úwhich©r;   r­   r.   r/   s       r%   r:   r:     s[   € ô ‡I�IØ/°ÀFôô �:Š:�o×&Ñ&Ù˜)˜Ô%Ü‡I‚IàØ˜xÑ'Û¢Ð'ð	
ð
 ór'   c                 óü   • U R                  5       S;   a  [        R                  SX 5        g[        R                  " S5      (       d	  U" S/5        [        R                  SU 5        [        R                  " SU /SS9  g)	z�
Run locale-gen for the provided locale and set the default
system variable `keyname` appropriately in the provided `sys_path`.

)Úczc.utf-8Úposixz$%s=%s does not require rengenerationNz
locale-genr²   zGenerating locales for %sFr´   )r7   r5   r6   r   r¶   r·   s       r%   r8   r8   +  sb   € ð ‡|�|ƒ~Ð2Ó2Ü�	‰	Ð8¸'ÔJØô �:Š:�l×#Ñ#Ù˜)˜Ô%Ü‡I�IÐ)¨6Ô2Ü‡I‚Iˆ|˜VÐ$¨eÓ4r'   )z"/etc/network/interfaces.d/eth0.cfg)r‘   N)Úloggingr2   Útypingr   Ú	cloudinitr   r   r   Ú(cloudinit.distros.package_management.aptr   Ú4cloudinit.distros.package_management.package_managerr   Ú"cloudinit.distros.parsers.hostnamer	   Úcloudinit.net.netplanr
   Ú	getLoggerr’   r5   r—   r0   r   rF   r)   r:   r8   rj   r'   r%   Ú<module>rÃ      su   ðó Û 	Ý ç )Ñ )Ý 8Ý OÝ ;Ý 8à×Ò˜Ó!€ðÐ ð '€ôF8ˆW�^‰^ô F8ôRð@ !/¸ô ð 8<ôõ&5r'   