o x[hj@sZddlZddlZddlmZddlmZddlmZddZddZ Gd d d ej Z dS) N)Optional) NetworkState)generate_udev_rulec fddS)Ncs |dkS)Ntypeiface match_typer8/usr/lib/python3/dist-packages/cloudinit/net/renderer.pys z filter_by_type..rr rr r filter_by_type rcr)Ncs|vo|SNrr match_namerr r sz filter_by_attr..rrrrr filter_by_attrrrc@sNeZdZd ddZedefddZej  d dede e ddfd d Z dS) RendererNcCsdSrr)selfconfigrrr __init__szRenderer.__init__ network_statecCs^t}|tdD]}d|vr*|dr*|dd}|t|d|d|dq |S)z2Given state, emit udev rules to map mac to ifname.physicalname mac_addressdriverN)r)ioStringIOiter_interfacesrgetwritergetvalue)rcontentr rrrr _render_persistent_nets zRenderer._render_persistent_net templatesreturncCsdS)zRender network state.Nr)rrr%targetrrr render_network_state-szRenderer.render_network_stater)NN) __name__ __module__ __qualname__r staticmethodrr$abcabstractmethodrdictr(rrrr rs r) r-rtypingrcloudinit.net.network_statercloudinit.net.udevrrrABCrrrrr s