File: //lib/python3/dist-packages/cloudinit/sources/__pycache__/DataSourceMAAS.cpython-310.pyc
o
�Ad�9 � @ s� d dl Z d dlZd dlZd dlmZ d dlmZmZmZ e� e
�ZdZg d�Z
G dd� dej�Zdd � Zd
d� Zdd
� Zddeddfdd�Zdd� ZG dd� de�ZG dd� de�ZeejejffgZdd� Ze
dkrtdd� Ze� 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 @ s` e Zd ZdZdZdZdZdd� Zedd� �Z dd � Z
d
d� Zdd
� Zdd� Z
dd� Zdd� 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 C s: t j�| |||� d | _tj�|jd�| _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�paths� r �B/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceMAAS.pyr , s zDataSourceMAAS.__init__c C s | j s t| j�| _ | j S �N)�
_oauth_helper�get_oauth_helperr �r r r r �oauth_helper2 s zDataSourceMAAS.oauth_helperc C s t j�| �}d|| jf S )Nz%s [%s])r r �__str__r )r �rootr r r r# 8 s zDataSourceMAAS.__str__c
C s� | j }z
| �| jt| j�� W dS ty Y n ty- } z t�d| j|� � d }~ww |�dd �}|s8dS z| � |�sAW dS | �|t
|| jj| j
dd�� W dS tyc t�td|� Y dS 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"