o
    x[h  ã                   @   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    