a '¡Dgˆã@s€ddlZddlmZmZmZmZddlmZddlm Z ddl m Z ddl m Z e e¡ZGdd„dejƒZd d „Zd d „ZdS) éN)ÚdistrosÚhelpersÚsubpÚutil)Ú PackageList)Ú HostnameConf)ÚSysConf)Ú PER_INSTANCEc@sžeZdZdZdgZdZdZdZdZdZ dd d d d d œdœiZ dZ dd„Z d%dd„Z dd„Zd&dd„Zdd„Zdd„Zd'dd„Zedœd d!„Zdd"œd#d$„ZdS)(ÚDistroz/etc/locale.confZ systemctlz/etc/sysconfig/networkz/etc/systemd/resolved.confz/etc/localtimez/var/lib/NetworkManagerzdhclient-[\w-]+\.leaseZ sysconfigzetc/sysconfig/networkz'%(base)s/network-scripts/ifcfg-%(name)sz'%(base)s/network-scripts/route-%(name)sz(%(base)s/network-scripts/route6-%(name)s)Zipv4Zipv6)ZcontrolZiface_templatesZroute_templatesFcCs6tj ||||¡t |¡|_d|_d|_d|d<dS)NZaoscz en_US.UTF-8ZsshdZ ssh_svcname)rr Ú__init__rZRunnersÚ_runnerZosfamilyZdefault_locale)ÚselfÚnameZcfgÚpaths©rú:/usr/lib/python3.9/site-packages/cloudinit/distros/aosc.pyr (s  zDistro.__init__NcCs |s |j}d|i}t||ƒdS)NÚLANG)Úsystemd_locale_conf_fnÚupdate_locale_conf)r ÚlocaleZout_fnÚ locale_cfgrrrÚ apply_locale/s ÿzDistro.apply_localecCs|| d¡r.tdƒ}| |¡t |t|ƒd¡t |jdd¡}|rXt ddt|ƒg¡n t dddt|ƒg¡t   d ¡dS) Nú/previous-hostnameÚé¤Úcreate_hostname_fileTZ hostnamectlz set-hostnamez --transientz7create_hostname_file is False; hostname set transiently) ÚendswithrZ set_hostnamerÚ write_fileÚstrZget_cfg_option_boolZ_cfgrÚLOGÚinfo)r ÚhostnameÚfilenameZconfrrrrÚ_write_hostname7s"  ÿüÿzDistro._write_hostnamecCsD| d¡rt |¡ ¡St dg¡\}}| ¡}t|ƒr<|S|SdS)Nrr!)rrÚload_text_fileÚstriprÚlen)r r"ÚdefaultÚoutZ_errrrrÚ_read_hostnameLs zDistro._read_hostnamecCs| |j¡}|j|fS©N)r)Zhostname_conf_fn)r Z sys_hostnamerrrÚ_read_system_hostnameVs zDistro._read_system_hostnamecCs(| |¡}t |j¡t ||j¡dSr*)Z _find_tz_filerZdel_fileÚ tz_local_fnZsym_link)r ZtzZtz_filerrrÚ set_timezoneZs  zDistro.set_timezonecCsF|dur g}dg}|r | |¡| d¡| |¡tj|dddS)NZomaz-yF)Zcapture)ÚappendÚextendr)r ZcommandÚargsÚpkgsÚcmdrrrÚpackage_command_s   zDistro.package_command)ÚpkglistcCs|jd|ddS)NÚinstall)r1)r3)r r4rrrÚinstall_packageskszDistro.install_packages)ÚforcecCs|jjd|jdtddS)Nzupdate-sourcesZrefresh)Zfreq)r Úrunr3r )r r7rrrÚupdate_package_sourcesns üzDistro.update_package_sources)N)N)NN)Ú__name__Ú __module__Ú __qualname__rZinit_cmdZnetwork_conf_dirZresolve_conf_fnr,Zdhclient_lease_directoryZdhclient_lease_file_regexZrenderer_configsZ prefer_fqdnr rr#r)r+r-r3rr6r9rrrrr s2þýÿ    r cCs>d}zt |¡ ¡}d}Wnty0g}Yn0|t|ƒfS)NFT)rr$Ú splitlinesÚIOErrorr)Úsys_pathÚexistsÚcontentsrrrÚread_locale_confws  rBcCs˜|sdSt|ƒ\}}d}| ¡D]8\}}|dur2q t|ƒ}t|ƒdkrHq |||<|d7}q |r”t|ƒg}|s|| dt ¡¡t |d |¡dd¡dS)NréÚ r) rBÚitemsrr&ÚinsertrZ make_headerrÚjoin)r?rr@rAZ updated_amÚkÚvÚlinesrrrrs$   ÿr)ZloggingZ cloudinitrrrrZcloudinit.distrosrZ"cloudinit.distros.parsers.hostnamerZ"cloudinit.distros.parsers.sys_confrZcloudinit.settingsr Z getLoggerr:rr rBrrrrrÚs     f