File: //snap/core18/2956/usr/lib/python3/dist-packages/cloudinit/net/__pycache__/renderer.cpython-36.pyc
3
�AdS � @ sj d dl Z d dlZd dlmZ d dlmZmZ d dlmZ dd� Z dd� Z
d d
� Ze d�ZG dd
� d
�Z
dS )� N)�Optional)�NetworkState�parse_net_config_data)�generate_udev_rulec s � fdd�S )Nc s � | d kS )N�type� )�iface)�
match_typer �8/usr/lib/python3/dist-packages/cloudinit/net/renderer.py�<lambda> s z filter_by_type.<locals>.<lambda>r )r r )r r
�filter_by_type s r c s � fdd�S )Nc s � | d kS )N�namer )r )�
match_namer r
r s z filter_by_name.<locals>.<lambda>r )r r )r r
�filter_by_name s r c s � fdd�S )Nc s � | ko| � S )Nr )r )r r r
r s z filter_by_attr.<locals>.<lambda>r )r r )r r
�filter_by_attr s r Zphysicalc @ s\ e Zd Zd
dd�Zeed�dd��Zejdee e
dd�dd ��Zde
e e
d
�dd�ZdS )�RendererNc C s d S )Nr )�self�configr r r
�__init__ s zRenderer.__init__)�
network_statec C s^ t j� }xL| jt�D ]>}d|kr|jd�r|jdd�}|jt|d |d |d�� qW |j� S )z2Given state, emit udev rules to map mac to ifname.r
Zmac_address�driverN)r )�io�StringIOZiter_interfaces�filter_by_physical�get�writer �getvalue)r Zcontentr r r r r
�_render_persistent_net# s zRenderer._render_persistent_net)r � templates�returnc C s dS )zRender network state.Nr )r r r �targetr r r
�render_network_state4 s zRenderer.render_network_state)�network_configr c C s | j t|�||d�S )N)r r r )r! r )r r"