
"T`n                 @   s~   d  d l  m Z d  d l  m Z d  d l Z d  d l Z d d d d d  Z d d d d d	  Z e e d
 d d    Z d S)    )
url_helper)utilN      c             C   sS   t  j |  d | d | d | } | j   s= t d |    t j | j j    S)Ntimeoutsec_betweenretrieszunable to read metadata at %s)r   readurlokRuntimeErrorr   Z	load_yamlcontentsdecode)urlr   r   r   response r   C/usr/lib/python3/dist-packages/cloudinit/sources/helpers/hetzner.pyread_metadata   s
    r   c             C   sD   t  j |  d | d | d | } | j   s= t d |    | j S)Nr   r   r   zunable to read userdata at %s)r   r	   r
   r   r   )r   r   r   r   r   r   r   r   read_userdata   s
    r   )datareturnc             C   s\   t  |  t  s% t d t |     y t j |  d d SWn t j k
 rW |  SYn Xd S)zbase64 decode data

    If data is base64 encoded bytes, return b64decode(data).
    If not, return data unmodified.

    @param data: data as bytes. TypeError is raised if not bytes.
    zdata is '%s', expected bytesZvalidateTN)
isinstancebytes	TypeErrortypebase64Z	b64decodebinasciiError)r   r   r   r   maybe_b64decode   s    r   )	Z	cloudinitr   r   r   r   r   r   r   r   r   r   r   r   <module>   s   