x[hjnddlZddlZddlmZddlmZddlmZdZdZ GddejZ 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 DDrcheZdZddZedefdZej d dede e ddfdZ y) RendererNcyrr )selfconfigs r __init__zRenderer.__init__s r network_statec tj}|jtdD]N}d|vs|j ds|j dd}|j t |d|d|P|jS)z2Given state, emit udev rules to map mac to ifname.physicalname mac_addressdriverN)r )ioStringIOiter_interfacesrgetwritergetvalue)rcontentr r s r _render_persistent_netzRenderer._render_persistent_nets ++-"22>*3MN E599]#;8T2 &f u]';F  !!r templatesreturncy)zRender network state.Nr )rrr)targets r render_network_statezRenderer.render_network_state-srr)NN) __name__ __module__ __qualname__r staticmethodrr(abcabstractmethodrdictr-r rr rrsd "l""  %) $#$D>$  $$rr) r2r!typingrcloudinit.net.network_statercloudinit.net.udevrrrABCrr rr r9s1 415E$sww$r