HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/cloudinit/distros/__pycache__/arch.cpython-310.pyc
o

�AdY!�@s�ddlZddlmZmZddlmZddlmZmZddlm	Z	ddl
mZddlm
Z
ddlmZdd	lmZe�e�ZGd
d�dej�Z		
		ddd�Zdd�Zdd�ZdS)�N)�distros�helpers)�log)�subp�util)�net_util)�HostnameConf)�Renderer)�RendererNotFoundError)�PER_INSTANCEcs�eZdZdZdZdgZddddd�iZd	d
�Zd)dd
�Zdd�Z	de
f�fdd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd)dd �Zd!d"�Zd#d$�Zd*d%d&�Zd'd(�Z�ZS)+�Distroz/etc/locale.genz/etc/netctl�	systemctl�netplanz/etc/netplan/50-cloud-init.yamlz# generated by cloud-init
T)�netplan_path�netplan_header�postcmdscCs0tj�||||�t�|�|_d|_d|d<dS)N�arch�sshd�ssh_svcname)rr�__init__r�Runners�_runner�osfamily)�self�name�cfg�paths�r�8/usr/lib/python3/dist-packages/cloudinit/distros/arch.pyr!szDistro.__init__NcCsj|dur|dkrt�d|�t��d|dg}t�|jd�|��tjdgdd�tjd	d
|gdd�dS)Nz/etc/locale.confzFInvalid locale_configfile %s, only supported value is /etc/locale.confz%s UTF-8��
z
locale-genF��capture�	localectlz
set-locale)�LOG�warningr�make_header�
write_file�
locale_gen_fn�joinr)r�locale�out_fn�linesrrr�apply_locale*s��zDistro.apply_localecCs|��|jd|d�dS)Nr)�pkgs)�update_package_sources�package_command)r�pkglistrrr�install_packages=szDistro.install_packages�returnc
s,zt���WSty}zt|�d}~ww�N)�super�
_get_rendererr
�NotImplementedError)r�e��	__class__rrr6As��zDistro._get_renderercCs.t�|�}t�d||�t||j|j|jd�S)Nz3Translated ubuntu style network settings %s into %s)�resolv_conf�conf_dir�enable_func)r�translate_networkr$�debug�_render_network�resolve_conf_fn�network_conf_dir�_enable_interface)r�settings�entriesrrr�_write_networkHs
��zDistro._write_networkcCs`dd|g}zt�|�\}}t|�rt�d||�WdSWdStjy/t�td|�YdSw)N�netctl�reenable�(Running %s resulted in stderr output: %s�#Running interface command %s failed)r�lenr$r%�ProcessExecutionErrorr�logexc�r�device_name�cmd�_out�errrrrrCVs

���zDistro._enable_interfacecCshdd|g}t�d||�zt�|�\}}t|�rt�d||�WdStjy3t�td|�YdSw)NrG�restartz8Attempting to run bring up interface %s using command %srITrJF)r$r?rrKr%rLrrMrNrrr�_bring_up_interfaceas"
���zDistro._bring_up_interfacecCsVd}z|�|�}Wn	tyYnw|std�}|�|�tj|t|�ddd�dS)Nr�wi�)�omode�mode)�_read_hostname_conf�IOErrorr�set_hostnamerr'�str)r�hostname�filename�confrrr�_write_hostnamess�
zDistro._write_hostnamecCs|�|j�}|j|fSr4)�_read_hostname�hostname_conf_fn)r�sys_hostnamerrr�_read_system_hostname�s
zDistro._read_system_hostnamecCstt�|��}|��|Sr4)rr�	load_file�parse)rr]r^rrrrX�szDistro._read_hostname_confcCs8d}z
|�|�}|j}Wn	tyYnw|s|S|Sr4)rXr\rY)rr]�defaultr\r^rrrr`�s

�zDistro._read_hostnamecCsJt�d|�zt�ddd|g�WdStjy$t�td|�YdSw)Nz2Non-persistently setting the system hostname to %s�hostnamectlz--transientzset-hostnamez;Failed to non-persistently adjust the system hostname to %s)r$r?rrLrrM)rr\rrr�_apply_hostname�s�
��zDistro._apply_hostnamecCstj||�|�d�dS)N)�tz�tz_file)r�set_etc_timezone�
_find_tz_file)rrirrr�set_timezone�szDistro.set_timezonecCs�|durg}gd�}|rt|t�r|�|�n|r#t|t�r#|�|�|dkr)d}|r0|�|�t�d|�}|�|�tj|dd�dS)N)�pacmanz-Syz--quietz--noconfirm�upgradez-uz%s-%sFr!)�
isinstancer[�append�list�extendr�expand_package_listr)r�command�argsr.rPr1rrrr0�s


zDistro.package_commandcCs|jjd|jdgtd�dS)Nzupdate-sourcesz-y)�freq)r�runr0r)rrrrr/�s
�zDistro.update_package_sourcesr4)NN)�__name__�
__module__�__qualname__r(rB�init_cmd�renderer_configsrr-r2r	r6rFrCrTr_rcrXr`rhrmr0r/�
__classcell__rrr9rrs2��
	



r�/�
etc/netctl�etc/resolv.confc
Cs�g}g}t�||�}t�||�}|��D]P\}}|dkrq|�|�tj�||�}	d||�d�d|�d�|�d�f|�d�|�dg�d	�}
t�	|	t
|
��|rY|�d
�rY||�d|vrd|�|d�q|rot�	|t|��|S)znRender the translate_network format into netctl files in target.
    Paths will be rendered under target.
    �lo�ethernet�	bootprotoz%s/%s�address�netmask�gatewayzdns-nameservers)�
Connection�	Interface�IP�Address�Gateway�DNS�auto)
r�target_path�itemsrq�os�pathr)�getrr'�convert_netctlrs�convert_resolv_conf)rE�targetr<r;r=�devs�nameservers�dev�info�net_fn�net_cfgrrrr@�s2

��r@cCsng}t|�D]+}||}|durd}nt|ttf�r(dd�dd�|D��d}|�d||f�qd�|�S)	z�Given a dictionary, returns a string in netctl profile format.

    netctl profile is described at:
    https://git.archlinux.org/netctl.git/tree/docs/netctl.profile.5.txt

    Note that the 'Special Quoting Rules' are not handled here.Nr�(� css�|]}d|VqdS)z'%s'Nr)�.0�vrrr�	<genexpr>�s�z!convert_netctl.<locals>.<genexpr>�)z%s=%s
)�sortedrp�tuplerrr)rq)rD�result�key�valrrrr��s
r�cCs(d}t|t�r|D]}|d|}q	|S)z4Returns a settings string formatted for resolv.conf.rznameserver %s
)rprr)rDr��nsrrrr��s

r�)rr�r�N)r��	cloudinitrrr�loggingrr�cloudinit.distrosr�"cloudinit.distros.parsers.hostnamer�cloudinit.net.rendererr	�cloudinit.net.renderersr
�cloudinit.settingsr�	getLoggerryr$rr@r�r�rrrr�<module>s&
1
�)