
    }f	                         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ej                  j                  j                        ZddZy)    N)netsubputilc                        e Zd Zd ZddZd Zy)Rendererc                    | j                   j                         D ]  \  }}dj                  |      }t        j                  | j
                  |      }|| j                         v rd}nWt        |t              rG	 dj                  |d   |d         }|j                  d      }|rd	|z  z  }d
| j                  z   z  }t        j                  |        y # t        $ r t        j                  d|       Y gw xY w)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)selfdevice_namevif_filefncontentr   s          7/usr/lib/python3/dist-packages/cloudinit/net/openbsd.pywrite_configzRenderer.write_config   s    ";;AAC 	)NK'..{;G!!$++w7Bd2244"At$8?? !)a	l @ G eeEly3.G4$"7"777OOB(%	)   II={s   8CC98C9c                 H   t        t        t        j                         j	                  d      d         dkD        }| j
                  st        j                  d       y |rJt        j                  ddgd       | j                         D ]  }t        j                  d	d
d|gd        y t        j                  j                  j                          t        j                  g ddddg       t        j                  g ddddg       t        j                  ddgd       y )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	interfaces       r!   start_serviceszRenderer.start_services"   s    H$4$4$6$<$<S$A!$D E IJ~~II9:IIt_-t<!113 			#T4;T
 HH  113II14aVLII3T1vNIIt_-t<    c                     |dk(  r>d}t        j                  | j                  |      }|dz   }t        j                  ||       y | j
                  dz   |z   dz   |z   dz   |z   dz   | _        y )Nz0.0.0.0z
etc/mygater   z!route add z
 -netmask  )r   r   r   r   r   r   )r   networkr
   gatewayr   r   r    s          r!   	set_routezRenderer.set_route3   s    i"G!!$++w7BnGOOB( %%   	
    !r>   N)F)__name__
__module____qualname__r"   r=   rC    r>   r!   r   r      s    )*="r>   r   c                 *    t        j                         S N)r   
is_OpenBSD)r   s    r!   	availablerK   F   s    ??r>   rI   )loggingr2   cloudinit.net.bsd	cloudinitr   r   r   	getLoggerrD   r   bsdBSDRendererr   rK   rG   r>   r!   <module>rR      sJ       % %g!7y}}  ,, 7tr>   