3 \me@sbddlZddlZddlmZddlmZddlmZddZddZ ed Z Gd d d ej Z dS) N)Optional) NetworkState)generate_udev_rulecs fddS)Ncs |dkS)Ntype)iface) match_typer/usr/lib/python3.6/renderer.pysz filter_by_type..r)rr)rr filter_by_typesr cs fddS)Ncs|ko|S)Nr)r) match_namerr r sz filter_by_attr..r)r r)r r filter_by_attrsr Zphysicalc@sFeZdZd ddZeedddZejd ee e dddd Z dS) RendererNcCsdS)Nr)selfconfigrrr __init__szRenderer.__init__) network_statecCs^tj}xL|jtD]>}d|kr|jdr|jdd}|jt|d|d|dqW|jS)z2Given state, emit udev rules to map mac to ifname.nameZ mac_addressdriverN)r)ioStringIOZiter_interfacesfilter_by_physicalgetwritergetvalue)rZcontentrrrrr _render_persistent_nets zRenderer._render_persistent_net)r templatesreturncCsdS)zRender network state.Nr)rrrtargetrrr render_network_state0szRenderer.render_network_state)N)NN) __name__ __module__ __qualname__r staticmethodrrabcabstractmethodrdictrrrrr rs  r) r$rZtypingrZcloudinit.net.network_staterZcloudinit.net.udevrr r rABCrrrrr s