�
܍~c�9 � �D � d dl Z d dlZd dlZd dlmZ d dlmZmZmZ ej e
� � ZdZg d�Z
G d� dej � � Zd� Zd � Zd
� Zddeddfd�Zd� Z G d
� de� � Z G d� de� � Zeej ej ffgZd� Ze
dk rd� Z e� � dS dS )� N)�log)�sources�
url_helper�utilz
2012-03-01))�meta-data/instance-idr FF)�meta-data/local-hostnamer FF)�meta-data/public-keysr FT)zmeta-data/vendor-data�vendor-dataTT)� user-datar TTc �^ � e Zd ZdZdZdZdZd� Zed� � � Z d� Z
d� Zd� Zd � Z
d
� Zd� ZdS )�DataSourceMAASz�
DataSourceMAAS reads instance information from MAAS.
Given a config metadata_url, and oauth tokens, it expects to find
files under the root named:
instance-id
user-data
hostname
vendor-data
�MAASNc �� � t j � | |||� � d | _ t j � |j d� � | _ t | j � � | _
d S )N�maas)r �
DataSource�__init__�base_url�os�path�join�seed_dir�get_id_from_ds_cfg�ds_cfg�id_hash)�self�sys_cfg�distro�pathss �B/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceMAAS.pyr zDataSourceMAAS.__init__, sT � ���#�#�D�'�6�5�A�A�A���
�����U�^�V�<�<��
�)�$�+�6�6����� c �P � | j st | j � � | _ | j S �N)�
_oauth_helper�get_oauth_helperr �r s r �oauth_helperzDataSourceMAAS.oauth_helper2 s( � ��!� ?�!1�$�+�!>�!>�D���!�!r c �Z � t j � | � � }|�d| j �d�S )Nz [�])r r �__str__r )r �roots r r) zDataSourceMAAS.__str__8 s- � ��!�)�)�$�/�/�� �D�D�$�-�-�-�0�0r c � � | j } | � | j t | j � � � � dS # t $ r Y n3t
$ r'}t � d| j |� � � d }~ww xY w|� dd � � }|sdS | � |� � sdS | � |t || j j | j
d�� � � � dS # t $ r t j t d|� � Y dS w xY w)NTz%s was malformed: %s�metadata_urlF� )�read_file_or_urlr �retriesz$Failed fetching metadata from url %s)r � _set_datar �read_maas_seed_dir�MAASSeedDirNone�MAASSeedDirMalformed�LOG�warning�get�wait_for_metadata_service�read_maas_seed_urlr& |