Ë
    x[h‚  ã                   ó®   — d dl Z d dlmZmZmZmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ  e j                  e«      Z G d„ dej"                  «      Zd	„ Zd
„ Zy)é    N)ÚdistrosÚhelpersÚsubpÚutil)ÚPackageList)ÚHostnameConf)ÚSysConf)ÚPER_INSTANCEc                   óŒ   — e Zd ZdZdgZdZdZdZdZdZ	dd	d
dddœdœiZ
dZd„ Zdd„Zd„ Zdd„Zd„ Zd„ Zdd„Zdefd„Zddœd„Zy)ÚDistroz/etc/locale.confÚ	systemctlz/etc/sysconfig/networkz/etc/systemd/resolved.confz/etc/localtimez/var/lib/NetworkManagerzdhclient-[\w-]+\.leaseÚ	sysconfigzetc/sysconfig/networkz'%(base)s/network-scripts/ifcfg-%(name)sz'%(base)s/network-scripts/route-%(name)sz(%(base)s/network-scripts/route6-%(name)s)Úipv4Úipv6)ÚcontrolÚiface_templatesÚroute_templatesFc                 ó¢   — t         j                  j                  | |||«       t        j                  |«      | _        d| _        d| _        d|d<   y )NÚaosczen_US.UTF-8ÚsshdÚssh_svcname)r   r   Ú__init__r   ÚRunnersÚ_runnerÚosfamilyÚdefault_locale)ÚselfÚnameÚcfgÚpathss       ú8/usr/lib/python3/dist-packages/cloudinit/distros/aosc.pyr   zDistro.__init__(   sC   € Ü�‰×Ñ  d¨C°Ô7Ü—‘ uÓ-ˆŒØˆŒØ+ˆÔØ#ˆˆMÒó    Nc                 ó@   — |s| j                   }d|i}t        ||«       y )NÚLANG)Úsystemd_locale_conf_fnÚupdate_locale_conf)r   ÚlocaleÚout_fnÚ
locale_cfgs       r!   Úapply_localezDistro.apply_locale/   s(   € ÙØ×0Ñ0ˆFà�Fð
ˆ
ô 	˜6 :Õ.r"   c                 ó–  — |j                  d«      r<t        d«      }|j                  |«       t        j                  |t        |«      d«       t        j                  | j                  dd«      }|r"t        j                  ddt        |«      g«       y t        j                  dddt        |«      g«       t        j                  d	«       y )
Nú/previous-hostnameÚ é¤  Úcreate_hostname_fileTÚhostnamectlzset-hostnamez--transientz7create_hostname_file is False; hostname set transiently)Úendswithr   Úset_hostnamer   Ú
write_fileÚstrÚget_cfg_option_boolÚ_cfgr   ÚLOGÚinfo)r   ÚhostnameÚfilenameÚconfr/   s        r!   Ú_write_hostnamezDistro._write_hostname7   s¦   € Ø×ÑÐ1Ô2Ü Ó#ˆDØ×Ñ˜hÔ'Ü�O‰O˜H¤c¨$£i°Ô7Ü#×7Ñ7Ø�I‰IÐ-¨tó 
Ðñ  Ü�I‰I�} n´c¸(³mÐDÕEä�I‰Ià!Ø"Ø!Ü˜“Mð	ôô �H‰HÐNÕOr"   c                 óÚ   — |j                  d«      r#t        j                  |«      j                  «       S t	        j                  dg«      \  }}|j                  «       }t        |«      r|S |S )Nr,   r9   )r1   r   Úload_text_fileÚstripr   Úlen)r   r:   ÚdefaultÚoutÚ_errs        r!   Ú_read_hostnamezDistro._read_hostnameL   s[   € Ø×ÑÐ1Ô2Ü×&Ñ& xÓ0×6Ñ6Ó8Ð8Ü—i‘i  Ó-‰ˆˆdØ�i‰i‹kˆÜˆsŒ8ØˆJàˆNr"   c                 óT   — | j                  | j                  «      }| j                  |fS ©N)rD   Úhostname_conf_fn)r   Úsys_hostnames     r!   Ú_read_system_hostnamezDistro._read_system_hostnameV   s)   € Ø×*Ñ*¨4×+@Ñ+@ÓAˆØ×%Ñ% |Ð4Ð4r"   c                 ó¤   — | j                  |«      }t        j                  | j                  «       t        j                  || j                  «       y rF   )Ú_find_tz_filer   Údel_fileÚtz_local_fnÚsym_link)r   ÚtzÚtz_files      r!   Úset_timezonezDistro.set_timezoneZ   s8   € Ø×$Ñ$ RÓ(ˆÜ�‰�d×&Ñ&Ô'Ü�‰�g˜t×/Ñ/Õ0r"   c                 óª   — |€g }dg}|r|j                  |«       |j                  d«       |j                  |«       t        j                  |d¬«       y )NÚomaz-yF)Úcapture)ÚappendÚextendr   )r   ÚcommandÚargsÚpkgsÚcmds        r!   Úpackage_commandzDistro.package_command_   sH   € Øˆ<ØˆDàˆgˆÙØ�J‰J�wÔØ�
‰
�4ÔØ�
‰
�4Ôä�	‰	�#˜uÖ%r"   Úpkglistc                 ó*   — | j                  d|¬«       y )NÚinstall)rY   )r[   )r   r\   s     r!   Úinstall_packageszDistro.install_packagesk   s   € Ø×Ñ˜Y¨WÐÕ5r"   )Úforcec                ó^   — | j                   j                  d| j                  dt        ¬«       y )Nzupdate-sourcesÚrefresh)Úfreq)r   Úrunr[   r
   )r   r`   s     r!   Úupdate_package_sourceszDistro.update_package_sourcesn   s+   € Ø�‰×ÑØØ× Ñ ØÜð	 	õ 	
r"   rF   )NN)Ú__name__Ú
__module__Ú__qualname__r%   Úinit_cmdÚnetwork_conf_dirÚresolve_conf_fnrM   Údhclient_lease_directoryÚdhclient_lease_file_regexÚrenderer_configsÚprefer_fqdnr   r*   r<   rD   rI   rQ   r[   r   r_   re   © r"   r!   r   r      s�   „ Ø/ÐØˆ}€HØ/ÐØ2€OØ"€Kà8ÐØ 9Ðð 	Ø.ØHàAØBñ ñ
ð	Ðð €Kò$ó/òPó*ò5ò1ó

&ð6¨ó 6ð /4õ 
r"   r   c                 óŽ   — d}	 t        j                  | «      j                  «       }d}|t	        |«      fS # t        $ r g }Y Œw xY w)NFT)r   r>   Ú
splitlinesÚIOErrorr	   )Úsys_pathÚexistsÚcontentss      r!   Úread_locale_confrw   w   sR   € Ø€FðÜ×&Ñ& xÓ0×;Ñ;Ó=ˆØˆð ”G˜HÓ%Ð&Ð&øô ò ØŠðús   „%6 ¶AÁAc                 óL  — |sy t        | «      \  }}d}|j                  «       D ]   \  }}|€Œ	t        |«      }|sŒ|||<   |dz  }Œ" |r\t        |«      g}|s$|j                  dt	        j
                  «       «       t	        j                  | dj                  |«      dz   d«       y y )Nr   é   ú
r.   )rw   Úitemsr4   Úinsertr   Úmake_headerr3   Újoin)rt   r)   ru   rv   Ú
updated_amÚkÚvÚliness           r!   r&   r&   �   s³   € ÙØÜ)¨(Ó3Ñ€VˆXØ€JØ× Ñ Ó"ò ‰ˆˆ1Øˆ9ØÜ�‹FˆÙØØˆ�‰Ø�a‰‰
ðñ ä�‹Mð
ˆñ Ø�L‰L˜œD×,Ñ,Ó.Ô/Ü�‰˜ $§)¡)¨EÓ"2°TÑ"9¸5ÕAð r"   )ÚloggingÚ	cloudinitr   r   r   r   Úcloudinit.distrosr   Ú"cloudinit.distros.parsers.hostnamer   Ú"cloudinit.distros.parsers.sys_confr	   Úcloudinit.settingsr
   Ú	getLoggerrf   r7   r   rw   r&   rp   r"   r!   ú<module>rŠ      sL   ðó ç 2Ó 2Ý )Ý ;Ý 6Ý +à€g×Ñ˜Ó!€ôc
ˆW�^‰^ô c
òL'óBr"   