File: //lib/python3/dist-packages/cloudinit/sources/__pycache__/DataSourceCloudCIX.cpython-38.pyc
U
Ӈg� � @ s� d dl Z d dlZd dlmZ d dlmZmZmZmZ e� e
�ZdgZdZ
dZG dd� dej�Zed �d
d�Zed�d
d�ZeejejffgZdd� ZdS )� N)�Optional)�dmi�sources�
url_helper�utilzhttp://169.254.169.254� �CloudCIXc sl e Zd ZdZdZdZdZ� fdd�Zdd� Ze d�d d
�Z
ee d�dd�Z
ed
d� �Zedd� �Z� ZS )�DataSourceCloudCIXr � � c s$ t t| ��|||� d | _d | _d S �N)�superr �__init__�
_metadata_url�_net_cfg)�selfZsys_cfgZdistro�paths�� __class__� �F/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceCloudCIX.pyr s zDataSourceCloudCIX.__init__c
C sb z| � � }W n6 tjk
rB } zt�d|� W Y �dS d}~X Y nX |d | _t�|d �| _dS )z6
Fetch the user data and the metadata
z0Failed to read data from CloudCIX datasource: %sFN� meta-data� user-dataT) �crawl_metadata_servicer �InvalidMetaDataException�LOG�error�metadatar Z
decode_binaryZuserdata_raw)r Zcrawled_datar r r r � _get_data s �
zDataSourceCloudCIX._get_data��returnc C s, | � � }|d krt�d��t|| �� �}|S )Nz Could not determine metadata URL)�determine_md_urlr r �
read_metadata�get_url_params)r Zmd_url�datar r r r / s �z)DataSourceCloudCIX.crawl_metadata_servicec C s� | j r| j S | �� }tjt|j|jd�\}}|s4d S ttdd�D ]�}t� |d�
|�d�}ztj|| jd�}W n: tj
k
r� } zt�d||� W Y �q@W 5 d }~X Y nX |�� r�t� |d�
|��| _ q�q@t�d|� q@| j S ) N)Zmax_wait�timeoutr ���zv{0}r )r% zURL %s raised exception %szNo metadata found at URL %s)r r# r Zwait_for_url�
METADATA_URLSZmax_wait_seconds�timeout_seconds�range�METADATA_VERSION�combine_url�format�readurlZurl_timeout�UrlErrorr �debug�ok)r �
url_params�base_url�_�version�url�response�er r r r! 9 s: �
� �z#DataSourceCloudCIX.determine_md_urlc C s t � S r )�is_platform_viabler r r r � ds_detect\ s zDataSourceCloudCIX.ds_detectc C s( | j r| j S | jsd S | jd | _ | j S )NZnetwork)r r )r r r r �network_config` s z!DataSourceCloudCIX.network_config)�__name__�
__module__�__qualname__ZdsnameZurl_retriesZurl_timeout_secondsZurl_sec_between_retriesr r �dictr r �strr! �staticmethodr9 �propertyr: �
__classcell__r r r r r s
#
r r c C s t �d�tkS )Nzsystem-product-name)r Z
read_dmi_data�CLOUDCIX_DMI_NAMEr r r r r8 k s r8 )r2 c
C s" i }ddt jfddt jff}|D ]�\}}}z$tjt�| |�|j|j|jd�}W nF tj k
r� } z&t
�d|� d| � d|� d|� ���W 5 d }~X Y nX |�� s�t
�d
|� d| � d|� d|j
� ���z||j�||<