name : rhel.cpython-39.pyc
a

'�Dg��@stddlZddlZddlmZmZmZmZddlmZm	Z	ddl
mZddlm
Z
mZe�e�ZGdd�dej�ZdS)�N)�distros�helpers�subp�util)�PackageList�	rhel_util)�HostnameConf)�
PER_ALWAYS�PER_INSTANCEc@s�eZdZdZdZdZdZdZdZdZ	dZ
dZd	Zd
ddd
dd�d�iZ
dZdd�Zed�dd�Zdd�Zd-dd�Zd.dd�Zdd �Zd!d"�Zd/d#d$�Zd%d&�Zd0d'd(�Zd)d*�d+d,�ZdS)1�Distroz/etc/sysconfig/clockz/etc/sysconfig/i18nz/etc/locale.confz/etc/sysconfig/networkz
/etc/hostnamez/etc/localtimez/usr/libexecz/var/lib/NetworkManagerzdhclient-[\w-]+\.leaseZ	sysconfigzetc/sysconfig/networkz'%(base)s/network-scripts/ifcfg-%(name)sz'%(base)s/network-scripts/route-%(name)sz(%(base)s/network-scripts/route6-%(name)s)Zipv4Zipv6)ZcontrolZiface_templatesZroute_templatesTcCs<tj�||||�t�|�|_d|_d|_d|_d|d<dS)NZredhatzen_US.UTF-8ZsshdZssh_svcname)	rr�__init__rZRunners�_runnerZosfamily�default_locale�
system_locale)�self�nameZcfg�paths�r�:/usr/lib/python3.9/site-packages/cloudinit/distros/rhel.pyr4szDistro.__init__)�pkglistcCs|jd|d�dS)N�install)�pkgs)�package_command)rrrrr�install_packages?szDistro.install_packagescCs"|js|��|_|jr|jS|jS)z8Return the default locale if set, else use system locale)r�_read_system_localer)rrrr�
get_localeBs
�zDistro.get_localeNcCs6|��r|s|j}n
|s|j}d|i}t�||�dS)N�LANG)�uses_systemd�systemd_locale_conf_fn�locale_conf_fnr�update_sysconfig_file)r�localeZout_fnZ
locale_cfgrrr�apply_localeNs�zDistro.apply_localercCsX|��r|j}n|j}|s&td|��tj�|�rTt�|�\}}||vrP||SdSdS)z.Read system default locale setting, if presentzInvalid path: %sN)	rrr�
ValueError�os�path�existsr�read_sysconfig_file)rZkeynameZ	locale_fn�_exists�contentsrrrrZszDistro._read_system_localecCs�|��r8|�d�r8td�}|�|�t�|t|�d�nh|��r�t�|jdd�}|rjt	�	ddt|�g�q�t	�	dddt|�g�t
�d	�nd
|i}t�
||�dS)N�/previous-hostname�i��create_hostname_fileTZhostnamectlzset-hostnamez--transientz7create_hostname_file is False; hostname set transiently�HOSTNAME)r�endswithrZset_hostnamerZ
write_file�strZget_cfg_option_boolZ_cfgr�LOG�inforr )r�hostname�filenameZconfr,Zhost_cfgrrr�_write_hostnameks.
�����zDistro._write_hostnamecCs$|��r|j}n|j}||�|�fS)N)r�systemd_hostname_conf_fn�hostname_conf_fn�_read_hostname)rZhost_fnrrr�_read_system_hostname�szDistro._read_system_hostnamecCsx|��r |�d�r t�|���S|��rRt�dg�\}}|��}t|�rL|S|Sn"t�|�\}}d|vrp|dS|SdS)Nr*r2r-)	rr.rZload_text_file�stripr�lenrr')rr3�default�outZ_errr(r)rrrr7�szDistro._read_hostnamecCsZ|�|�}|��r.t�|j�t�||j�n(dt|�i}t�|j	|�t�
||j�dS)NZZONE)Z
_find_tz_filerrZdel_file�tz_local_fnZsym_linkr/rr �
clock_conf_fn�copy)rZtzZtz_fileZ	clock_cfgrrr�set_timezone�s
�zDistro.set_timezonecCs�|durg}t�d�r(t�d�dg}nt�d�ddg}|�d�|r^t|t�r^|�|�n|rvt|t�rv|�|�|�|�t	�
d|�}|�|�tj|dd	�dS)
NZdnfz Using DNF for package managementz Using YUM for package managementZyumz-tz-yz%s-%sF)Zcapture)r�whichr0�debug�append�
isinstancer/�list�extendrZexpand_package_list)rZcommand�argsr�cmdrrrrr�s 






zDistro.package_commandF)�forcecCs$|jjd|jdg|rtntd�dS)Nzupdate-sourcesZ	makecache)Zfreq)r
�runrr	r
)rrIrrr�update_package_sources�s
�zDistro.update_package_sources)N)r)N)NN)�__name__�
__module__�__qualname__r>rrZnetwork_conf_fnr6r5r=Zusr_lib_execZdhclient_lease_directoryZdhclient_lease_file_regexZrenderer_configsZprefer_fqdnrrrrr"rr4r8r7r@rrKrrrrrs<���




!r)Zloggingr$Z	cloudinitrrrrZcloudinit.distrosrrZ"cloudinit.distros.parsers.hostnamerZcloudinit.settingsr	r
Z	getLoggerrLr0rrrrr�<module>
s


© 2025 Cubjrnet7