܍~cSddlZddlZddlmZddlmZmZddlmZdZ dZ dZ e dZ Gd d Z dS) N)Optional) NetworkStateparse_net_config_data)generate_udev_rulecfdS)Nc|dkS)Ntype)iface match_types 8/usr/lib/python3/dist-packages/cloudinit/net/renderer.pyz filter_by_type..uV}4r )r s`r filter_by_typer 4 4 4 44rcfdS)Nc|dkS)Nnamer r match_names r rz filter_by_name..rrr rs`r filter_by_namerrrcfdS)Nc|vo|SNr rs r rz filter_by_attr..s*-C% 2Crr rs`r filter_by_attrrs D D D DDrphysicalceZdZd dZedefdZej d dede e ddfdZ d de de e fd Z dS) RendererNcdSrr )selfconfigs r __init__zRenderer.__init__ s r network_statecJtj}|tD]b}d|vr\|drG|dd}|t |d|d|c|S)z2Given state, emit udev rules to map mac to ifname.r mac_addressdriverN)r()ioStringIOiter_interfacesfilter_by_physicalgetwritergetvalue)r%contentr r(s r _render_persistent_netzRenderer._render_persistent_net#s +--"223EFF  E599]#;#;8T22 &f u]';F !!!r templatesreturncdS)zRender network state.Nr )r"r%r2targets r render_network_statezRenderer.render_network_state4srnetwork_configcL|t|||S)N)r%r2r5)r6r)r"r7r2r5s r render_network_configzRenderer.render_network_config=s2 ((/??)   rr)NN) __name__ __module__ __qualname__r$ staticmethodrr1abcabstractmethodrdictr6r9r rr r r s    "l"""\"  %) $$#$D>$  $$$$%)     D>       rr )r>r)typingrcloudinit.net.network_staterrcloudinit.net.udevrrrrr,r r rr rDs KKKKKKKK111111555555EEE$^J//( ( ( ( ( ( ( ( ( ( r