File: //snap/core22/current/usr/lib/python3/dist-packages/cloudinit/net/__pycache__/eni.cpython-310.pyc
o
쑛hx` �
@ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm Z m
Z
mZmZ d dl
mZmZmZ d dlmZmZmZmZmZmZmZ d dlmZ e�e�Zg d�Zg d�Zg d �Z d
e!de!de"d
ee# fdd�Z$d
e!de%dee# d
ee# fdd�Z& d+d
e!de"d
ee# fdd�Z'de!de#de#de#d
df
dd�Z(e�)d�de#d
e!fd d!��Z*de!d
e!fd"d#�Z+d$e#de"d
e"fd%d&�Z,G d'd(� d(ej-�Z-d
e"fd)d*�Z.dS ),� N)�suppress)�Any�Dict�List�Optional)�performance�subp�util)�ParserError�is_ipv4_address�is_ipv4_network�is_ipv6_address�is_ipv6_network�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�ttl�iface�subnet�is_ipv6�returnc C s� g }g d�}|� � D ]U\}}|dkrq
|dkr!d|d |d f }|r_||v r_t|t�rB|dkr<tttjt|d�|��}d�|�}n
|dkrLt||�sLq
d |v rV|�d d
�}|� d�
||�� q
t|�S )N)
r r r r r! �pointopointr$ �scope�
dns_search�dns_nameserversr r z%s/%s�prefixr: )r5 � �_�-� {0} {1})�items�
isinstance�list�filter� functools�partial�has_same_ip_version�join�replace�append�format�sorted)r3 r4 r5 �content� valid_map�key�value� rP �3/usr/lib/python3/dist-packages/cloudinit/net/eni.py�_iface_add_subnetJ s8
���
��rR �index�ipv4_subnet_mtuc C s |dkrg S g }g d�}g d�}ddi}| d dvr|� d� | �� D ]c\}}|�||�} d| v r7| �dd �} t|t�rD| | rBd
nd}|rJ||v rKq#|dkr`|r`||kr_t�d
| d ||� q#||v rs|D ]}
|� d�| |
�� qfq#t|t �r}d�
|�}|� d�| |�� q#t|�S )Nr )
�control� device_id�dns�driverrS �inet�mode�name�subnets�type)�bridge_pathcost�bridge_portprio�bridge_waitport�mac_address� hwaddressr] )�bond�bridge�
infiniband�vlanr= r>