fddlZddlZddlmZmZmZmZddlmZm Z ddl m Z ddl m Z ejeZGddej"Zy)N)distroshelperssubputil) PackageList rhel_util) HostnameConf) PER_INSTANCEceZdZdZdZdZdZdZdZdZ dZ dZ d Z d Z d d d ddddiZdZdZdefdZdZd dZd!dZdZdZd dZdZd"dZdZy)#Distroz/etc/sysconfig/clockz/etc/sysconfig/i18nz/etc/locale.confz/etc/sysconfig/networkz /etc/hostnamez'/etc/sysconfig/network-scripts/ifcfg-%sz/etc/localtimez /usr/libexecz/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_templatesTctjj||||tj||_d|_d|_d|_d|d<y)Nredhatz en_US.UTF-8sshd ssh_svcname) rr __init__rRunners_runnerosfamilydefault_locale system_locale)selfnamecfgpathss 8/usr/lib/python3/dist-packages/cloudinit/distros/rhel.pyrzDistro.__init__5sMdC7u-   +!#Mpkglistc*|jd|y)Ninstall)pkgs)package_command)rr#s r!install_packageszDistro.install_packages@s YW5r"c|js|j|_|jr |jS|jS)z8Return the default locale if set, else use system locale)r_read_system_localerrs r! get_localezDistro.get_localeCsD!!!%!9!9!;D #'"4"4D   :>:M:M r"Nc|jr|s|j}n|s |j}d|i}tj||y)NLANG) uses_systemdsystemd_locale_conf_fnlocale_conf_fnrupdate_sysconfig_file)rlocaleout_fn locale_cfgs r! apply_localezDistro.apply_localeOsH    44,, F  '' ;r"c|jr |j}n |j}|std|ztj j |r"tj|\}}||vr||Syy)z.Read system default locale setting, if presentzInvalid path: %sN) r/r0r1 ValueErrorospathexistsrread_sysconfig_file)rkeyname locale_fn_existscontentss r!r*zDistro._read_system_locale[sx    33I++I/);< < 77>>) $"+"?"? "J Wh("(( %r"c|jrN|jdr=td}|j|t j |t |dy|jr}t j|jdd}|r"tjddt |gytjdddt |gtjd yd |i}tj||y) N/previous-hostnameicreate_hostname_fileT hostnamectlz set-hostnamez --transientz7create_hostname_file is False; hostname set transientlyHOSTNAME)r/endswithr set_hostnamer write_filestrget_cfg_option_bool_cfgrLOGinforr2)rhostnamefilenameconfrDhost_cfgs r!_write_hostnamezDistro._write_hostnamels    8#4#45I#J#D   h ' OOHc$i 7    #'#;#; 14$ $ =.#h-HI %&%H M HH  + +Hh ?r"cz|jr |j}n |j}||j|fSN)r/systemd_hostname_conf_fnhostname_conf_fn_read_hostname)rhost_fns r!_read_system_hostnamezDistro._read_system_hostnames:    33G++G,,W566r"c`|jr4|jdr#tj|j S|jr8t j dg\}}|j }t |r|S|Stj|\}}d|vr|dS|S)NrBrOrF) r/rGrload_text_filestriprlenrr<)rrPdefaultout_errr?r@s r!rXzDistro._read_hostnames    8#4#45I#J&&x0668 8    ))ZL1KS$))+C3x "+"?"?"I WhX% ++r"c`|j|}|jr@tj|jtj ||jydt |i}tj|j|tj||jy)NZONE) _find_tz_filer/rdel_file tz_local_fnsym_linkrJrr2 clock_conf_fncopy)rtztz_file clock_cfgs r! set_timezonezDistro.set_timezones$$R(     MM$** + MM'4#3#3 4BI  + +D,>,> J IIgt// 0r"c|g}tjdrtjddg}ntjdddg}|j d|r"t |t r|j |n#|r!t |tr|j||j |tjd|}|j|tj|d y) Ndnfz Using DNF for package managementz Using YUM for package managementyumz-tz-yz%s-%sF)capture) rwhichrMdebugappend isinstancerJlistextendrexpand_package_list)rcommandargsr&cmdr#s r!r'zDistro.package_commands <D ::e  II8 9'C II8 9$-C 4 JtS) JJt  jt, JJt  7**7D9 7 #u%r"c`|jjd|jdgty)Nzupdate-sources makecache)freq)rrunr'r r+s r!update_package_sourceszDistro.update_package_sourcess-    M  r"rU)r.)NN)__name__ __module__ __qualname__rhr1r0network_conf_fnrWrVnetwork_script_tplrf usr_lib_execdhclient_lease_directorydhclient_lease_file_regexrenderer_configs prefer_fqdnrrr(r,r6r*rSrZrXrmr'rr"r!r r s*M*N/.O/.B"K!L 9 9.HAB   K $6 6   <"@>7"1 &B r"r )loggingr9 cloudinitrrrrcloudinit.distrosrr"cloudinit.distros.parsers.hostnamer cloudinit.settingsr getLoggerrrMr rr"r!rs@ 224;+g!E W^^E r"