%PDF- %PDF-
Mini Shell

Mini Shell

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



"�T`$�@s�ddlZddlmZddlmZddlmZddlmZddlmZddl	m
Z
dd	lmZej
e�ZGd
d�dej�ZdS)�N)�log)�net)�util)�subp)�
ResolvConf)�	bsd_utils�)�rendererc@s�eZdZdZdZdd�Zdd�Zddd	�Zdd
d�Zddd
�Z	ddd�Z
dddd�Zdd�Zddd�Z
ddd�Zdd�Zdd�Zdd�ZdS)�BSDRendererzetc/resolv.confzetc/rc.confcCs/tj|j|j�}tj|d|�dS)N�fn)r�target_path�target�
rc_conf_fnr�get_rc_config_value)�self�keyr�r�3/usr/lib/python3/dist-packages/cloudinit/net/bsd.pyrszBSDRenderer.get_rc_config_valuecCs2tj|j|j�}tj||d|�dS)Nr)rrr
rr�set_rc_config_value)rr�valuerrrrrszBSDRenderer.set_rc_config_valueNcCs7|si}d|_i|_|jdd�|_dS)NZpostcmdsT)r
�interface_configurations�get�	_postcmds)r�configrrr�__init__s
		zBSDRenderer.__init__c	Cs�tj�}x�|j�D]�}|jd�}|jd�}|rXtjd|�rXq||krwtjd|�n~|r�|r�||}||kr�tjd||�y|j||�Wq�t	k
r�tj
d�|}Yq�Xn
||}tjd|�d|j|<x�|jd	g�D]�}|jd
�dkr%|jd�sktjd
|jd��q%tjd||jd�|jd��d|jd�d|jd�i|j|<q%WqWdS)N�nameZmac_addressz^lo\d+$z"Cannot find any device with MAC %sz,netif service will rename interface %s to %sz.Interface renaming is not supported on this OSzConfiguring interface %s�DHCP�subnets�type�static�netmaskz+Skipping IP %s, because there is no netmaskZaddresszConfiguring dev %s with %s / %s)
rZget_interfaces_by_mac�iter_interfacesr�re�match�LOG�info�rename_interface�NotImplementedError�errorr�debug)	r�settingsr
Z
ifname_by_mac�	interface�device_nameZ
device_mac�cur_name�subnetrrr�_ifconfig_entries$sB
	



zBSDRenderer._ifconfig_entriesc	Cs4t|j��}x�|j�D]�}|jdg�}x�|D]�}|jd�dkr\q>|jd�}|r�t|jd��dkr�|jddd	dd|i�||jd
g�7}q>WqWxd|D]\}|jd�}	|	s�tjd�q�|jd	�}
|jd�}|j	|	|
|�q�WdS)Nrrr�gateway�.��networkz0.0.0.0r �routeszSkipping a bad route entry)
�listZiter_routesr!r�len�split�appendr$r)�	set_route)rr*r
r4r+rr.r0Zrouter3r rrr�_route_entriesQs*
!


zBSDRenderer._route_entriesc
Cs�|j}|j}xk|j�D]]}xT|jdg�D]@}d|kr[|j|d�d|kr8|j|d�q8WqWy2ttjtj	||j
���}|j�WnJtk
r�tj
tdtj	||j
��td�}|j�YnXxG|D]?}y|j|�Wqtk
rDtj
td|�YqXqWxG|D]?}	y|j|	�WqPtk
r�tj
td|	�YqPXqPWtjtj	||j
�t|�d�dS)	Nr�dns_nameserversZ
dns_searchz&Failed to parse %s, use new empty file�zFailed to add nameserver %szFailed to add search domain %si�)r;Zdns_searchdomainsr!r�extendrrZ	load_filerr�resolv_conf_fn�parse�IOErrorZlogexcr$Zadd_nameserver�
ValueErrorZadd_search_domainZ
write_file�str)
rr*r
ZnameserversZ
searchdomainsr+r.Z
resolvconfZserverZdomainrrr�
_resolve_confhs<		




zBSDRenderer._resolve_confcCsQ|jd|�|jd|�|jd|�|j�|jd|j�dS)Nr*�run)r/r:rC�write_config�start_servicesr)rZ
network_stateZ	templatesr
rrr�render_network_state�s

z BSDRenderer.render_network_statecCs |jj}dd�|�D�S)NcSs(g|]\}}|dkr|�qS)rr)�.0�k�vrrr�
<listcomp>�s	z/BSDRenderer.dhcp_interfaces.<locals>.<listcomp>)r�items)rZicrrr�dhcp_interfaces�szBSDRenderer.dhcp_interfacesFcCs
t��dS)N)r')rrDrrrrF�szBSDRenderer.start_servicescCs
t��dS)N)r')rr
rrrrE�szBSDRenderer.write_configcCs
t��dS)N)r')rr0rrr�set_gateway�szBSDRenderer.set_gatewaycCs
t��dS)N)r')rr-r,rrrr&�szBSDRenderer.rename_interfacecCs
t��dS)N)r')rr3r r0rrrr9�szBSDRenderer.set_route)�__name__�
__module__�__qualname__r>rrrrr/r:rCrGrMrFrErNr&r9rrrrr
s-&r
)r"Z	cloudinitrZloggingrrrZ%cloudinit.distros.parsers.resolv_confrZcloudinit.distrosrr<r	Z	getLoggerrOr$ZRendererr
rrrr�<module>s

Zerion Mini Shell 1.0