f XddlmZddlmcmZddlmZGddejZy))OptionalNsubpc (eZdZeddedeefdZeddedeefdZeddddededeed eefd Zeded edefd Z edddded edeed eefd Z edefdZ eded edefdZ eded efdZ y)Iproute2N interfacefamilycRtjdg|rd|gngzddd|dgzy)Nip-familylinksetdevuprrr s ?/usr/lib/python3/dist-packages/cloudinit/net/netops/iproute2.pylink_upzIproute2.link_ups7 F&, 6"" 6ueY5 6 cRtjdg|rd|gngzddd|dgzy)Nr r r rrdownrrs r link_downzIproute2.link_downs7 F&, 6"" 6ueY7 8 r)gatewaysource_addressrouterrc~tjdddd|g|r |dk7rd|gngzd|gz|r d|gzygzy) Nr -4radd0.0.0.0viarsrcr)rrrrs r add_routezIproute2.add_routesl 4% /#*w)/Cw M  +9~&  B ?A  B raddressc^tjdddd|g|r |dk7rd|gngzd|gzy)Nr rrappendrrrr)rr"rs r append_routezIproute2.append_route*sB 4(G 4#*w)/Cw Mi  ! rc~tjdddd|g|r |dk7rd|gngzd|gz|r d|gzygzy) Nr rrdelrrrr r)rr"rrs r del_routezIproute2.del_route2sg 4% 1#*w)/Cw Mi  !+9~& B ?A B rreturncDtjgdjS)N)r rshowz 0.0.0.0/0)rstdoutrrget_default_routezIproute2.get_default_routeAsyy 0 & r broadcastc Jtjddddd|d|d|g dd i y) Nr r inetaddrrr/rLANGC) update_envr)rr"r/s radd_addrzIproute2.add_addrGs:  } rc >tjddddd|d|gy)Nr r r1r2r'rr)rr"s rdel_addrzIproute2.del_addrYs" 9ffeWeY O r)N)__name__ __module__ __qualname__ staticmethodstrrrrr!r%r(r.r6r8r-rrrrsk 3     S (3-   "&(,    #  !   "  c C   "&(,      #  !    s  C # #  " C #  rr) typingrcloudinit.net.netopsnetnetops cloudinitrNetOpsrr-rrrDs#%%V v}}V r