o
    x[hí	  ã                   @   sZ   d dl Z d dlZd dlZd dlmZmZmZ e  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d„Zd
dd„Zdd„ ZdS )ÚRendererNc              	   C   sº   | j  ¡ D ]U\}}d |¡}t | j|¡}||  ¡ v rd}n6t|tƒrTzdj|d |d d�}W n t	y?   t
 d|¡ Y nw | d¡}|rM|d	| 7 }|d
| j 7 }t ||¡ qd S )Nzetc/hostname.{}zdhcp
zinet {address} {netmask}ÚaddressÚnetmask)r   r   z#Invalid static configuration for %sÚmtuz
mtu %dÚ
)Úinterface_configurationsÚitemsÚformatr   Útarget_pathÚtargetÚdhcp_interfacesÚ
isinstanceÚdictÚKeyErrorÚLOGÚerrorÚgetÚinterface_routesr   Ú
write_file)Úselfr   Údevice_nameÚvÚif_fileÚfnÚcontentr   © r   ú7/usr/lib/python3/dist-packages/cloudinit/net/openbsd.pyÚwrite_config   s*   


ÿÿÿ
îzRenderer.write_configFc                 C   sÂ   t tt ¡  d¡d ƒdkƒ}| jst d¡ d S |r8tjddgdd� |  	¡ D ]}tjd	d
d|gdd� q(d S t
jj ¡  tjg d¢dddgd� tjg d¢dddgd� tjddgdd� d S )NÚ.r   é   z!openbsd generate postcmd disabledÚshz/etc/netstartT)ÚcaptureÚdhcpleasectlz-wÚ30)ÚrouteÚdelÚdefaulté   )r$   Úrcs)r'   Úflushr)   )ÚboolÚintÚplatformÚreleaseÚsplitÚ	_postcmdsr   Údebugr   r   r   ÚdhcpÚIscDhclientÚkill_dhcp_client)r   ÚrunÚhas_dhcpleasectlÚ	interfacer   r   r   Ústart_services"   s   
ÿÿzRenderer.start_servicesc                 C   sZ   |dkrd}t  | j|¡}|d }t ||¡ d S | 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   Únetworkr   Úgatewayr   r   r   r   r   r   Ú	set_route3   s*   ÿþýüûúùÿzRenderer.set_route©N)F)Ú__name__Ú
__module__Ú__qualname__r    r:   r>   r   r   r   r   r      s    

r   c                 C   s   t  ¡ S r?   )r   Ú
is_OpenBSD)r   r   r   r   Ú	availableF   s   rD   r?   )Úloggingr/   Úcloudinit.net.bsdÚ	cloudinitr   r   r   Ú	getLoggerr@   r   ÚbsdÚBSDRendererr   rD   r   r   r   r   Ú<module>   s   
: