%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__/gentoo.cpython-35.pyc



"�T`s �@s�ddlmZddlmZddlmZddlmZddlmZddlmZddl	m
Z
ddlmZej
e�ZGd	d
�d
ej�Zdd�Zd
S)�)�distros)�helpers)�log)�subp)�util)�net_util)�HostnameConf)�PER_INSTANCEc@s�eZdZdZdZdZdZdgZdd�Zdd	d
�Z	dd�Z
d
d�Zedd��Z
dd�Zdd�Zdd�Zdd�Zedd��Zddd�Zdd�Zdddd �Zd!d"�ZdS)#�Distroz/etc/locale.genz/etc/conf.d/netz/etc/resolv.confz/etc/conf.d/hostnamez
rc-servicecCsBtjj||||�tj|�|_d|_d|d<dS)NZgentooz/etc/init.d/sshdZssh_svcname)rr
�__init__rZRunners�_runnerZosfamily)�self�nameZcfg�paths�r�:/usr/lib/python3/dist-packages/cloudinit/distros/gentoo.pyrs	zDistro.__init__NcCsa|s|j}tjdd|gdd�tj�d|dg}tj|dj|��dS)Nz
locale-genz-G�captureFz	LANG="%s"��
)�locale_conf_fnrrZmake_header�
write_file�join)r
Zlocale�out_fn�linesrrr�apply_locale(s			zDistro.apply_localecCs!|j�|jdd|�dS)Nr�pkgs)�update_package_sources�package_command)r
�pkglistrrr�install_packages4s
zDistro.install_packagesc
Csgtj|�}tjd||�|j�}g}x
|j�D]�\}}d|krj|j|d�|dkryqA|jd|}|jd�}t	|t
tf�r�tt|��j
dd�}d}	|jd�dkr|	d	jd
|�7}	nh|	djd
|d|jd
�d|jd�d|jd��7}	|	djd
|d|jd��7}	|jd�r�|	djd
|d|�7}	tj||	�|j|�|jd�rAdddjd
|�dg}
y8tj|
�\}}t|�rtjd|
|�WqAtjk
r?tjtd|
�YqAXqAW|rctj|jt|��|S)Nz3Translated ubuntu style network settings %s into %szdns-nameservers�lo�.�,rZ	bootprotoZdhcpzconfig_{name}="dhcp"rzEconfig_{name}="{ip_address} netmask {netmask}"
mac_{name}="{hwaddr}"
Z
ip_addressZaddressZnetmaskZhwaddrZ	hwaddressz&routes_{name}="default via {gateway}"
Zgatewayz"dns_servers_{name}="{dnsservers}"
Z
dnsserversZautoz	rc-update�addz
net.{name}�defaultz(Running %s resulted in stderr output: %sz#Running interface command %s failed)rZtranslate_network�LOG�debug�keys�items�extend�network_conf_fn�get�
isinstance�list�tuple�str�replace�formatrr�_create_network_symlinkr�len�warning�ProcessExecutionError�logexc�resolve_conf_fn�convert_resolv_conf)
r
�settings�entriesZ	dev_namesZnameserversZdev�infoZnet_fnZdns_nameserversZresults�cmd�_out�errrrr�_write_network8s\	
	

		
zDistro._write_networkcCs5djd|�}tj|�s1tjd|�dS)Nz/etc/init.d/net.{name}rz/etc/init.d/net.lo)r1rZis_linkZsym_link)Zinterface_nameZ	file_pathrrrr2pszDistro._create_network_symlinkcCs�d|dg}tjd||�y<tj|�\}}t|�rZtjd||�dSWn,tjk
r�tjtd|�dSYnXdS)Nz/etc/init.d/net.%sZrestartz8Attempting to run bring up interface %s using command %sz(Running %s resulted in stderr output: %sTz#Running interface command %s failedF)r%r&rr3r4r5rr6)r
Zdevice_namer<r=r>rrr�_bring_up_interfacevs	
	
zDistro._bring_up_interfacecCs�d}x |D]}|dkr
d}q
W|r�ddg}y8tj|�\}}t|�rrtjd||�Wn,tjk
r�tjtd|�dSYnXdd	�|jd
�D�}tj	j
||�Stj	j
||�SdS)NF�allTZlsz/etc/init.d/net.*z(Running %s resulted in stderr output: %sz#Running interface command %s failedcSs#g|]}|jd�d�qS)r!�)�split)�.0�xrrr�
<listcomp>�s	z/Distro._bring_up_interfaces.<locals>.<listcomp>z  )rr3r%r4r5rr6rCrr
�_bring_up_interfaces)r
Zdevice_namesZuse_all�dr<r=r>ZdevicesrrrrG�s"

		zDistro._bring_up_interfacescCsnd}y|j|�}Wntk
r-YnX|s@td�}|jd|�tj|t|�d�dS)Nrz
hostname="%s"i�)�_read_hostname_conf�IOErrorrZset_hostnamerrr/)r
Z
your_hostnamer�confrrr�_write_hostname�s
zDistro._write_hostnamecCs|j|j�}|j|fS)N)�_read_hostname�hostname_conf_fn)r
Zsys_hostnamerrr�_read_system_hostname�szDistro._read_system_hostnamecCs#ttj|��}|j�|S)N)rrZ	load_file�parse)�filenamerKrrrrI�s
zDistro._read_hostname_confcCsEd}y|j|�}|j}Wntk
r6YnX|sA|S|S)N)rI�hostnamerJ)r
rQr$rRrKrrrrM�s

zDistro._read_hostnamecCs#tjd|d|j|��dS)N�tzZtz_file)rZset_etc_timezoneZ
_find_tz_file)r
rSrrr�set_timezone�szDistro.set_timezonecCs�|dkrg}td�}|jd�|rPt|t�rP|j|�n"|rrt|t�rr|j|�|r�|j|�tjd|�}|j|�tj|dd�dS)NZemergez--quietz%s-%srF)r-�appendr,r/r)rZexpand_package_listr)r
Zcommand�argsrr<rrrrr�s



zDistro.package_commandcCs)|jjd|jddgdt�dS)Nzupdate-sourcesz-uZworldZfreq)rZrunrr	)r
rrrr�szDistro.update_package_sources)�__name__�
__module__�__qualname__rr*r7rNZinit_cmdrrrr?�staticmethodr2r@rGrLrOrIrMrTrrrrrrr
s&	
8r
cCs8d}t|t�r4x|D]}|d|7}qW|S)z4Returns a settings string formatted for resolv.conf.rznameserver %s
)r,r-)r9�result�nsrrrr8�s

r8N)Z	cloudinitrrrZloggingrrZcloudinit.distrosrZ"cloudinit.distros.parsers.hostnamerZcloudinit.settingsr	Z	getLoggerrWr%r
r8rrrr�<module>	s�

Zerion Mini Shell 1.0