Your IP : 216.73.217.13


Current Path : /usr/lib/python3/dist-packages/cloudinit/distros/__pycache__/
Upload File :
Current File : //usr/lib/python3/dist-packages/cloudinit/distros/__pycache__/arch.cpython-38.pyc

U

�AdY!�@s�ddlZddlmZmZddlmZddlmZmZddlm	Z	ddl
mZddlm
Z
ddlmZdd	lmZe�e�ZGd
d�dej�Zddd�Zdd�Zdd�ZdS)�N)�distros�helpers)�log)�subp�util)�net_util)�HostnameConf)�Renderer)�RendererNotFoundError)�PER_INSTANCEcs�eZdZdZdZdgZddddd�iZd	d
�Zd)dd
�Zdd�Z	e
d��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/netctlZ	systemctlZnetplanz/etc/netplan/50-cloud-init.yamlz# generated by cloud-init
T)Znetplan_pathZnetplan_headerZpostcmdscCs0tj�||||�t�|�|_d|_d|d<dS)NZarchZsshdZssh_svcname)rr�__init__rZRunners�_runnerZosfamily)�self�nameZcfg�paths�r�8/usr/lib/python3/dist-packages/cloudinit/distros/arch.pyr
!szDistro.__init__NcCsj|dk	r|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�ZcaptureZ	localectlz
set-locale)�LOG�warningrZmake_header�
write_file�
locale_gen_fn�joinr)rZlocaleZout_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:zt���WStk
r4}z
t|�W5d}~XYnXdS�N)�super�
_get_rendererr
�NotImplementedError)r�e��	__class__rrr&As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)rZtranslate_networkr�debug�_render_networkZresolve_conf_fn�network_conf_dir�_enable_interface)r�settings�entriesrrr�_write_networkHs
��zDistro._write_networkcCs\dd|g}z(t�|�\}}t|�r0t�d||�Wn$tjk
rVt�td|�YnXdS)N�netctlZreenable�(Running %s resulted in stderr output: %s�#Running interface command %s failed)r�lenrr�ProcessExecutionErrorr�logexc�rZdevice_name�cmdZ_out�errrrrr1Vs
�zDistro._enable_interfacecCsndd|g}t�d||�z*t�|�\}}t|�r>t�d||�WdStjk
rht�td|�YdSXdS)Nr5Zrestartz8Attempting to run bring up interface %s using command %sr6Tr7F)rr.rr8rr9rr:r;rrr�_bring_up_interfaceas$
��zDistro._bring_up_interfacecCsXd}z|�|�}Wntk
r&YnX|s4td�}|�|�tj|t|�ddd�dS)Nr�wi�)Zomode�mode)�_read_hostname_conf�IOErrorrZset_hostnamerr�str)r�hostname�filename�confrrr�_write_hostnamess
zDistro._write_hostnamecCs|�|j�}|j|fSr$)�_read_hostnameZhostname_conf_fn)rZsys_hostnamerrr�_read_system_hostname�szDistro._read_system_hostnamecCstt�|��}|��|Sr$)rrZ	load_file�parse)rrErFrrrrA�szDistro._read_hostname_confcCs:d}z|�|�}|j}Wntk
r,YnX|s6|S|Sr$)rArDrB)rrE�defaultrDrFrrrrH�s

zDistro._read_hostnamecCsLt�d|�zt�ddd|g�Wn$tjk
rFt�td|�YnXdS)Nz2Non-persistently setting the system hostname to %sZhostnamectlz--transientzset-hostnamez;Failed to non-persistently adjust the system hostname to %s)rr.rr9rr:)rrDrrr�_apply_hostname�s��zDistro._apply_hostnamecCstj||�|�d�dS)N)�tzZtz_file)rZset_etc_timezoneZ
_find_tz_file)rrMrrr�set_timezone�szDistro.set_timezonecCs�|dkrg}ddddg}|r2t|t�r2|�|�n|rJt|t�rJ|�|�|dkrVd}|rd|�|�t�d|�}|�|�tj|dd	�dS)
NZpacmanz-Syz--quietz--noconfirmZupgradez-uz%s-%sFr)�
isinstancerC�append�list�extendrZexpand_package_listr)rZcommand�argsrr<r!rrrr �s


zDistro.package_commandcCs|jjd|jdgtd�dS)Nzupdate-sourcesz-y)Zfreq)r�runr r)rrrrr�s�zDistro.update_package_sources)N)N)NN)�__name__�
__module__�__qualname__rr0Zinit_cmdZrenderer_configsr
rr"r	r&r4r1r>rGrIrArHrLrNr r�
__classcell__rrr)rrs0��	





r�/�
etc/netctl�etc/resolv.confc
Cs�g}g}t�||�}t�||�}|��D]�\}}|dkr:q(|�|�tj�||�}	d||�d�d|�d�|�d�f|�d�|�dg�d	�}
t�	|	t
|
��|r�|�d
�r�||�d|kr(|�|d�q(|r�t�	|t|��|S)znRender the translate_network format into netctl files in target.
    Paths will be rendered under target.
    �loZethernetZ	bootprotoz%s/%sZaddressZnetmaskZgatewayzdns-nameservers)Z
ConnectionZ	InterfaceZIPZAddressZGatewayZDNS�auto)
rZtarget_path�itemsrP�os�pathr�getrr�convert_netctlrR�convert_resolv_conf)r3�targetr,r+r-ZdevsZnameserversZdev�infoZnet_fnZnet_cfgrrrr/�s0

�r/cCsng}t|�D]V}||}|dkr&d}n*t|ttf�rPdd�dd�|D��d}|�d||f�qd�|�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>�sz!convert_netctl.<locals>.<genexpr>�)z%s=%s
)�sortedrO�tuplerQrrP)r2�result�key�valrrrrb�srbcCs(d}t|t�r$|D]}|d|}q|S)z4Returns a settings string formatted for resolv.conf.rznameserver %s
)rOrQ)r2rn�nsrrrrc�s

rc)rYrZr[N)r_Z	cloudinitrrrZloggingrrZcloudinit.distrosrZ"cloudinit.distros.parsers.hostnamerZcloudinit.net.rendererr	Zcloudinit.net.renderersr
Zcloudinit.settingsrZ	getLoggerrUrrr/rbrcrrrr�<module>s$
1�
)