U
    Ld
                     @   s@   d dl mZ d dlm  mZ d dlmZ G dd dejZdS )    )OptionalNsubpc                   @   s   e Zd Zedeee dddZedeee dddZedddeeee ee dd	d
ZeeeedddZ	edddeeee ee dddZ
eedddZeeeedddZeeedddZdS )Iproute2N	interfaceZfamilyc                 C   s.   t  dg|rd|gng  ddd| dg  d S )Nip-familylinksetdevZupr   r    r   ?/usr/lib/python3/dist-packages/cloudinit/net/netops/iproute2.pylink_up   s    zIproute2.link_upc                 C   s.   t  dg|rd|gng  ddd| dg  d S )Nr   r	   r
   r   r   Zdownr   r   r   r   r   	link_down   s    zIproute2.link_down)gatewaysource_addressr   router   r   c                C   sH   t  dddd|g|r$|dkr$d|gng  d| g |r<d|gng   d S )	Nr   -4r   add0.0.0.0viar   srcr   r   r   r   r   	add_route   s    zIproute2.add_router   addressr   c                 C   s8   t  dddd|g|r$|dkr$d|gng  d| g  d S )Nr   r   r   appendr   r   r   r   r   r   r   r   append_route*   s    zIproute2.append_router   r   r   r   c                C   sH   t  dddd|g|r$|dkr$d|gng  d| g |r<d|gng   d S )	Nr   r   r   delr   r   r   r   r   r   r   r   r   	del_route2   s    zIproute2.del_route)returnc                   C   s   t  ddddgjS )Nr   r   Zshowz	0.0.0.0/0)r   stdoutr   r   r   r   get_default_routeA   s    
zIproute2.get_default_router   r   	broadcastc                 C   s*   t j ddddd|d|d| g
dd	id
 d S )Nr   r	   inetaddrr   r&   r   ZLANGC)Z
update_envr   r%   r   r   r   add_addrG   s    zIproute2.add_addrr   r   c              
   C   s   t  ddddd|d| g d S )Nr   r	   r'   r(   r    r   r   r+   r   r   r   del_addrY   s    zIproute2.del_addr)N)N)__name__
__module____qualname__staticmethodstrr   r   r   r   r   r!   r$   r*   r,   r   r   r   r   r      s<   r   )	typingr   Zcloudinit.net.netopsZnetZnetopsZ	cloudinitr   ZNetOpsr   r   r   r   r   <module>   s   