File: //snap/core20/2599/usr/lib/python3/dist-packages/cloudinit/net/__pycache__/freebsd.cpython-38.pyc
U
Ӈg� � @ sV d dl Z d dlZd dlmZmZmZmZ e �e�Z G dd� dejj
j�Zddd�Z
dS )� N)�distros�net�subp�utilc s@ e Zd Zd
� fdd� Zdd� Zdd� Zdd d
�Zdd� Z� ZS )�RendererNc s d| _ tt| ��� d S )Nr )�
_route_cpt�superr �__init__)�selfZconfig�� __class__� �7/usr/lib/python3/dist-packages/cloudinit/net/freebsd.pyr s zRenderer.__init__c C s | � d| |� d S )Nzifconfig_%s_name)�set_rc_config_value)r
Zcur_name�device_namer
r
r �rename_interface s zRenderer.rename_interfacec C s� | j �� D ]b\}}t|t�rPd|�d�|�d�f }|�d�}|r\|d| 7 }n|dkr\d}| �d| |� q
| j�� D ]T\}}t|t�r�d|�d�|�d �f }|�d�}|r�|d| 7 }| �d
| |� qxd S )Nzinet %s netmask %sZaddress�netmask�mtuz mtu %dZDHCPZ ifconfig_zinet6 %s/%d�prefixzifconfig_%s_ipv6)Zinterface_configurations�items�
isinstance�dict�getr Zinterface_configurations_ipv6)r
r �vZ
net_configr r
r
r �write_config s2
�
�
�zRenderer.write_configFc C s� |st �d� d S | �� D ]}tjj�|tjj � qt
j
dddgdd� t
j
dddgddd gd
� | �� D ]}tjj�|tjj � qjd S )Nz!freebsd generate postcmd disabledZserviceZnetifZrestartT)�captureZroutingr � )r Zrcs)�LOG�debugZdhcp_interfacesr ZdhcpZIscDhclientZstop_servicer ZfreebsdZDistror Z
start_service)r
�runZdhcp_interfacer
r
r �start_services. s
� �zRenderer.start_servicesc C s� |dkr| � d|� n�|dkr,| � d|� n�d| j� �}d|kr�d|� d|� d |� �}| � d
| |� | j� d |� �| _| � d| j�� � nJd|� d|� d |� �}| � d
| |� | j� d |� �| _| � d| j�� � | jd7 _d S )Nz0.0.0.0Z
defaultrouterz::Zipv6_defaultrouterr �:z-net �/� Zipv6_route_Zipv6_static_routesz
-netmask Zroute_Z
static_routesr )r r Zroute6_names�stripZroute_names)r
Znetworkr ZgatewayZ
route_nameZ route_cmdr
r
r � set_routeH s* � �zRenderer.set_route)N)F) �__name__�
__module__�__qualname__r r r r r% �
__classcell__r
r
r r r s
r c C s t �� pt �� S )N)r Z
is_FreeBSDZis_DragonFlyBSD)�targetr
r
r � available` s r+ )N)ZloggingZcloudinit.net.bsdZ cloudinitr r r r Z getLoggerr&