
    ܍~c)
                         d dl Zd dlmZ d dlmZmZ  ej        e          Z G d dej	        j
        j                  ZddZdS )    N)log)subputilc                   :     e Zd Zd fd	Zd Zd Zd	dZd Z xZS )
RendererNc                 d    d| _         t          t          |                                            d S )Nr   )
_route_cptsuperr   __init__)selfconfig	__class__s     7/usr/lib/python3/dist-packages/cloudinit/net/freebsd.pyr   zRenderer.__init__   s,    h&&(((((    c                 8    |                      d|z  |           d S )Nzifconfig_%s_name)set_rc_config_value)r   cur_namedevice_names      r   rename_interfacezRenderer.rename_interface   s$      !3h!>LLLLLr   c                 >   | j                                         D ]\  }}d}t          |t                    rM|                    d          dz   |                    d          z   }|                    d          }|r|d|z  z  }|                     d|z   |           d S )NDHCPaddressz	 netmask netmaskmtuz mtu %d	ifconfig_)interface_configurationsitems
isinstancedictgetr   )r   r   v
net_configr   s        r   write_configzRenderer.write_config   s    ";AACC 	L 	LNKJ!T"" 2UU9--;aeeI>N>NN
eeEll 2)c/1J$$[;%>
KKKK	L 	Lr   Fc                 x   |st                               d           d S |                                 D ]}t          j        ddd|gddgd            t          j        g d	d
           t          j        g ddddg           |                                 D ]}t          j        ddd|gddgd            d S )Nz!freebsd generate postcmd disabledservicedhclientstopr      T)rcscapture)r%   netifrestart)r*   )r%   routingr,   )r*   r)   start)LOGdebugdhcp_interfacesr   )r   rundhcp_interfaces      r   start_serviceszRenderer.start_services   s    	II9:::F"2244 	 	N IJ?F     		1114@@@@ 		333T1vNNNN"2244 	 	NIJ@F    	 	r   c                     |dk    r|                      d|           d S d| j        z  }d|d|d|}|                      ||           | xj        dz  c_        d S )Nz0.0.0.0defaultrouterzroute_net%dz-route / r(   )r   r	   )r   networkr   gateway
route_name	route_cmds         r   	set_routezRenderer.set_route:   sw    i$$_g>>>>>&8JJ-4WWgggwwGI$$Z;;;OOq OOOOr   N)F)	__name__
__module____qualname__r   r   r#   r4   r=   __classcell__)r   s   @r   r   r   
   s        ) ) ) ) ) )M M ML L L   <! ! ! ! ! ! !r   r   c                 N    t          j                    pt          j                    S r>   )r   
is_FreeBSDis_DragonFlyBSD)targets    r   	availablerG   D   s    ?6 4 6 66r   r>   )cloudinit.net.bsd	cloudinitr   loggingr   r   	getLoggerr?   r/   netbsdBSDRendererr   rG    r   r   <module>rP      s        $ $ $ $ $ $                g!!7! 7! 7! 7! 7!y} , 7! 7! 7!t7 7 7 7 7 7r   