
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
3
\me	                 @   sZ   d dl Z d dlZd dlZd dl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)netsubputilc               @   s&   e Zd Zdd Zd	ddZdd ZdS )
Rendererc             C   s   x| j j D ]\}}dj|}tj| j|}|| j kr>d}nnt|trydj|d |d d}W n  t	k
r   t
jd| Y nX |jd}|r|d	| 7 }|d
| j 7 }tj|| qW d S )Nzetc/hostname.{}zdhcp
zinet {address} {netmask}addressnetmask)r   r   z#Invalid static configuration for %smtuz mtu %d
)Zinterface_configurationsitemsformatr   target_pathtargetdhcp_interfaces
isinstancedictKeyErrorLOGerrorgetinterface_routesr   
write_file)selfZdevice_namevif_filefncontentr    r   /usr/lib/python3.6/openbsd.pywrite_config   s"    


zRenderer.write_configFc             C   s   t ttj jdd dk}| js2tjd d S |rrtjddgdd xz| j	 D ]}tjd	d
d|gdd qRW nRt
jjj  tjdddgdddgd tjdddgdddgd tjddgdd d S )N.r      z!openbsd generate postcmd disabledZshz/etc/netstartT)captureZdhcpleasectlz-wZ30Zroutedeldefault   )r!   rcsflush)boolintplatformreleasesplitZ	_postcmdsr   debugr   r   r   ZdhcpZIscDhclientZkill_dhcp_client)r   ZrunZhas_dhcpleasectlZ	interfacer   r   r   start_services"   s    
zRenderer.start_servicesc             C   sX   |dkr0d}t j| j|}|d }tj|| n$| jd | d | d | d | _d S )Nz0.0.0.0z
etc/mygater	   z!route add z
 -netmask  )r   r   r   r   r   r   )r   Znetworkr   Zgatewayr   r   r   r   r   r   	set_route3   s    
zRenderer.set_routeN)F)__name__
__module____qualname__r   r-   r/   r   r   r   r   r      s   
r   c             C   s   t j S )N)r   Z
is_OpenBSD)r   r   r   r   	availableF   s    r3   )N)Zloggingr)   Zcloudinit.net.bsdZ	cloudinitr   r   r   Z	getLoggerr0   r   ZbsdZBSDRendererr   r3   r   r   r   r   <module>   s   
: