509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!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ƒrÂd|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