�
܍~c)
� � � d dl Zd dlmZ d dlmZmZ ej e� � Z G d� dej j
j � � Zdd�Z
dS )� N)�log)�subp�utilc �: � � e Zd Zd� fd� Zd� Zd� Zd d�Zd� Z� xZS )
�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 zRenderer.__init__ s, �� ����
�h����&�&�(�(�(�(�(� c �8 � | � d|z |� � d S )Nzifconfig_%s_name)�set_rc_config_value)r �cur_name�device_names r �rename_interfacezRenderer.rename_interface s$ � �� � �!3�h�!>��L�L�L�L�Lr c �> � | j � � � D ]�\ }}d}t |t � � rM|� d� � dz |� 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_configzRenderer.write_config s� � �"�;�A�A�C�C� L� L�N�K���J��!�T�"�"�
2��U�U�9�-�-��;�a�e�e�I�>N�>N�N�
��e�e�E�l�l��� 2��)�c�/�1�J��$�$�[�;�%>�
�K�K�K�K� L� Lr Fc �x � |st � d� � d S | � � � D ]}t j ddd|gddgd�� � � t j g d �d�
� � t j g d�dddg�� � | � � � D ]}t j ddd
|gddgd�� � � 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_serviceszRenderer.start_services s � �� ��I�I�9�:�:�:��F�"�2�2�4�4� � �N�
�I��J���?���F��
�
�
�
�
�
� �1�1�1�4�@�@�@�@�
� �3�3�3�T��1�v�N�N�N�N�"�2�2�4�4� � �N��I��J���@���F��
�
�
�
�
� � r c � � |dk r| � d|� � d S d| j z }d|�d|�d|��}| � ||� � | xj dz
c_ d S )Nz0.0.0.0�
defaultrouterzroute_net%dz-route �/� r( )r r )r �networkr �gateway�
route_name� route_cmds r � set_routezRenderer.set_route: sw � ��i����$�$�_�g�>�>�>�>�>�&���8�J�J�-4�W�W�g�g�g�w�w�G�I��$�$�Z��;�;�;��O�O�q� �O�O�O�Or �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 � � pt j � � S r> |