�
܍~cm � � � d dl Z d dlmZ d dlmZ d dlmZmZmZ d dl m
Z
d dlmZ d dl
mZ d dlmZ ej e� � Z G d � d
ej � � ZdS )� N)�Optional)�log)�net�subp�util)� bsd_utils)�
ResolvConf)�renderer)�NetworkStatec � � e Zd ZdZdZd� Zd� Zdd�Zd� Zd� Z d � Z
dd
edee
ddfd
�Zd� Zdd�Zdd�Zd� Zd� Zd� ZdS )�BSDRendererzetc/resolv.confzetc/rc.confc �p � t j | j | j � � }t j ||�� � d S �N)�fn)r �target_path�target�
rc_conf_fnr �get_rc_config_value)�self�keyr s �3/usr/lib/python3/dist-packages/cloudinit/net/bsd.pyr zBSDRenderer.get_rc_config_value s4 � �
�
�d�k�4�?�
;�
;���%�c�b�1�1�1�1�1�1� c �r � t j | j | j � � }t j |||�� � d S r )r r r r r �set_rc_config_value)r r �valuer s r r zBSDRenderer.set_rc_config_value s6 � �
�
�d�k�4�?�
;�
;���%�c�5�R�8�8�8�8�8�8r Nc �` � |si }d | _ i | _ |� dd� � | _ d S )N�postcmdsT)r �interface_configurations�get� _postcmds)r �configs r �__init__zBSDRenderer.__init__ s7 � �� ��F����(*��%����J��5�5����r c
� � t j � � }|� � � D �]}|� d� � }|� d� � }|rt j d|� � r�E||vrt � d|� � n{|rq|ro|| }||k r`t � d||� � | � ||� � n5# t $ r t �
d� � |}Y n
w xY wn|| }t � d|� � d| j |< |