%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /snap/core18/current/usr/lib/python3/dist-packages/cloudinit/net/__pycache__/
Upload File :
Create Path :
Current File : //snap/core18/current/usr/lib/python3/dist-packages/cloudinit/net/__pycache__/bsd.cpython-36.pyc

3

�Ad�!�@s�ddlZddlmZddlmZddlmZmZmZddl	m
Z
ddlmZddl
mZddlmZeje�ZGd	d
�d
ej�ZdS)�N)�Optional)�log)�net�subp�util)�	bsd_utils)�
ResolvConf)�renderer)�NetworkStatec@s�eZdZdZdZdd�Zdd�Zd dd	�Zd
d�Zdd
�Z	dd�Z
d!eee
dd�dd�Zdd�Zd"dd�Zd#dd�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_valuecCs$tj|j|j�}tj|||d�dS)N)r)rr
rrr�set_rc_config_value)rr�valuerrrrrszBSDRenderer.set_rc_config_valueNcCs,|si}d|_i|_i|_|jdd�|_dS)NZpostcmdsT)r�interface_configurations�interface_configurations_ipv6�get�	_postcmds)r�configrrr�__init__szBSDRenderer.__init__cCstj�}�x�|j�D�]�}|jd�}|jd�}|r@tjd|�r@q||krVtjd|�nd|r�|r�||}||kr�tjd||�y|j||�Wq�t	k
r�tj
d�|}Yq�Xn||}tjd|��x:|jdg�D�](}|jd	�d
k�rZ|jd��stjd|jd
��q�tjd||jd
�|jd��|jd
�|jd�|jd��pL|jd�d�|j|<q�|jd	�dk�r�|jd��s�tjd|jd
��q�tjd||jd
�|jd��|jd
�|jd�|jd��p�|jd�d�|j
|<q�|jd	�dk�s�|jd	�dkr�d|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�subnets�type�static�netmaskz+Skipping IP %s, because there is no netmask�addresszConfiguring dev %s with %s / %s�mtu)r"r!r#�static6�prefixz*Skipping IP %s, because there is no prefix)r"r%r#ZdhcpZdhcp4�DHCP)rZget_interfaces_by_mac�iter_interfacesr�re�match�LOG�info�rename_interface�NotImplementedError�error�debugrr)r�settingsZ
ifname_by_mac�	interface�device_nameZ
device_mac�cur_name�subnetrrr�_ifconfig_entries$sn

""zBSDRenderer._ifconfig_entriesc
Cs2t|j��}x�|j�D]�}|jdg�}x�|D]�}|jd�dkrr|jd�}|r�t|jd��dkr�|jdd|d��nD|jd�d	kr,|jd�}|r�t|jd
��dkr�|jdd
|d��nq,||jdg�7}q,WqWx^|D]V}|jd�}|s�tjd�q�|jd��r|jd�n|jd�}	|jd�}|j	||	|�q�WdS)Nrrr �gateway�.�z0.0.0.0)�networkr!r6r$�:�z::�0)r9r%r6�routesr9zSkipping a bad route entryr!r%)
�listZiter_routesr'r�len�split�appendr*r/�	set_route)
rr0r=r1rr4r6Zrouter9r!rrr�_route_entriesps:







zBSDRenderer._route_entriesc	Csv|j}|j}xR|j�D]F}x@|jdg�D]0}d|krB|j|d�d|kr(|j|d�q(WqWy&ttjtj	|j
|j���}|j�Wn>t
k
r�tjtdtj	|j
|j��td�}|j�YnXxDt|�D]8}y|j|�Wq�tk
�rtjtd|�Yq�Xq�WxFt|�D]:}y|j|�Wn$tk
�rLtjtd|�YnX�qWtjtj	|j
|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�)rDZdns_searchdomainsr'r�extendrrZ	load_filerr
r�resolv_conf_fn�parse�IOErrorZlogexcr*�setZadd_nameserver�
ValueErrorZadd_search_domainZ
write_file�str)	rr0ZnameserversZ
searchdomainsr1r4Z
resolvconfZserverZdomainrrr�
_resolve_conf�sDzBSDRenderer._resolve_conf)�
network_state�	templates�returncCsH|r
||_|j|d�|j|d�|j|d�|j�|j|jd�dS)N)r0)�run)rr5rCrM�write_config�start_servicesr)rrNrOrrrr�render_network_state�sz BSDRenderer.render_network_statecCs|jj}dd�|�D�S)NcSsg|]\}}|dkr|�qS)r&r)�.0�k�vrrr�
<listcomp>�sz/BSDRenderer.dhcp_interfaces.<locals>.<listcomp>)r�items)rZicrrr�dhcp_interfaces�szBSDRenderer.dhcp_interfacesFcCs
t��dS)N)r-)rrQrrrrS�szBSDRenderer.start_servicescCs
t��dS)N)r-)rrrrrrR�szBSDRenderer.write_configcCs
t��dS)N)r-)rr6rrr�set_gateway�szBSDRenderer.set_gatewaycCs
t��dS)N)r-)rr3r2rrrr,�szBSDRenderer.rename_interfacecCs
t��dS)N)r-)rr9r!r6rrrrB�szBSDRenderer.set_route)N)NN)F)N)�__name__�
__module__�__qualname__rGrrrrr5rCrMr
r�dictrTrZrSrRr[r,rBrrrrrs"
L*1



r)r(ZtypingrZ	cloudinitrZloggingrrrZcloudinit.distrosrZ%cloudinit.distros.parsers.resolv_confrZ
cloudinit.netr	Zcloudinit.net.network_stater
Z	getLoggerr\r*ZRendererrrrrr�<module>s


Zerion Mini Shell 1.0