3 \me! @ s d dl Z d dlZd dlmZ d dlmZmZmZ d dlm Z d dl mZ d dlm Z d dlmZ e jeZG dd d e jZdS ) N)Optional)netsubputil) bsd_utils) ResolvConf)renderer)NetworkStatec @ s e Zd ZdZdZdZdZdd Zdd Zdd d Z dd Z d d Zdd Zd e ee ddddZdd Zd!ddZd"ddZdd Zdd ZdS )#BSDRendererzetc/resolv.confzetc/rc.conf c C s" t j| j| j}tj||d d S )N)fn)r target_pathtarget rc_conf_fnr get_rc_config_value)selfkeyr r /usr/lib/python3.6/bsd.pyr s zBSDRenderer.get_rc_config_valuec C s$ t j| j| j}tj|||d d S )N)r )r r r r r set_rc_config_value)r r valuer r r r r s zBSDRenderer.set_rc_config_valueNc C s, |si }d | _ i | _i | _|jdd| _d S )NZpostcmdsT)r interface_configurationsinterface_configurations_ipv6get _postcmds)r configr r r __init__ s zBSDRenderer.__init__c C s t j }x|j D ]}|jd}|jd}|r@tjd|r@q||krVtjd| nd|r|r|| }||krtjd|| y| j|| W q t k r tj d |}Y qX n|| }tjd| x:|jdg D ](}|jd d krZ|jdstjd|jd qtjd||jd |jd |jd |jd|jdpL|jdd| j|<