�
܍~cAV � � � d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlm Z m
Z
d dlmZm
Z
mZ d dlmZ ej e� � Zg d�Zg d�Zg d �Zd
� Zd� Zdd
�Zd� Zd� Zd� Zd� Z G d� de
j � � Zdd�Zdd�Z dS )� N)�Optional)�log)�subp�util)�ParserError�renderer�subnet_is_ipv6)�NetworkState)zpre-up�upzpost-up�downzpre-downz post-down)�
bridge_ageing�bridge_bridgeprio� bridge_fd�
bridge_gcinit�bridge_hello�
bridge_maxage�bridge_maxwait�
bridge_stp)�address�netmask� broadcast�network�metric�gateway�pointtopoint�media�mtu�hostname�
leasehours� leasetime�vendor�client�bootfile�server�hwaddr�provider�frame�netnum�endpoint�local�ttlc � � g }g d�}|� � � D ]�\ }}|dk r�|dk r|d �d|d ��}|rt||v rpt |� � t k rd� |� � }d|v r|� dd� � }|� d � ||� � � � ��t |� � S )
N)
r r r r r �pointopointr �scope�
dns_search�dns_nameserversr r �/�prefix� �_�-� {0} {1})�items�type�list�join�replace�append�format�sorted)�iface�subnet�content� valid_map�key�values �3/usr/lib/python3/dist-packages/cloudinit/net/eni.py�_iface_add_subnetrF @ s� � ��G�� � �I� �l�l�n�n�
=�
=�
��U��)�����)���%�i�0�0�0�&��2B�2B�C�E�� =�S�I�%�%��E�{�{�d�"�"���������c�z�z��k�k�#�s�+�+���N�N�=�/�/��U�;�;�<�<�<���'�?�?�� c
�� � |dk rg S g }g d�}g d�}ddi}| d dvr|� d� � | � � � D �]\ }}t |� � t k r| | rdnd }|r||v r�1|d
k r,|r*||k r#t � d| d ||� � �c||v rC|D ]?} |� d
� |� ||� � | � � � � �@��t |� � t k rd� |� � }|� d
� |� ||� � |� � � � ��t |� � S )Nr ) �control� device_id�driver�index�inet�mode�name�subnetsr8 )�bridge_pathcost�bridge_portprio�bridge_waitport�mac_address� hwaddressr8 )�bond�bridge�
infiniband�vlan�on�offr zZNetwork config: ignoring %s device-level mtu:%s because ipv4 subnet-level mtu:%s provided.rO r6 r3 )r< |