a 'Dg^@s8ddlmZddlmZddlmZGdddeZdS))Optionalsubp)NetOpsc@seZdZed eeeejdddZed!eeeejdddZ eeeddd Z eddd eeeeeed d d Z eeeedddZ eddd eeeeeedddZ eedddZed"eeeedddZeeedddZeedddZdS)#Iproute2N) interfacefamilyreturncCs4g}|rd|g}tdg|ddd|dS)N-familyiplinksetdevZuprrrZ family_argsrA/usr/lib/python3.9/site-packages/cloudinit/net/netops/iproute2.pylink_ups zIproute2.link_upcCs4g}|rd|g}tdg|ddd|dS)Nr r r r rZdownrrrrr link_downs zIproute2.link_downZ current_namenew_namecCstddd|d|gdS)Nr r r namerrrrr link_renameszIproute2.link_rename)gatewaysource_address)rrouterrcCsPg}g}|r|dkrd|g}|r(d|g}tdddd|g|d||dS) N0.0.0.0viasrcr -4rreplacerr)rrrr gateway_args source_argsrrr add_route"s,  zIproute2.add_route)raddressrcCs<g}|r|dkrd|g}tdddd|g|d|dS)Nrrr rrappendrr)rr#rr rrr append_route>s" zIproute2.append_route)rr#rrcCsPg}g}|r|dkrd|g}|r(d|g}tdddd|g|d||dS) Nrrrr rrdelrr)rr#rrr r!rrr del_routePs,  zIproute2.del_route)r cCstgdjS)N)r rZshowz 0.0.0.0/0)rstdoutrrrrget_default_routelszIproute2.get_default_route)rr# broadcastcCs6g}|rd|g}tddddd|g|d|dS)Nr*r r inetaddraddrr)rr#r*Zbroadcast_argsrrradd_addrrs$ zIproute2.add_addrrr#c Cstddddd|d|gdS)Nr r r+r,r&rrr/rrrdel_addrszIproute2.del_addrrcCstdddd|gdS)Nr r,flushrrr1rrr flush_addrszIproute2.flush_addr)N)N)N)__name__ __module__ __qualname__ staticmethodstrrrZ SubpResultrrrr"r%r'r)r.r0r3rrrrrsZ   rN)typingrZ cloudinitrZcloudinit.net.netopsrrrrrrs