
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
3
\me                  @   sV   d dl Z d dlZd dlmZmZmZmZ e jeZ	G dd dejj
jZdddZdS )    N)distrosnetsubputilc                   s@   e Zd Zd fdd	Zdd Zdd Zdd	d
Zdd Z  ZS )RendererNc                s   d| _ tt| j  d S )Nr   )
_route_cptsuperr   __init__)selfconfig)	__class__ /usr/lib/python3.6/freebsd.pyr	      s    zRenderer.__init__c             C   s   | j d| | d S )Nzifconfig_%s_name)set_rc_config_value)r
   Zcur_namedevice_namer   r   r   rename_interface   s    zRenderer.rename_interfacec             C   s   xp| j j D ]b\}}t|trRd|jd|jdf }|jd}|r^|d| 7 }n|dkr^d}| jd| | qW xb| jj D ]T\}}t|trd|jd|jd	f }|jd}|r|d| 7 }| jd
| | q~W d S )Nzinet %s netmask %sZaddressnetmaskmtuz mtu %dZDHCPZ	ifconfig_zinet6 %s/%dprefixzifconfig_%s_ipv6)Zinterface_configurationsitems
isinstancedictgetr   Zinterface_configurations_ipv6)r
   r   vZ
net_configr   r   r   r   write_config   s*    



zRenderer.write_configFc             C   s   |st jd d S x$| j D ]}tjjj|tjj	 qW t
j
dddgdd t
j
dddgddd	gd
 x$| j D ]}tjjj|tjj	 qpW d S )Nz!freebsd generate postcmd disabledZserviceZnetifZrestartT)captureZroutingr      )r   rcs)LOGdebugZdhcp_interfacesr   ZdhcpZIscDhclientZstop_servicer   ZfreebsdZDistror   Zstart_service)r
   ZrunZdhcp_interfacer   r   r   start_services.   s    
zRenderer.start_servicesc             C   s   |dkr| j d| nz|dkr,| j d| ndd| j }d| d| d| }| j d	| | | j d| | _| j d
| jj  |  jd7  _d S )Nz0.0.0.0Zdefaultrouterz::Zipv6_defaultrouterr   z-net z
 -netmask  Zroute_Zstatic_routesr   )r   r   Zroute_namesstrip)r
   Znetworkr   ZgatewayZ
route_nameZ	route_cmdr   r   r   	set_routeH   s    zRenderer.set_route)N)F)	__name__
__module____qualname__r	   r   r   r    r#   __classcell__r   r   )r   r   r      s
   
r   c             C   s   t j pt j S )N)r   Z
is_FreeBSDZis_DragonFlyBSD)targetr   r   r   	availableV   s    r)   )N)ZloggingZcloudinit.net.bsdZ	cloudinitr   r   r   r   Z	getLoggerr$   r   ZbsdZBSDRendererr   r)   r   r   r   r   <module>   s
   
K