U
    L¬÷d°  ã                   @   s&   d d„ Z dd„ Zdd„ Zd	dd„ZdS )
c                 C   s   | |   ¡ kst‚d| |f S )z6Return a udev comparison clause, like `ACTION=="add"`.z%s=="%s"©ÚupperÚAssertionError©ÚkeyÚvalue© r   ú4/usr/lib/python3/dist-packages/cloudinit/net/udev.pyÚcompose_udev_equality   s    r	   c                 C   s   | |   ¡ kst‚d| |f S )zBReturn a udev attribute comparison clause, like `ATTR{type}=="1"`.zATTR{%s}=="%s")Úlowerr   )Z	attributer   r   r   r   Úcompose_udev_attr_equality   s    r   c                 C   s   | |   ¡ kst‚d| |f S )z4Return a udev assignment clause, like `NAME="eth0"`.z%s="%s"r   r   r   r   r   Úcompose_udev_setting   s    r   Nc              	   C   sB   |sd}d  tddƒtddƒtd|ƒtd|ƒtd	| ƒg¡}d
| S )zïReturn a udev rule to set the name of network interface with `mac`.

    The rule ends up as a single line looking something like:

    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",
    ATTR{address}="ff:ee:dd:cc:bb:aa", NAME="eth0"
    z?*z, Z	SUBSYSTEMZnetZACTIONÚaddZDRIVERSZaddressÚNAMEz%s
)Újoinr	   r   r   )Z	interfaceZmacZdriverZruler   r   r   Úgenerate_udev_rule   s    ûÿ	r   )N)r	   r   r   r   r   r   r   r   Ú<module>   s   