
    x[h^                     >    d dl mZ d dlmZ d dlmZ  G d de      Zy)    )Optionalsubp)NetOpsc                      e Zd Ze	 ddedee   dej                  fd       Ze	 ddedee   dej                  fd       Z	ededefd	       Z
eddd
dededee   dee   fd       Zedededefd       Zeddd
dededee   dee   fd       Zedefd       Ze	 ddededee   fd       Zededefd       Zedefd       Zy)Iproute2N	interfacefamilyreturnc                 V    g }|rd|g}t        j                   dg|ddd| d      S )N-familyiplinksetdevupr   r	   r
   family_argss      ?/usr/lib/python3/dist-packages/cloudinit/net/netops/iproute2.pylink_upzIproute2.link_up   sK     $f-KyyGKGGGGyG$G
 	
    c                 V    g }|rd|g}t        j                   dg|ddd| d      S )Nr   r   r   r   r   downr   r   s      r   	link_downzIproute2.link_down   sK     $f-KyyIKIIIIyI&I
 	
r   current_namenew_namec                 :    t        j                   ddd| d|g       y )Nr   r   r   namer   )r   r   s     r   link_renamezIproute2.link_rename   s    		4fhGHr   )gatewaysource_addressrouter    r!   c                r    g }g }|r	|dk7  rd|g}|rd|g}t        j                   dddd|g|d| |       y )	N0.0.0.0viasrcr   -4r"   replacer   r   )r	   r"   r    r!   gateway_argssource_argss         r   	add_routezIproute2.add_route"   sw     w)+!7+L .1K		
 
 
 
 
	
r   addressc                 ^    g }|r	|dk7  rd|g}t        j                   dddd|g|d|        y )Nr$   r%   r   r'   r"   appendr   r   )r	   r,   r    r)   s       r   append_routezIproute2.append_route>   sY    w)+!7+L			 	 	 		
r   c                r    g }g }|r	|dk7  rd|g}|rd|g}t        j                   dddd|g|d| |       y )	Nr$   r%   r&   r   r'   r"   delr   r   )r	   r,   r    r!   r)   r*   s         r   	del_routezIproute2.del_routeP   sw     w)+!7+L .1K		
 
 
 
 
	
r   c                  D    t        j                   g d      j                  S )N)r   r"   showz	0.0.0.0/0)r   stdout r   r   get_default_routezIproute2.get_default_routel   s    yy0

&	r   	broadcastc                 V    g }|rd|g}t        j                   ddddd|g|d|        y )Nr8   r   r   inetaddraddr   r   )r	   r,   r8   broadcast_argss       r   add_addrzIproute2.add_addrr   sW     )95N		
  
 
 
	
r   c           
      >    t        j                   ddddd|d| g       y )Nr   r   r:   r;   r1   r   r   )r	   r,   s     r   del_addrzIproute2.del_addr   s"    		9ffeWeYO	
r   c                 8    t        j                   dddd| g       y )Nr   r;   flushr   r   )r	   s    r   
flush_addrzIproute2.flush_addr   s    		4%;<r   )N)__name__
__module____qualname__staticmethodstrr   r   
SubpResultr   r   r   r+   r/   r2   r7   r>   r@   rC   r6   r   r   r   r      s   04

 (
	
 
 04

 (
	
 
 I# I I I 
 "&(,


 #	

 !
 
6 
 
c 
C 
 
" 
 "&(,


 #	

 !
 
6 s  
 AE

!$
19#
 
( 
C 
# 
 

 =c = =r   r   N)typingr   	cloudinitr   cloudinit.net.netopsr   r   r6   r   r   <module>rM      s      'H=v H=r   