x[h^>ddlmZddlmZddlmZGddeZy))Optionalsubp)NetOpsc eZdZe ddedeedejfdZe ddedeedejfdZ ededefd Z eddd ded ed eed eefdZ ededed efdZ eddd deded eed eefdZ edefdZe ddededeefdZededefdZedefdZy)Iproute2N interfacefamilyreturncVg}|rd|g}tjdg|ddd|dS)N-familyiplinksetdevuprr r family_argss ?/usr/lib/python3/dist-packages/cloudinit/net/netops/iproute2.pylink_upzIproute2.link_upsK $f-Kyy  GK G G G Gy G$ G  cVg}|rd|g}tjdg|ddd|dS)Nr rrrrdownrrs r link_downzIproute2.link_downsK $f-Kyy  IK I I I Iy I& I  r current_namenew_namec:tjddd|d|gy)Nrrrnamer)rrs r link_renamezIproute2.link_renames 4 fhGHr)gatewaysource_addressrouter r!crg}g}|r |dk7rd|g}|rd|g}tjdddd|g|d||y) N0.0.0.0viasrcr-4r"replacerr)r r"r r! gateway_args source_argss r add_routezIproute2.add_route"sw  w)+!7+L  .1K        raddressc^g}|r |dk7rd|g}tjdddd|g|d|y)Nr$r%rr'r"appendrr)r r,r r)s r append_routezIproute2.append_route>sY w)+!7+L       rcrg}g}|r |dk7rd|g}|rd|g}tjdddd|g|d||y) Nr$r%r&rr'r"delrr)r r,r r!r)r*s r del_routezIproute2.del_routePsw  w)+!7+L  .1K        rcDtjgdjS)N)rr"showz 0.0.0.0/0)rstdoutrrget_default_routezIproute2.get_default_routelsyy 0 & r broadcastcVg}|rd|g}tjddddd|g|d|y)Nr8rr inetaddraddrr)r r,r8broadcast_argss radd_addrzIproute2.add_addrrsW )95N       rc >tjddddd|d|gy)Nrr r:r;r1rr)r r,s rdel_addrzIproute2.del_addrs" 9ffeWeY O rc8tjdddd|gy)Nrr;flushrr)r s r flush_addrzIproute2.flush_addrs 4%;r@rCr6rrrrs04  (    04  (    I#III "&(,    #  !   6  c C  " "&(,    #  !   6s AE  !$ 19#  ( C #  =c==rrN)typingr cloudinitrcloudinit.net.netopsrrr6rrrMs'H=vH=r