File: //usr/lib/python3.9/site-packages/cloudinit/sources/__pycache__/DataSourceCloudCIX.cpython-39.pyc
a
'�Dg� � @ 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__� �H/usr/lib/python3.9/site-packages/cloudinit/sources/DataSourceCloudCIX.pyr s zDataSourceCloudCIX.__init__c
C s` z| � � }W n4 tjy@ } zt�d|� W Y d}~dS d}~0 0 |d | _t�|d �| _dS )z6
Fetch the user data and the metadata
z0Failed to read data from CloudCIX datasource: %sNF� 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 u rt�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
y� } z&t�d||� W Y d }~q@W Y d }~n
d }~0 0 |�� 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 s4 �
�"
�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 )N�network)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 nH tj y� } z.t
�d|� d| � d|� d|� ���W Y d }~n
d }~0 0 |�� s�t
�d
|� d| � d|� d|j
� ���z||j�||<