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