�
*C�e� � �p � d Z ddlZddlZddlZddlZddlZddlZddlmZ G d� de � Z
G d� de� Zy)znetplan configuration manager� N)�Optionalc �t � e Zd Zdi fd�Zd� Zed� � Zed� � Zdd�Zd� Z dd �Z
d
� Zd� Zd� Z
d
� Zdd�Zy)�
ConfigManager�/c �> � || _ t j d�� | _ t j
j
| j d� | _ t j
j
| j d� | _ || _ t � | _ d | _ y )N�netplan_)�prefix�etc�run)
r �tempfile�mkdtemp�tempdir�os�path�join�temp_etc�temp_run�extra_files�set�new_interfaces�np_state)�selfr r s �//usr/share/netplan/netplan_cli/configmanager.py�__init__zConfigManager.__init__ sh � �����'�'�z�:��������T�\�\�5�9��
������T�\�\�5�9��
�&���!�e���15��
� c �T � | j �J d� �t | j |� S �Nz.Must call parse() before accessing the config.)r �getattr)r �attrs r �__getattr__zConfigManager.__getattr__( s) � ��}�}�(�Z�*Z�Z�(��t�}�}�d�+�+r c � � | j �J d� �i }|j | j j � |j | j j � |j | j j � |S r )r �update� ethernets�modems�wifis�r �
interfacess r �physical_interfacesz!ConfigManager.physical_interfaces, sk � ��}�}�(�Z�*Z�Z�(��
����$�-�-�1�1�2����$�-�-�.�.�/����$�-�-�-�-�.��r c �6 � | j �J d� �i }|j | j j � |j | j j � |j | j j � |j | j j
� |j | j j � |j | j j � |j | j j � |S r ) r r" |