U
    Ld                  	   @   s  d dl mZ d dlm  m  mZ d dlmZ d dlmZmZm	Z	m
Z
 eeZddddd	e
 e	 d
 e	 d f dZG dd dejZeejffgZdd Zedkrd dlZe sed ed ejddjZeeed ed ed ed ed Zed Ze Z dS )    )TupleN)log)sourcesstagesutilversionzhttp://169.254.169.254   
      z"Cloud-Init/%s - OS: %s Variant: %ssystemZvariant)urlretriestimeoutwait
user-agentc                       s   e Zd ZU dZejjd Zeedf e	d<  fddZ
edd Zd	d
 Zdd Zdd Zdd Zedd Zedd Z  ZS )DataSourceVultrVultr)zstartup-script.sensitive_metadata_keysc                    s6   t t| ||| tt|ddgi tg| _d S )NZ
datasourcer   )superr   __init__r   ZmergemanydictZget_cfg_by_pathBUILTIN_DS_CONFIGds_cfg)selfsys_cfgdistropaths	__class__ C/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceVultr.pyr   %   s    zDataSourceVultr.__init__c                   C   s   t  S N)vultris_vultrr   r   r   r   	ds_detect.   s    zDataSourceVultr.ds_detectc                 C   sT   t d |  | _| jd | _| | j t d| jd  t d| jd  dS )NzMachine is a Vultr instance	user-dataz	SUBID: %szinstance-idzHostname: %slocal-hostnameT)LOGdebugget_metadatametadatauserdata_rawget_datasource_datar   r   r   r   	_get_data3   s    

zDataSourceVultr._get_datac                 C   sr   d|kr"t |d  |d | _nt |d | _|d | _| jd dkrTd| jd< |d | _| jdkrnd | _d S )NZcloud_interfacesZ
interfacesvendor-datar%    Zguestr$   )r!   Zadd_interface_namesnetcfgZgenerate_network_configZvendordata_rawr)   r*   )r   mdr   r   r   r+   E   s    



z#DataSourceVultr.get_datasource_datac              	   C   s>   t j| j| jd | jd | jd | jd | jd | j dS )Nr   r   r   r   r   )Ztmp_dir)r!   r(   r   r   Zget_tmp_exec_pathr,   r   r   r   r(   Z   s    zDataSourceVultr.get_metadatac                 C   s.   t  sdS t  rdS t  d }t|S )NFsubid)r!   r"   Zis_baremetalget_sysinfor   Zinstance_id_matches_system_uuid)r   r   r2   r   r   r   check_instance_idf   s    z!DataSourceVultr.check_instance_idc                 C   s   d S r    r   r,   r   r   r   launch_indexr   s    zDataSourceVultr.launch_indexc                 C   s   | j S r    )r0   r,   r   r   r   network_configv   s    zDataSourceVultr.network_config)__name__
__module____qualname__Zdsnamer   
DataSourcer   r   str__annotations__r   staticmethodr#   r-   r+   r(   r4   propertyr5   r6   __classcell__r   r   r   r   r      s    

	

r   c                 C   s   t | tS r    )r   Zlist_from_dependsdatasources)Zdependsr   r   r   get_datasource_list   s    rA   __main__zMachine is not a Vultr instance   T)Zreporterr   r   r   r   r   r.   )!typingr   Zcloudinit.sources.helpers.vultrr   Zhelpersr!   Z	cloudinitr   r   r   r   Z	getLoggerr7   r&   Zversion_stringZsystem_infor   r:   r   ZDEP_FILESYSTEMr@   rA   sysr"   printexitZInitr   r(   r1   Zconfigr3   Zsysinfor   r   r   r   <module>   sF   


`


