a '¡Dg­ã@stddlZddlmZmZmZmZddlmZddlm Z ddl m Z ddl m Z mZe e¡ZGdd„dejƒZdS) éN)ÚdistrosÚhelpersÚsubpÚutil)Ú PackageList)Ú HostnameConf)ÚCLOUDINIT_NETPLAN_FILE)Ú PER_ALWAYSÚ PER_INSTANCEc@s�eZdZdZdgZdedddœiZdd„Zd!d d „Ze d œd d„Z dd„Z dd„Z dd„Z d"dd„Zdd„Zdd„Zd#dd„Zddœdd „Zd S)$ÚDistroz/etc/locale.genZ systemctlZnetplanz# generated by cloud-init T)Z netplan_pathZnetplan_headerZpostcmdscCs0tj ||||¡t |¡|_d|_d|d<dS)NZarchZsshdZ ssh_svcname)rr Ú__init__rZRunnersÚ_runnerZosfamily)ÚselfÚnameZcfgÚpaths©rú:/usr/lib/python3.9/site-packages/cloudinit/distros/arch.pyr s zDistro.__init__NcCsj|dur|dkrt d|¡t ¡d|dg}t |jd |¡¡tjdgdd�tjd d |gdd�dS) Nz/etc/locale.confzFInvalid locale_configfile %s, only supported value is /etc/locale.confz%s UTF-8ÚÚ z locale-genF©ZcaptureZ localectlz set-locale)ÚLOGZwarningrZ make_headerÚ write_fileÚ locale_gen_fnÚjoinr)rÚlocaleZout_fnÚlinesrrrÚ apply_locale&sýüzDistro.apply_locale)ÚpkglistcCs| ¡|jd|d�dS)Nr)Úpkgs)Úupdate_package_sourcesÚpackage_command)rrrrrÚinstall_packages9szDistro.install_packagescCs|d}z| |¡}Wn8tyJt |jdd¡}|r6nt d¡YdSYn0|sXtdƒ}| |¡tj |t |ƒddd�dS)NÚcreate_hostname_fileTz8create_hostname_file is False; hostname file not createdrÚwi¤)ZomodeÚmode) Ú_read_hostname_confÚIOErrorrZget_cfg_option_boolZ_cfgrÚinforZ set_hostnamerÚstr)rÚhostnameÚfilenameÚconfr"rrrÚ_write_hostname=s" ÿÿ  zDistro._write_hostnamecCs| |j¡}|j|fS©N)Ú_read_hostnameZhostname_conf_fn)rZ sys_hostnamerrrÚ_read_system_hostnameSs zDistro._read_system_hostnamecCstt |¡ƒ}| ¡|Sr-)rrZload_text_fileÚparse)rr*r+rrrr%WszDistro._read_hostname_confcCs8d}z| |¡}|j}Wnty*Yn0|s4|S|Sr-)r%r)r&)rr*Údefaultr)r+rrrr.\s   zDistro._read_hostnamecCsJt d|¡zt ddd|g¡Wn"tjyDt td|¡Yn0dS)Nz2Non-persistently setting the system hostname to %sZ hostnamectlz --transientz set-hostnamez;Failed to non-persistently adjust the system hostname to %s)rÚdebugrZProcessExecutionErrorrZlogexc)rr)rrrÚ_apply_hostnameisÿýzDistro._apply_hostnamecCstj|| |¡d�dS)N)ÚtzZtz_file)rZset_etc_timezoneZ _find_tz_file)rr4rrrÚ set_timezonevszDistro.set_timezonecCsˆ|dur g}gd¢}|r.t|tƒr.| |¡n|rFt|tƒrF| |¡|dkrRd}|r`| |¡t d|¡}| |¡tj|dd�dS)N)Zpacmanz-Syz--quietz --noconfirmZupgradez-uz%s-%sFr)Ú isinstancer(ÚappendÚlistÚextendrZexpand_package_listr)rZcommandÚargsrÚcmdrrrrr ys     zDistro.package_commandF)ÚforcecCs$|jjd|jdg|rtntd�dS)Nzupdate-sourcesz-y)Zfreq)r Úrunr r r )rr<rrrr�s  üzDistro.update_package_sources)N)N)NN)Ú__name__Ú __module__Ú __qualname__rZinit_cmdrZrenderer_configsr rrr!r,r/r%r.r3r5r rrrrrr s&ýÿ    r )ZloggingZ cloudinitrrrrZcloudinit.distrosrZ"cloudinit.distros.parsers.hostnamerZcloudinit.net.netplanrZcloudinit.settingsr r Z getLoggerr>rr rrrrÚs