U
K��^�D � @ s� d dl Z d dlZd dlZd dlZd dlZd dlmZmZ d dlm Z d dl
mZ d dlm
Z
d dlmZ d dlmZmZ d dlmZ d d lmZ d d
lmZ d dlmZmZ e�d�ZG d
d� de�ZdZG dd� de
�Z dS )� N)�IFF_UP�NetworkEventReceiver)�SingleInstanceTask)�with_context)�BaseController)�
write_file)�BondParameters�NetDevAction)�netplan��StretchyOverlay)�NetworkView)�arun_command�run_commandz subiquitycore.controller.networkc sL e Zd Zdd� Zdd� Zdd� Zdd� Z� fd d
�Zdd� Zd
d� Z � Z
S )�SubiquityNetworkEventReceiverc C s$ || _ d | _g | _t� | _i | _d S �N)�model�view�default_route_watchers�set�default_routes�dhcp_events)�selfr � r �9/usr/share/subiquity/subiquitycore/controllers/network.py�__init__/ s
z&SubiquityNetworkEventReceiver.__init__c C s0 | j �||�}| jd k r,|d k r,| j�|� d S r )r �new_linkr )r �ifindex�link�netdevr r r r 6 s z&SubiquityNetworkEventReceiver.new_linkc C sD | j �|�}|| jkr"| j�|� | jd k r@|d k r@| j�|� d S r )r �del_linkr �remover )r r r r r r r ; s
z&SubiquityNetworkEventReceiver.del_linkc C s� | j �|�}|d krd S t|jdd�}|t@ sZ|| jkrZ| j�|� | jD ]}|| j� qJ|j� � D ]\}}|�
� | rd|�� qd| jd k r�| j�|� d S )N�flagsr )
r �update_link�getattr�infor r r! r r �items�dhcp_addressesr r )r r r r" |