o x[h^@s8ddlmZddlmZddlmZGdddeZdS))Optionalsubp)NetOpsc @s<eZdZe d!dedeedejfddZe d!dedeedejfddZ ed ed efd d Z eddd dededeedeefddZ edededefddZ eddd dededeedeefddZ edefddZe d!dededeefddZededefddZedefdd ZdS)"Iproute2N interfacefamilyreturncC4g}|rd|g}tdg|ddd|dS)N-familyiplinksetdevuprrr family_argsr?/usr/lib/python3/dist-packages/cloudinit/net/netops/iproute2.pylink_up zIproute2.link_upcCr )Nr r r rrdownrrrrr link_downrzIproute2.link_down current_namenew_namecCstddd|d|gdS)Nr r rnamer)rrrrr link_renameszIproute2.link_rename)gatewaysource_addressrouterrcCPg}g}|r|dkrd|g}|rd|g}tdddd|g|d||dS) N0.0.0.0viasrcr -4rreplacerr)rrrr gateway_args source_argsrrr add_route",  zIproute2.add_routeaddresscCs<g}|r |dkr d|g}tdddd|g|d|dS)Nr!r"r r$rappendrr)rr*rr&rrr append_route>s" zIproute2.append_routecCr ) Nr!r"r#r r$rdelrr)rr*rrr&r'rrr del_routePr)zIproute2.del_routecCstgdjS)N)r rshowz 0.0.0.0/0)rstdoutrrrrget_default_routels zIproute2.get_default_route broadcastcCs6g}|rd|g}tddddd|g|d|dS)Nr2r r inetaddraddrr)rr*r2broadcast_argsrrradd_addrrs$ zIproute2.add_addrc Cstddddd|d|gdS)Nr r r3r4r-rr)rr*rrrdel_addrszIproute2.del_addrcCstdddd|gdS)Nr r4flushrr)rrrr flush_addrszIproute2.flush_addr)N)__name__ __module__ __qualname__ staticmethodstrrr SubpResultrrrr(r,r.r1r7r8r:rrrrrs|       rN)typingr cloudinitrcloudinit.net.netopsrrrrrrs