
    f
                     X    d dl mZ d dlmc mZ d dlmZ  G d dej                        Zy)    )OptionalNsubpc                   (   e Zd Zeddedee   fd       Zeddede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ededefd       Zededefd       Zy)Iproute2N	interfacefamilyc                 R    t        j                   dg|rd|gng z   ddd| dgz          y )Nip-familylinksetdevupr   r   r	   s     ?/usr/lib/python3/dist-packages/cloudinit/net/netops/iproute2.pylink_upzIproute2.link_up   s7    		F&,	6""6ueY56	
    c                 R    t        j                   dg|rd|gng z   ddd| dgz          y )Nr   r   r   r   r   downr   r   s     r   	link_downzIproute2.link_down   s7    		F&,	6""6ueY78	
r   )gatewaysource_addressrouter   r   c                ~    t        j                   dddd|g|r	|dk7  rd|gng z   d| gz   |rd|gz          y g z          y )	Nr   -4r   add0.0.0.0viar   srcr   )r   r   r   r   s       r   	add_routezIproute2.add_route   sl     			4%/#*w)/CwM  +9~&B	
 ?AB	
r   addressc                 ^    t        j                   dddd|g|r	|dk7  rd|gng z   d| gz          y )Nr   r   r   appendr   r   r   r   )r   r"   r   s      r   append_routezIproute2.append_route*   sB    		4(G4#*w)/CwMi !	
r   c                ~    t        j                   dddd|g|r	|dk7  rd|gng z   d| gz   |rd|gz          y g z          y )	Nr   r   r   delr   r   r   r    r   )r   r"   r   r   s       r   	del_routezIproute2.del_route2   sg     			4%1#*w)/CwMi ! +9~&B	
 ?AB	
r   returnc                  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_routeA   s    yy0

&	r   	broadcastc                 J    t        j                   ddddd|d|d| g
dd	i
       y )Nr   r   inetaddrr   r/   r   LANGC)
update_envr   )r   r"   r/   s      r   add_addrzIproute2.add_addrG   s:    		 }	
r   c           
      >    t        j                   ddddd|d| g       y )Nr   r   r1   r2   r'   r   r   )r   r"   s     r   del_addrzIproute2.del_addrY   s"    		9ffeWeYO	
r   )N)__name__
__module____qualname__staticmethodstrr   r   r   r!   r%   r(   r.   r6   r8   r-   r   r   r   r      sk   
3 
 
 
 
S 
(3- 
 
 
 "&(,


 #	

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

 !
 
 s  
 
C 
# 
# 
 
" 
C 
# 
 
r   r   )	typingr   cloudinit.net.netopsnetnetops	cloudinitr   NetOpsr   r-   r   r   <module>rD      s#     % % V
v}} V
r   