%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /snap/core20/2582/lib/python3/dist-packages/cloudinit/net/__pycache__/
Upload File :
Create Path :
Current File : //snap/core20/2582/lib/python3/dist-packages/cloudinit/net/__pycache__/bsd.cpython-38.pyc

U

Ӈg�!�@s�ddlZddlZddlmZddlmZmZmZddlm	Z	ddl
mZddlm
Z
ddlmZe�e�ZGdd	�d	e
j�ZdS)
�N)�Optional)�net�subp�util)�	bsd_utils)�
ResolvConf)�renderer)�NetworkStatec@s�eZdZdZdZdZdZdZdd�Zdd�Z	dd	d
�Z
dd�Zd
d�Zdd�Z
d eeedd�dd�Zdd�Zd!dd�Zd"dd�Zdd�Zdd�ZdS)#�BSDRendererzetc/resolv.confzetc/rc.conf�cCs"t�|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$t�|j|j�}tj|||d�dSr)rrrrr�set_rc_config_value)rr�valuer
rrrrszBSDRenderer.set_rc_config_valueNcCs,|si}d|_i|_i|_|�dd�|_dS)NZpostcmdsT)r�interface_configurations�interface_configurations_ipv6�get�	_postcmds)rZconfigrrr�__init__szBSDRenderer.__init__c
Cst��}|��D�]�}|�d�}|�d�}|r<t�d|�r<q||krRt�d|�nd|r�|r�||}||kr�t�d||�z|�||�Wq�t	k
r�t�
d�|}Yq�Xn||}t�d|�|�dg�D�](}|�d	�d
k�rR|�d��st�d|�d
��q�t�d||�d
�|�d��|�d
�|�d�|�d��pD|�d�d�|j|<q�|�d	�dk�r�|�d��s�t�d|�d
��q�t�d||�d
�|�d��|�d
�|�d�|�d��p�|�d�d�|j
|<q�|�d	�dk�s�|�d	�dkr�d|j|<q�qdS)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's�

����������zBSDRenderer._ifconfig_entriesc
Cs$t|���}|��D]�}|�dg�}|D]�}|�d�dkrn|�d�}|r�t|�d��dkr�|�dd|d��nD|�d�d	kr(|�d�}|r�t|�d
��dkr�|�dd
|d��nq(||�dg�7}q(q|D]T}|�d�}|s�t�d�q�|�d�r�|�d�n|�d�}	|�d�}|�	||	|�q�dS)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_entriesssF
��
��

��
zBSDRenderer._route_entriesc	Csd|j}|j}|��D]B}|�dg�D]0}d|kr>|�|d�d|kr$|�|d�q$qz&tt�t�	|j
|j���}|��Wn>t
k
r�t�tdt�	|j
|j��td�}|��YnXt|�D]6}z|�|�Wq�tk
r�t�td|�Yq�Xq�t|�D]:}z|�|�Wn$tk
�r<t�td|�YnX�qt�t�	|j
|j�t|�d�dS)	Nr�dns_nameserversZ
dns_searchz&Failed to parse %s, use new empty filerzFailed to add nameserver %szFailed to add search domain %si�)rDZdns_searchdomainsr'r�extendrrZload_text_filerrr�resolv_conf_fn�parse�IOErrorZlogexcr*�setZadd_nameserver�
ValueErrorZadd_search_domainZ
write_file�str)	rr0ZnameserversZ
searchdomainsr1r4Z
resolvconfZserverZdomainrrr�
_resolve_conf�sL����zBSDRenderer._resolve_conf)�
network_state�	templates�returncCsH|r
||_|j|d�|j|d�|j|d�|��|j|jd�dS)N)r0)�run)rr5rCrL�write_config�start_servicesr)rrMrNrrrr�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-)rrPrrrrR�szBSDRenderer.start_servicescCs
t��dSrZr[)rrrrrrQ�szBSDRenderer.write_configcCs
t��dSrZr[)rr3r2rrrr,�szBSDRenderer.rename_interfacecCs
t��dSrZr[)rr9r!r6rrrrB�szBSDRenderer.set_route)N)NN)F)N)�__name__�
__module__�__qualname__rFrZinterface_routesZroute_namesZroute6_namesrrrr5rCrLr	r�dictrSrYrRrQr,rBrrrrr
s.
L*1��

r
)Zloggingr(�typingrZ	cloudinitrrrZcloudinit.distrosrZ%cloudinit.distros.parsers.resolv_confrZ
cloudinit.netrZcloudinit.net.network_stater	Z	getLoggerr\r*ZRendererr
rrrr�<module>s


Zerion Mini Shell 1.0