
"·T`‰  ã               @   s7   d  d „  Z  d d „  Z d d „  Z d d d „ Z d S)	c             C   s&   |  |  j  ƒ  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&   |  |  j  ƒ  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&   |  |  j  ƒ  k s t ‚ d |  | f S)z4Return a udev assignment clause, like `NAME="eth0"`.z%s="%s")r   r   )r   r   r   r   r   Úcompose_udev_setting   s    r
   Nc             C   s_   | s d } d j  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   )r   r	   r
   r   r   r   r   r   Ú<module>   s   