a 'Dg@stddlZddlmZmZmZmZddlmZddlm Z ddl m Z ddl m Z mZeeZGdddejZdS) N)distroshelperssubputil) PackageList) HostnameConf)CLOUDINIT_NETPLAN_FILE) PER_ALWAYS PER_INSTANCEc@seZdZdZdgZdedddiZddZd!d d Ze d d dZ ddZ ddZ ddZ d"ddZddZddZd#ddZdddd 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)selfnameZcfgpathsr:/usr/lib/python3.9/site-packages/cloudinit/distros/arch.pyr s zDistro.__init__NcCsj|dur|dkrtd|td|dg}t|jd|tjdgddtjd d |gdddS) Nz/etc/locale.confzFInvalid locale_configfile %s, only supported value is /etc/locale.confz%s UTF-8 z locale-genFZcaptureZ localectlz set-locale)LOGZwarningrZ make_header write_file locale_gen_fnjoinr)rlocaleZout_fnlinesrrr apply_locale&szDistro.apply_locale)pkglistcCs||jd|ddS)Nr)pkgs)update_package_sourcespackage_command)rrrrrinstall_packages9szDistro.install_packagescCs|d}z||}Wn8tyJt|jdd}|r6ntdYdSYn0|sXtd}||tj |t |ddddS)Ncreate_hostname_fileTz8create_hostname_file is False; hostname file not createdrwi)Zomodemode) _read_hostname_confIOErrorrZget_cfg_option_boolZ_cfgrinforZ set_hostnamerstr)rhostnamefilenameconfr"rrr_write_hostname=s"   zDistro._write_hostnamecCs||j}|j|fSN)_read_hostnameZhostname_conf_fn)rZ sys_hostnamerrr_read_system_hostnameSs zDistro._read_system_hostnamecCstt|}||Sr-)rrZload_text_fileparse)rr*r+rrrr%WszDistro._read_hostname_confcCs8d}z||}|j}Wnty*Yn0|s4|S|Sr-)r%r)r&)rr*defaultr)r+rrrr.\s   zDistro._read_hostnamecCsJtd|ztddd|gWn"tjyDttd|Yn0dS)Nz2Non-persistently setting the system hostname to %sZ hostnamectlz --transientz set-hostnamez;Failed to non-persistently adjust the system hostname to %s)rdebugrZProcessExecutionErrorrZlogexc)rr)rrr_apply_hostnameiszDistro._apply_hostnamecCstj|||ddS)N)tzZtz_file)rZset_etc_timezoneZ _find_tz_file)rr4rrr set_timezonevszDistro.set_timezonecCs|dur g}gd}|r.t|tr.||n|rFt|trF|||dkrRd}|r`||td|}||tj|dddS)N)Zpacmanz-Syz--quietz --noconfirmZupgradez-uz%s-%sFr) isinstancer(appendlistextendrZexpand_package_listr)rZcommandargsrcmdrrrrr ys     zDistro.package_commandF)forcecCs$|jjd|jdg|rtntddS)Nzupdate-sourcesz-y)Zfreq)r runr r r )rr<rrrrs  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 rrrrs