3 \�me� � @ s� U d dl Z d dlZd dlZd dlmZmZmZmZ d dlm Z m Z d dlmZm Z mZmZmZmZmZmZmZ er~d dlmZ eje�ZdZdddd giZd ddd dddddddddddgZdddddddd d!d"d#d$d%d&d'd(�d)d*d+dd,d-dd.d/d0dd1�d2�Zeeeeef f edd3�d4d5�Z d6d7� Z!G d8d9� d9e"�Z#d:d;� Z$G d<d=� d=�Z%G d>d?� d?�Z&d@dA� Z'f fdBdC�Z(dDdE� Z)dFdG� Z*dLee+e%dI�dJdK�Z,dS )M� N)� TYPE_CHECKING�Any�Dict�Optional)�safeyaml�util) �find_interface_name_from_mac�get_interfaces_by_mac�ipv4_mask_to_net_prefix�ipv6_mask_to_net_prefix� is_ip_network�is_ipv4_network�is_ipv6_address�is_ipv6_network�net_prefix_to_ipv4_mask)�Renderer� �version�config� network_state� addresses�dhcp4zdhcp4-overrides�dhcp6zdhcp6-overrides�gateway4�gateway6� interfaces�match�mtu�nameservers�rendererzset-name� wakeonlanz accept-raz ad-selectzarp-intervalz arp-ip-targetzarp-validatez down-delayzfail-over-mac-policyz lacp-ratezmii-monitor-intervalz min-links�modezgratuitous-arpZprimaryzprimary-reselect-policyzup-delayztransmit-hash-policy)zbond-ad-selectzbond-arp-intervalzbond-arp-ip-targetzbond-arp-validatezbond-downdelayzbond-fail-over-maczbond-lacp-ratezbond-miimonzbond-min-linksz bond-modezbond-num-grat-arpzbond-primaryzbond-primary-reselectzbond-updelayzbond-xmit-hash-policyzageing-timeZpriorityz forward-delayz hello-timezmax-agez path-costz port-priority�stp)Z bridge_ageingZbridge_bridgeprioZ bridge_fdZbridge_gcintZbridge_helloZ bridge_maxageZbridge_maxwaitZbridge_pathcostZbridge_portprio� bridge_stpZbridge_waitport)�bond�bridge)�dikt�returnc C s$ d| ksd| kr t jdddd� dS )z8Warn about deprecations of v2 properties for all devicesr r z$The use of `gateway4` and `gateway6`z22.4zhFor more info check out: https://cloudinit.readthedocs.io/en/latest/topics/network-config-format-v2.html)Z deprecatedZdeprecated_versionZ extra_messageN)r Z deprecate)r&