
"·T`  ã               @   s}   d  d l  m Z d  d l  m Z d  d l  m Z d  d l Z  e j e ƒ Z Gd d „  d e  j	 j
 j ƒ Z d d d „ Z d S)	é    )Úlog)Úsubp)ÚutilNc               @   s7   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 } nX t | t ƒ r³ y$ d j d | d d | d ƒ } Wn" t	 k
 r² t
 j d | ƒ Yn Xt j | | ƒ q Wd  S)Nzetc/hostname.{}zdhcp
zinet {address} {netmask}
ZaddressÚnetmaskz#Invalid static configuration for %s)Zinterface_configurationsÚitemsÚformatr   Útarget_pathÚtargetZdhcp_interfacesÚ
isinstanceÚdictÚKeyErrorÚLOGÚerrorr   Ú
write_file)ÚselfZdevice_nameÚvÚif_fileÚfnÚcontent© r   ú7/usr/lib/python3/dist-packages/cloudinit/net/openbsd.pyÚwrite_config   s    		
zRenderer.write_configFc             C   s7   |  j  s t j d ƒ d  St j d d g d d ƒd  S)Nz!openbsd generate postcmd disabledZshz/etc/netstartZcaptureT)Z	_postcmdsr   Údebugr   )r   Zrunr   r   r   Ústart_services   s    	zRenderer.start_servicesc             C   sE   | d k rA d } t  j |  j | ƒ } | d } t j | | ƒ d  S)Nz0.0.0.0z
etc/mygateÚ
)r   r	   r
   r   r   )r   Znetworkr   Zgatewayr   r   r   r   r   r   Ú	set_route%   s
    
zRenderer.set_routeN)Ú__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   Ú	available-   s    r    )Z	cloudinitr   Zloggingr   r   Zcloudinit.net.bsdZ	getLoggerr   r   ZnetZbsdZBSDRendererr   r    r   r   r   r   Ú<module>   s   "