o x[hn@slddlZddlmZmZmZmZmZddlmZddlm Z ddl m Z m Z eeZGdddejZdS)N)distroshelpersnetsubputil) PackageList) rhel_util) PER_ALWAYS PER_INSTANCEc@seZdZdZdZdZdZdeediZdZdd Z d$d d Z d d Z d%ddZ de fddZddZddZd%ddZddZddZd&ddZd d!d"d#ZdS)'Distroz /etc/hostnamez/etc/systemd/network/z/etc/locale.confz/etc/systemd/resolved.confnetworkd)resolv_conf_fnnetwork_conf_dirTcCs0tj||||t||_d|_dg|_dS)Nphoton systemctl)rr __init__rRunners_runnerosfamilyinit_cmd)selfnamecfgpathsr:/usr/lib/python3/dist-packages/cloudinit/distros/photon.pyrs  zDistro.__init__cCsntd|ztj||d\}}|rtd||d||fWSd||fWStjy6ttd|YdSw)NzAttempting to run: %s)capturez(Running %s resulted in stderr output: %sTFzCommand %s failed)TNN)LOGdebugrwarningProcessExecutionErrorrlogexc)rcmdrouterrrrrexec_cmd(s   zDistro.exec_cmdcCs:d}|j|d}td|||stStddS)Ndisable_fallback_netcfgTz%s value is: %szJSkipping generate_fallback_config. Rely on PhotonOS default network config)_cfggetrrrgenerate_fallback_configinfo)rkeyr&rrrr)6szDistro.generate_fallback_configNcCs4|s|j}d|i}t||gd}||dS)NLANG)rrestartzsystemd-localed)systemd_locale_conf_fnrhutilupdate_sysconfig_filer%)rlocaleout_fn locale_cfgr"rrr apply_localeDs zDistro.apply_localepkglistcCs|jd|ddS)Ninstall)pkgs)package_command)rr5rrrinstall_packagesVszDistro.install_packagescCs|r|drt||dSd}t|jdd}|r)|ddt|g\}}}n|dddt|g\}}}td|rHt d||fdSdS) N/previous-hostnamecreate_hostname_fileT hostnamectlz set-hostnamez --transientz7create_hostname_file is False; hostname set transientlyz3Error while setting hostname: %s Given hostname: %s) endswithr write_fileget_cfg_option_boolr'r%strrr*r)rhostnamefilenameretr;_outr$rrr_write_hostnameZs8   zDistro._write_hostnamecCs||j}|j|fSN)_read_hostnamesystemd_hostname_conf_fn)r sys_hostnamerrr_read_system_hostname{s  zDistro._read_system_hostnamecCs@|r|drt|S|ddg\}}}|r|S|S)Nr:rAz-f)r=rload_text_filestripr%)rrBdefault_retr#_errrrrrGszDistro._read_hostnamecCsdS)Nz 127.0.1.1r)rrrr_get_localhost_ipszDistro._get_localhost_ipcCstj|||ddS)N)tztz_file)rset_etc_timezone _find_tz_file)rrQrrr set_timezoneszDistro.set_timezonec Cs|sg}ddg}|rt|tr||n |r!t|tr!||||td|}||||\}}}|rCt d|dSdS)Ntdnfz-yz%s-%sz#Error while installing packages: %s) isinstancer@appendlistextendrexpand_package_listr%rerror) rcommandargsr7r"r5rCrDr$rrrr8s     zDistro.package_commandF)forcecCs$|jjd|jdg|r tntddS)Nzupdate-sources makecache)freq)rrunr8r r )rr_rrrupdate_package_sourcess   zDistro.update_package_sources)TrF)NN)__name__ __module__ __qualname__rHrr.resolve_conf_fnrenderer_configs prefer_fqdnrr%r)r4rr9rErJrGrPrUr8rcrrrrr s.  !  r )logging cloudinitrrrrrcloudinit.distrosrrr/cloudinit.settingsr r getLoggerrdrr rrrrs