
    x[h                         S SK r S SKJr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 S\R"                  5      rS	 rS
 rg)    N)distroshelperssubputil)PackageList)HostnameConf)SysConf)PER_INSTANCEc                       \ rS rSrSrS/rSrSrSrSr	Sr
S	S
SSSS.S.0rSrS rSS jrS rSS jrS rS rSS jrS\4S jrSS.S jrSrg) Distro   z/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                     [         R                  R                  XX#5        [        R                  " U5      U l        SU l        SU l        SUS'   g )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   Distro.__init__(   s?    C7u-+#M    Nc                 H    U(       d  U R                   nSU0n[        X#5        g )NLANG)systemd_locale_conf_fnupdate_locale_conf)r   localeout_fn
locale_cfgs       r"   apply_localeDistro.apply_locale/   s&    00FF

 	6.r$   c                    UR                  S5      (       a=  [        S5      nUR                  U5        [        R                  " U[        U5      S5        [        R                  " U R                  SS5      nU(       a#  [        R                  " SS[        U5      /5        g [        R                  " SSS[        U5      /5        [        R                  S	5        g )
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confr2   s        r"   _write_hostnameDistro._write_hostname7   s    122#Dh'OOHc$i7#77II-t 
  II}nc(mDEII!"!M	 HHNOr$   c                     UR                  S5      (       a$  [        R                  " U5      R                  5       $ [        R                  " S/5      u  p4UR                  5       n[        U5      (       a  U$ U$ )Nr/   r<   )r4   r   load_text_filestripr   len)r   r=   defaultout_errs        r"   _read_hostnameDistro._read_hostnameL   s^    122&&x06688ii-iiks88JNr$   c                 T    U R                  U R                  5      nU R                  U4$ N)rH   hostname_conf_fn)r   sys_hostnames     r"   _read_system_hostnameDistro._read_system_hostnameV   s)    **4+@+@A%%|44r$   c                     U R                  U5      n[        R                  " U R                  5        [        R                  " X R                  5        g rK   )_find_tz_filer   del_filetz_local_fnsym_link)r   tztz_files      r"   set_timezoneDistro.set_timezoneZ   s6    $$R(d&&'g//0r$   c                     Uc  / nS/nU(       a  UR                  U5        UR                  S5        UR                  U5        [        R                  " USS9  g )Nomaz-yF)capture)appendextendr   )r   commandargspkgscmds        r"   package_commandDistro.package_command_   sH    <DgJJw

4

4		#u%r$   pkglistc                 $    U R                  SUS9  g )Ninstall)r`   )rb   )r   rd   s     r"   install_packagesDistro.install_packagesk   s    YW5r$   )forcec                X    U R                   R                  SU R                  S[        S9  g )Nzupdate-sourcesrefresh)freq)r   runrb   r
   )r   ri   s     r"   update_package_sourcesDistro.update_package_sourcesn   s+      	 	 	
r$   )r   r   r   rK   )NN)__name__
__module____qualname____firstlineno__r'   init_cmdnetwork_conf_dirresolve_conf_fnrS   dhclient_lease_directorydhclient_lease_file_regexrenderer_configsprefer_fqdnr   r,   r?   rH   rN   rW   rb   r   rg   rn   __static_attributes__ r$   r"   r   r      s    /}H/2O"K8 9 	.HAB 
	 K$/P*51

&6 6 /4 
 
r$   r   c                     Sn [         R                  " U 5      R                  5       nSnU[	        U5      4$ ! [         a    / n Nf = f)NFT)r   rB   
splitlinesIOErrorr	   )sys_pathexistscontentss      r"   read_locale_confr   w   sR    F&&x0;;= GH%&&  s   &7 AAc                 |   U(       d  g [        U 5      u  p#SnUR                  5        H'  u  pVUc  M
  [        U5      nU(       d  M  XcU'   US-  nM)     U(       ac  [        U5      /nU(       d%  UR                  S[        R
                  " 5       5        [        R                  " U SR                  U5      S-   S5        g g )Nr      
r1   )r   itemsr7   insertr   make_headerr6   join)r   r+   r   r   
updated_amkvliness           r"   r(   r(      s    )(3VJ  "9Fa
 # M
 LLD,,./$))E"2T"95A r$   )logging	cloudinitr   r   r   r   cloudinit.distrosr   "cloudinit.distros.parsers.hostnamer   "cloudinit.distros.parsers.sys_confr	   cloudinit.settingsr
   	getLoggerrp   r:   r   r   r(   r|   r$   r"   <module>r      sJ     2 2 ) ; 6 +!c
W^^ c
L'Br$   