U
    Ӈg                     @   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eejdddZeeej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deee	e dddZeeedddZdS )	BsdNetOps)	interfacereturnc                 C   s   t  d| dgS )NifconfigZupr   r    r
   A/usr/lib/python3/dist-packages/cloudinit/net/netops/bsd_netops.pylink_up   s    zBsdNetOps.link_upc                 C   s   t  d| dgS )Nr   Zdownr   r	   r
   r
   r   	link_down   s    zBsdNetOps.link_downN)gatewaysource_addressr   router   r   c                C   s6   t  dd|d| g |r2|dkr2t  dd||g d S )Nr   addz
-interface0.0.0.0Zchanger   r   r
   r
   r   	add_route   s
    
zBsdNetOps.add_router   addressr   c                 C   s   t j| ||dS )N)r   r   )r   r   r   r
   r
   r   append_route   s    zBsdNetOps.append_router   r   r   r   c                C   s*   t  dd|g|r|dkr|gng   d S )Nr   delr   r   r   r
   r
   r   	del_route"   s
    zBsdNetOps.del_route)r   c                  C   s&   t  ddddg\} }|  d  S )Nr   z-nvgetz	0.0.0.0/0)r   
splitlinesstrip)Zstd_r
   r
   r   get_default_route/   s    zBsdNetOps.get_default_route)r   r   	broadcastc                 C   s*   g }|rd|g}t  d| |f|d d S )Nr!   r   alias)r"   r   )r   r   r!   Zbroadcast_argsr
   r
   r   add_addr4   s     zBsdNetOps.add_addrr   r   c                 C   s   t  d| |dg d S )Nr   z-aliasr   r$   r
   r
   r   del_addrE   s    zBsdNetOps.del_addr)N)__name__
__module____qualname__staticmethodstrr   Z
SubpResultr   r   r   r   r   r   r    r#   r%   r
   r
   r
   r   r      sF      r   )	typingr   Zcloudinit.net.netopsZnetZnetopsZ	cloudinitr   ZNetOpsr   r
   r
   r
   r   <module>   s   