o
    x[h^  ã                   @   s8   d dl mZ d dlmZ d dlmZ G dd„ deƒZdS )é    )ÚOptional©Úsubp)ÚNetOpsc                   @   s<  e Zd Ze	d!dedee dejfdd„ƒZe	d!dedee dejfdd„ƒZ	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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edefdd „ƒZdS )"ÚIproute2NÚ	interfaceÚfamilyÚreturnc                 C   ó4   g }|rd|g}t   dg|¢d‘d‘d‘| ‘d‘¡S )Nú-familyÚipÚlinkÚsetÚdevÚupr   ©r   r   Úfamily_args© r   ú?/usr/lib/python3/dist-packages/cloudinit/net/netops/iproute2.pyÚlink_up   ó   ÿzIproute2.link_upc                 C   r
   )Nr   r   r   r   r   Údownr   r   r   r   r   Ú	link_down   r   zIproute2.link_downÚcurrent_nameÚnew_namec                 C   s   t   ddd| d|g¡ d S )Nr   r   r   Únamer   )r   r   r   r   r   Úlink_rename   s   zIproute2.link_rename)ÚgatewayÚsource_addressÚrouter   r   c                C   óP   g }g }|r|dkrd|g}|rd|g}t   dddd|g|¢d‘| ‘|¢¡ d S )	Nú0.0.0.0ÚviaÚsrcr   ú-4r   Úreplacer   r   )r   r   r   r   Úgateway_argsÚsource_argsr   r   r   Ú	add_route"   ó,   ûúùø	÷ÿzIproute2.add_routeÚaddressc                 C   s<   g }|r|dkrd|g}t   dddd|g|¢d‘| ‘¡ d S )Nr!   r"   r   r$   r   Úappendr   r   )r   r*   r   r&   r   r   r   Úappend_route>   s"   ûúùøÿzIproute2.append_routec                C   r    )	Nr!   r"   r#   r   r$   r   Údelr   r   )r   r*   r   r   r&   r'   r   r   r   Ú	del_routeP   r)   zIproute2.del_routec                   C   s   t   g d¢¡jS )N)r   r   Úshowz	0.0.0.0/0)r   Ústdoutr   r   r   r   Úget_default_routel   s
   ÿþzIproute2.get_default_routeÚ	broadcastc                 C   s6   g }|rd|g}t   ddddd|g|¢d‘| ‘¡ d S )Nr2   r   r   ÚinetÚaddrÚaddr   r   )r   r*   r2   Úbroadcast_argsr   r   r   Úadd_addrr   s$   úùø	÷ÿzIproute2.add_addrc              
   C   s   t   ddddd|d| g¡ d S )Nr   r   r3   r4   r-   r   r   )r   r*   r   r   r   Údel_addr‡   s   ÿzIproute2.del_addrc                 C   s   t   dddd| g¡ d S )Nr   r4   Úflushr   r   )r   r   r   r   Ú
flush_addr�   s   zIproute2.flush_addr)N)Ú__name__Ú
__module__Ú__qualname__ÚstaticmethodÚstrr   r   Ú
SubpResultr   r   r   r(   r,   r.   r1   r7   r8   r:   r   r   r   r   r      s|    ÿÿÿþ
ÿÿÿþ
ûÿþüûûÿþüûÿÿÿÿr   N)Útypingr   Ú	cloudinitr   Úcloudinit.net.netopsr   r   r   r   r   r   Ú<module>   s    