Your IP : 216.73.217.13


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

U

�Ad�#�@sxddlmZmZddlmZddlmZmZddlmZddl	m
Z
ddlmZe�
e�ZGdd�dej�Zd	d
�ZdS)�)�distros�helpers)�log)�subp�util)�net_util)�HostnameConf)�PER_INSTANCEc@s�eZdZdZdZdZdZdgZdZddgZ	d	d
�Z
d&dd
�Zdd�Zdd�Z
edd��Zdd�Zdd�Zdd�Zdd�Zedd��Zd'dd�Zd d!�Zd(d"d#�Zd$d%�ZdS))�Distroz/etc/env.d/02localez/etc/locale.genz/etc/conf.d/netz/etc/conf.d/hostnamez
rc-servicezen_US.UTF-8zC.UTF8 UTF-8zen_US.UTF-8 UTF-8cCsBtj�||||�t�|�|_d|_d|d<t��r>t�	d�dS)NZgentooz/etc/init.d/sshdZssh_svcnamez/Cloud-init does not support systemd with gentoo)
rr
�__init__rZRunners�_runnerZosfamilyZuses_systemd�LOG�error)�self�nameZcfg�paths�r�:/usr/lib/python3/dist-packages/cloudinit/distros/gentoo.pyrszDistro.__init__NcCsFtj|jd�|j�dd�tjdgdd�tjddd	|jgdd�d
S)z�rc-only - not compatible with systemd

        Locales need to be added to /etc/locale.gen and generated prior
        to selection. Default to en_US.UTF-8 for simplicity.
        �
i�)�modez
locale-genF�ZcaptureZeselectZlocale�setN)r�
write_file�
locale_gen_fn�join�localesr�default_locale)r�_Zout_fnrrr�apply_locale+s�zDistro.apply_localecCs|��|jd|d�dS)N�)�pkgs)�update_package_sources�package_command)r�pkglistrrr�install_packages;szDistro.install_packagesc
	Cs�t�|�}t�d||�|��}g}|��D�]j\}}d|krL|�|d�|dkrVq,|jd|}|�d�}t	|t
tf�r�tt|���
dd�}d}	|�d�dkr�|	d	j|d
�7}	n@|	dj||�d�|�d
�|�d�d�7}	|	dj||�d�d�7}	|�d��r|	dj||d�7}	t�||	�|�|�|�d�r,dddj|d
�dg}
z*t�|
�\}}t|��rnt�d|
|�Wq,tjk
�r�t�td|
�Yq,Xq,|�r�t�|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}"
Zaddress�netmaskZ	hwaddress)rZ
ip_addressr)Zhwaddrz&routes_{name}="default via {gateway}"
�gateway)rr*z"dns_servers_{name}="{dnsservers}"
)rZ
dnsservers�autoz	rc-update�addz
net.{name}�default�(Running %s resulted in stderr output: %s�#Running interface command %s failed)rZtranslate_networkr
�debug�keys�items�extend�network_conf_fn�get�
isinstance�list�tuple�str�replace�formatrr�_create_network_symlinkr�len�warning�ProcessExecutionError�logexcZresolve_conf_fn�convert_resolv_conf)
r�settings�entriesZ	dev_namesZnameserversZdev�infoZnet_fnZdns_nameserversZresults�cmd�_out�errrrr�_write_network?s�
�
��	��


�
���zDistro._write_networkcCs&dj|d�}t�|�s"t�d|�dS)Nz/etc/init.d/net.{name}r(z/etc/init.d/net.lo)r;rZis_linkZsym_link)Zinterface_nameZ	file_pathrrrr<�s
zDistro._create_network_symlinkcCspd|dg}t�d||�z*t�|�\}}t|�r@t�d||�WdStjk
rjt�td|�YdSXdS)Nz/etc/init.d/net.%sZrestartz8Attempting to run bring up interface %s using command %sr.Tr/F)r
r0rr=r>r?rr@)rZdevice_namerErFrGrrr�_bring_up_interface�s$��zDistro._bring_up_interfacecCs�d}|D]}|dkrd}q|r�ddg}z(t�|�\}}t|�rLt�d||�Wn&tjk
rtt�td|�YdSXdd	�|�d
�D�}tj	�
||�Stj	�
||�SdS)NF�allTZlsz/etc/init.d/net.*r.r/cSsg|]}|�d�d�qS)r&�)�split)�.0�xrrr�
<listcomp>�sz/Distro._bring_up_interfaces.<locals>.<listcomp>z  )rr=r
r>r?rr@rLrr
�_bring_up_interfaces)rZdevice_namesZuse_all�drErFrGZdevicesrrrrP�s(�zDistro._bring_up_interfacescCsXd}z|�|�}Wntk
r&YnX|s4td�}|�d|�t�|t|�d�dS)Nrz
hostname="%s"i�)�_read_hostname_conf�IOErrorrZset_hostnamerrr9)r�hostname�filename�confrrr�_write_hostname�szDistro._write_hostnamecCs|�|j�}|j|fS�N)�_read_hostname�hostname_conf_fn)rZsys_hostnamerrr�_read_system_hostname�szDistro._read_system_hostnamecCstt�|��}|��|SrX)rrZ	load_file�parse)rUrVrrrrR�szDistro._read_hostname_confcCs:d}z|�|�}|j}Wntk
r,YnX|s6|S|SrX)rRrTrS)rrUr-rTrVrrrrY�s

zDistro._read_hostnamecCstj||�|�d�dS)N)�tzZtz_file)rZset_etc_timezoneZ
_find_tz_file)rr]rrr�set_timezone�szDistro.set_timezonecCs�td�}|�d�|dkr*|�ddg�nb|dkr6g}|rPt|t�rP|�|�n|rht|t�rh|�|�|rv|�|�t�d|�}|�|�tj|dd�dS)	NZemergez--quietZupgradez--updateZworldz%s-%sFr)r7�appendr3r6r9rZexpand_package_listr)rZcommand�argsr rEr#rrrr"�s



zDistro.package_commandcCs|jjd|jdgtd�dS)Nzupdate-sourcesz--sync)Zfreq)r�runr"r	)rrrrr!�s�zDistro.update_package_sources)N)N)NN)�__name__�
__module__�__qualname__Zlocale_conf_fnrr4rZZinit_cmdrrrrr$rH�staticmethodr<rIrPrWr[rRrYr^r"r!rrrrr
s.
F



r
cCs(d}t|t�r$|D]}|d|7}q|S)z4Returns a settings string formatted for resolv.conf.rznameserver %s
)r6r7)rB�result�nsrrrrA�s

rAN)Z	cloudinitrrrZloggingrrZcloudinit.distrosrZ"cloudinit.distros.parsers.hostnamerZcloudinit.settingsr	Z	getLoggerrbr
r
rArrrr�<module>	s
l