
"·T`š  ã               @   s}   d  d l  m Z d  d l Z  d  d l  m Z d  d l  m Z e j e ƒ Z Gd d „  d e  j	 j
 j ƒ Z d d d „ Z d S)	é    )ÚlogN)Úsubp)Úutilc                   sX   e  Z d  Z d ‡  f d d † Z d d „  Z d d „  Z d d	 d
 „ Z d d „  Z ‡  S)ÚRendererNc                s    d |  _  t t |  ƒ j ƒ  d  S)Nr   )Ú
_route_cptÚsuperr   Ú__init__)ÚselfÚconfig)Ú	__class__© ú7/usr/lib/python3/dist-packages/cloudinit/net/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   sx   xq |  j  j ƒ  D]` \ } } t | t ƒ r\ |  j d | | j d ƒ d | j d ƒ ƒ q |  j d | d ƒ q Wd  S)NZ	ifconfig_Zaddressz	 netmask ÚnetmaskZDHCP)Zinterface_configurationsÚitemsÚ
isinstanceÚdictr   Úget)r	   r   Úvr   r   r   Úwrite_config   s    $zRenderer.write_configFc             C   s¡   | s t  j d ƒ d  St j d d d g d d ƒt j d d d g d d d d	 d
 g ƒx? |  j ƒ  D]1 } t j d d d | g d d	 d
 g d d ƒqh Wd  S)Nz!freebsd generate postcmd disabledÚserviceZnetifZrestartZcaptureTZroutingZrcsr   é   Zdhclient)ÚLOGÚdebugr   Zdhcp_interfaces)r	   ZrunZdhcp_interfacer   r   r   Ústart_services   s    (zRenderer.start_servicesc             C   sb   | d k r |  j  d | ƒ n? d |  j } d | | | f } |  j  | | ƒ |  j d 7_ d  S)Nz0.0.0.0Zdefaultrouterzroute_net%dz-route %s/%s %sr   )r   r   )r	   Znetworkr   ZgatewayZ
route_nameZ	route_cmdr   r   r   Ú	set_route0   s    zRenderer.set_route)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   )r   r   r      s
   	r   c             C   s
   t  j ƒ  S)N)r   Z
is_FreeBSD)Útargetr   r   r   Ú	available:   s    r"   )Z	cloudinitr   ZloggingZcloudinit.net.bsdr   r   Z	getLoggerr   r   ZnetZbsdZBSDRendererr   r"   r   r   r   r   Ú<module>   s   /