f~ddlZddlZddlmZddlmZddlmZdZdZ edZ Gdd ejZ y) N)Optional) NetworkState)generate_udev_rulecfdS)Nc|dk(S)Ntype)iface match_types 8/usr/lib/python3/dist-packages/cloudinit/net/renderer.pyz filter_by_type..suV}4r )r s`r filter_by_typers 44rcfdS)Nc|vxr|SNr )r match_names r r z filter_by_attr..s*-C% 2Crr )rs`r filter_by_attrrs DDrphysicalcheZdZddZedefdZej d dede e ddfdZ y) RendererNcyrr )selfconfigs r __init__zRenderer.__init__s r network_statectj}|jtD]N}d|vs|j ds|j dd}|j t |d|d|P|jS)z2Given state, emit udev rules to map mac to ifname.name mac_addressdriverN)r )ioStringIOiter_interfacesfilter_by_physicalgetwritergetvalue)rcontentr r s r _render_persistent_netzRenderer._render_persistent_nets ++-"223EF E599]#;8T2 &f u]';F  !!r templatesreturncy)zRender network state.Nr )rrr*targets r render_network_statezRenderer.render_network_state0srr)NN) __name__ __module__ __qualname__r staticmethodrr)abcabstractmethodrdictr.r rr rrsd "l""  %) $#$D>$  $$rr) r3r!typingrcloudinit.net.network_statercloudinit.net.udevrrrr$ABCrr rr r:s> 415E$J/$sww$r