U
    Ld8                  	   @   s   d dl mZmZmZ d dlmZmZmZmZm	Z	m
Z
mZmZmZmZ eeee	e
eeedZdddddd	d
dgZdeeeeej f  dddZdeeeej f dddZdS )    )ListTupleType)
RendererNotFoundErrorenifreebsdnetbsdnetplannetwork_managernetworkdopenbsdrenderer	sysconfig)r   r   r   r	   network-managerr   r   r   r   r   r	   r   r   r   r   r   NF)returnc                    sx   | d krt } t  fdd| D }|r2td| g }| D ]8} | }||r:||jf}|rh|g  S || q:|S )Nc                    s   g | ]}| kr|qS  r   ).0i	availabler   9/usr/lib/python3/dist-packages/cloudinit/net/renderers.py
<listcomp>1   s      zsearch.<locals>.<listcomp>z/Unknown renderers provided in priority list: %s)DEFAULT_PRIORITYNAME_TO_RENDERER
ValueErrorr   Rendererappend)prioritytargetfirstunknownfoundnameZ
render_modZcurr   r   r   search)   s"    


r#   c                 C   sN   t | |dd}|sF| d krt} d}|r6|dkr6d| }td|| f |d S )NT)r   r    /z in target=%szANo available network renderers found%s. Searched through list: %sr   )r#   r   r   )r   r   r!   Ztmsgr   r   r   selectC   s    r&   )NNF)NN)typingr   r   r   Zcloudinit.netr   r   r   r   r	   r
   r   r   r   r   r   r   strr   r#   r&   r   r   r   r   <module>   s4   0     