a 'Dg@sbddlZddlZddlmZddlmZddlmZddZddZ ed Z Gd d d ej Z dS) N)Optional) NetworkState)generate_udev_rulecs fddS)Ncs |dkS)NtypeifaceZ match_typer:/usr/lib/python3.9/site-packages/cloudinit/net/renderer.pyz filter_by_type..rr rr r filter_by_typesr cs fddS)Ncs|vo|SNrrZ match_namerr r r z filter_by_attr..rrrrr filter_by_attrsrZphysicalc@sFeZdZd ddZeedddZejd ee e dddd Z dS) RendererNcCsdSrr)selfZconfigrrr __init__szRenderer.__init__) network_statecCsZt}|tD]>}d|vr|dr|dd}|t|d|d|dq|S)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 staticmethodrrabcabstractmethodrdictr!rrrr rs r) r&rtypingrZcloudinit.net.network_staterZcloudinit.net.udevrr rrABCrrrrr s