
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
3
\me                 @   sb   d dl Z d dlZd dlmZ d dlmZ d dlmZ dd Zdd Z	ed	Z
G d
d de jZdS )    N)Optional)NetworkState)generate_udev_rulec                s    fddS )Nc                s    | d kS )Ntype )iface)
match_typer   /usr/lib/python3.6/renderer.py<lambda>   s    z filter_by_type.<locals>.<lambda>r   )r   r   )r   r	   filter_by_type   s    r   c                s    fddS )Nc                s    | ko|   S )Nr   )r   )
match_namer   r	   r
      s    z filter_by_attr.<locals>.<lambda>r   )r   r   )r   r	   filter_by_attr   s    r   Zphysicalc               @   sF   e Zd Zd
ddZeedddZejdee	e
 dddd	ZdS )RendererNc             C   s   d S )Nr   )selfconfigr   r   r	   __init__   s    zRenderer.__init__)network_statec             C   s^   t j }xL| jtD ]>}d|kr|jdr|jdd}|jt|d |d |d qW |j S )z2Given state, emit udev rules to map mac to ifname.nameZmac_addressdriverN)r   )ioStringIOZiter_interfacesfilter_by_physicalgetwriter   getvalue)r   Zcontentr   r   r   r   r	   _render_persistent_net   s    zRenderer._render_persistent_net)r   	templatesreturnc             C   s   dS )zRender network state.Nr   )r   r   r   targetr   r   r	   render_network_state0   s    zRenderer.render_network_state)N)NN)__name__
__module____qualname__r   staticmethodr   r   abcabstractmethodr   dictr   r   r   r   r	   r      s   
 
r   )r$   r   Ztypingr   Zcloudinit.net.network_stater   Zcloudinit.net.udevr   r   r   r   ABCr   r   r   r   r	   <module>   s   