o x[h@sddlZddlmZmZmZmZddlmZddlm Z ddl m Z ddl m Z eeZGdddejZd d Zd d ZdS) N)distroshelperssubputil) PackageList) HostnameConf)SysConf) PER_INSTANCEc@seZdZdZdgZdZdZdZdZdZ dd d d d d diZ dZ ddZ d%ddZ ddZd%ddZddZddZd&ddZdefd d!Zdd"d#d$ZdS)'Distroz/etc/locale.conf systemctlz/etc/sysconfig/networkz/etc/systemd/resolved.confz/etc/localtimez/var/lib/NetworkManagerzdhclient-[\w-]+\.lease sysconfigzetc/sysconfig/networkz'%(base)s/network-scripts/ifcfg-%(name)sz'%(base)s/network-scripts/route-%(name)sz(%(base)s/network-scripts/route6-%(name)s)ipv4ipv6)controliface_templatesroute_templatesFcCs6tj||||t||_d|_d|_d|d<dS)Naoscz en_US.UTF-8sshd ssh_svcname)rr __init__rRunners_runnerosfamilydefault_locale)selfnamecfgpathsr8/usr/lib/python3/dist-packages/cloudinit/distros/aosc.pyr(s   zDistro.__init__NcCs |s|j}d|i}t||dS)NLANG)systemd_locale_conf_fnupdate_locale_conf)rlocaleout_fn locale_cfgrrr apply_locale/s zDistro.apply_localecCs~|drtd}||t|t|dt|jdd}|r-tddt|gdStdddt|gt d dS) N/previous-hostnamecreate_hostname_fileT hostnamectlz set-hostnamez --transientz7create_hostname_file is False; hostname set transiently) endswithr set_hostnamer write_filestrget_cfg_option_bool_cfgrLOGinfo)rhostnamefilenameconfr*rrr_write_hostname7s"  zDistro._write_hostnamecCs@|dr t|Stdg\}}|}t|r|S|S)Nr'r4)r,rload_text_filestriprlen)rr5defaultout_errrrr_read_hostnameLs zDistro._read_hostnamecCs||j}|j|fSN)r>hostname_conf_fn)r sys_hostnamerrr_read_system_hostnameVs  zDistro._read_system_hostnamecCs(||}t|jt||jdSr?) _find_tz_filerdel_file tz_local_fnsym_link)rtztz_filerrr set_timezoneZs  zDistro.set_timezonecCsF|durg}dg}|r|||d||tj|dddS)Nomaz-yF)capture)appendextendr)rcommandargspkgscmdrrrpackage_command_s   zDistro.package_commandpkglistcCs|jd|ddS)Ninstall)rP)rR)rrSrrrinstall_packageskszDistro.install_packages)forcecCs|jjd|jdtddS)Nzupdate-sourcesrefresh)freq)rrunrRr )rrVrrrupdate_package_sourcesns  zDistro.update_package_sourcesr?)NN)__name__ __module__ __qualname__r!init_cmdnetwork_conf_dirresolve_conf_fnrEdhclient_lease_directorydhclient_lease_file_regexrenderer_configs prefer_fqdnrr&r7r>rBrIrRrrUrZrrrrr s4      r cCs>d}z t|}d}Wn tyg}Ynw|t|fS)NFT)rr8 splitlinesIOErrorr)sys_pathexistscontentsrrrread_locale_confws  rjcCs|sdSt|\}}d}|D]\}}|durqt|}|s q|||<|d7}q|rHt|g}|s:|dtt|d|dddSdS)Nr r))rjitemsr/insertr make_headerr.join)rgr%rhri updated_amkvlinesrrrr"s&  r")logging cloudinitrrrrcloudinit.distrosr"cloudinit.distros.parsers.hostnamer"cloudinit.distros.parsers.sys_confrcloudinit.settingsr getLoggerr[r2r rjr"rrrrs     f