3
\me @ sb d dl Z d dlZd dlmZ d dlmZ d dlmZ dd Zdd Z ed Z
G d
d de jZdS ) N)Optional)NetworkState)generate_udev_rulec s fddS )Nc s | d kS )Ntype )iface)
match_typer /usr/lib/python3.6/renderer.py s z filter_by_type..r )r r )r r filter_by_type s r c s fddS )Nc s | ko| S )Nr )r )
match_namer r r
s z filter_by_attr..r )r r )r r filter_by_attr s r
Zphysicalc @ sF e Zd Zd
ddZeedddZejdee e
dddd ZdS )RendererNc C s d S )Nr )selfconfigr r r __init__ s zRenderer.__init__)
network_statec C s^ t j }xL| jtD ]>}d|kr|jdr|jdd}|jt|d |d |d qW |j S )z2Given state, emit udev rules to map mac to ifname.nameZmac_addressdriverN)r )ioStringIOZiter_interfacesfilter_by_physicalgetwriter getvalue)r Zcontentr r r r r _render_persistent_net s zRenderer._render_persistent_net)r templatesreturnc C s dS )zRender network state.Nr )r r r targetr r r render_network_state0 s zRenderer.render_network_state)N)NN)__name__
__module____qualname__r staticmethodr r abcabstractmethodr dictr r r r r r s
r )
r$ r Ztypingr Zcloudinit.net.network_stater Zcloudinit.net.udevr r r
r ABCr r r r r s