U
    Ld                     @   s\   d dl Z d dlZd dlZd dlmZmZmZ G dd dejZeej	ej
ffgZdd ZdS )    N)sources
url_helperutilc                       sF   e Zd ZdZ fddZdedddZeddd	Zd
d Z	  Z
S )DataSourceBigstepZBigstepc                    s&   t  ||| i | _d| _d| _d S )N )super__init__metadatavendordata_rawuserdata_raw)selfZsys_cfgZdistropaths	__class__ E/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceBigstep.pyr      s    zDataSourceBigstep.__init__F)returnc                 C   sP   |   }|d krdS t|}t|j }|d | _|d | _|d | _	dS )NFr	   r
   r   T)
_get_url_from_filer   Zreadurljsonloadscontentsdecoder	   r
   r   )r   Zapply_filterurlZresponseZdecodedr   r   r   	_get_data   s    



zDataSourceBigstep._get_datac                 C   s   d|    dS )z/Return the subplatform metadata source details.z
metadata ())r   )r   r   r   r   _get_subplatform#   s    z"DataSourceBigstep._get_subplatformc              
   C   sf   t j| jjdddd}zt|}W n: tk
r` } z|jtj	krNW Y 
d S  W 5 d }~X Y nX |S )NdataZseedZbigstepr   )
ospathjoinr   Z	cloud_dirr   Z	load_fileIOErrorerrnoZENOENT)r   Zurl_fileZcontenter   r   r   r   '   s        
z$DataSourceBigstep._get_url_from_file)F)__name__
__module____qualname__Zdsnamer   boolr   strr   r   __classcell__r   r   r   r   r      s
   r   c                 C   s   t | tS )N)r   Zlist_from_dependsdatasources)Zdependsr   r   r   get_datasource_list?   s    r*   )r!   r   r   Z	cloudinitr   r   r   Z
DataSourcer   ZDEP_FILESYSTEMZDEP_NETWORKr)   r*   r   r   r   r   <module>   s   ,