�
܍~c� � � � d � Z d� Zd� Zdd�ZdS )c �F � | | � � � k sJ �| �d|�d�S )z6Return a udev comparison clause, like `ACTION=="add"`.z=="�"��upper��key�values �4/usr/lib/python3/dist-packages/cloudinit/net/udev.py�compose_udev_equalityr
s. � ��#�)�)�+�+��������e�e�e�$�$� c �H � | | � � � k sJ �d| �d|�d�S )zBReturn a udev attribute comparison clause, like `ATTR{type}=="1"`.zATTR{z}=="r )�lower)� attributer s r �compose_udev_attr_equalityr s3 � �� ���)�)�)�)�)�)�)�(�y�y�%�%�%�0�0r c �F � | | � � � k sJ �| �d|�d�S )z4Return a udev assignment clause, like `NAME="eth0"`.z="r r r s r �compose_udev_settingr s. � ��#�)�)�+�+��������U�U�U�#�#r Nc
�� � |sd}d� t dd� � t dd� � t d|� � t d|� � t d | � � g� � }d
|z 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, � SUBSYSTEM�net�ACTION�add�DRIVERS�address�NAMEz%s
)�joinr
r r )� interface�mac�driver�rules r �generate_udev_ruler sv � � � ����9�9�!�+�u�5�5�!�(�E�2�2�!�)�V�4�4�&�y�#�6�6� ���3�3�
�� �D� �D�=�r )N)r
r r r � r r �<module>r! sP ��%� %� %�1� 1� 1�$� $� $�� � � � � r |