| Current Path : /lib/python3/dist-packages/cloudinit/sources/__pycache__/ |
| Current File : //lib/python3/dist-packages/cloudinit/sources/__pycache__/DataSourceMAAS.cpython-38.pyc |
U
�Ad�9 � @ s� d dl Z d dlZd dlZd dlmZ d dlmZmZmZ e� e
�ZdZddddd gZ
G d
d� dej�Zdd
� Zdd� Zdd� Zddeddfdd�Zdd� ZG dd� de�ZG dd� de�ZeejejffgZdd� Ze
dkr�dd� Ze� 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 )NZmaas)r �
DataSource�__init__�base_url�os�path�join�seed_dir�get_id_from_ds_cfg�ds_cfg�id_hash)�self�sys_cfgZdistro�paths� r �B/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceMAAS.pyr , s zDataSourceMAAS.__init__c C s | j st| 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 tk
r4 Y n4 tk
rf } zt�d| j|� � W 5 d }~X Y nX |�dd �}|s|dS z4| � |�s�W dS | �|t
|| jj| j
dd�� W dS tk
r� t�td|� Y dS X d S )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 �readurlr � Exceptionr �logexc)r �mcfg�exc�urlr r r � _get_data<