o
    w7e                  	   @   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rd dlZe sie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 dS )    )TupleN)log)sourcesstagesutilversionzhttp://169.254.169.254   
      z"Cloud-Init/%s - OS: %s Variant: %ssystem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 )N
datasourcer   )superr   __init__r   mergemanydict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   sv   d|v rt |d  |d | _nt |d | _|d | _| jd dkr*d| jd< |d | _| jdkr9d | _d S d S )Ncloud_interfaces
interfacesvendor-datar)    guestr(   )r%   add_interface_namesnetcfggenerate_network_config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   )tmp_dir)r%   r,   r   r   get_tmp_exec_pathr0   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&   is_baremetalget_sysinfor   instance_id_matches_system_uuid)r   r   r>   r"   r"   r#   check_instance_idf   s   
z!DataSourceVultr.check_instance_idc                 C   s   d S r$   r"   r0   r"   r"   r#   launch_indexr   s   zDataSourceVultr.launch_indexc                 C   s   | j S r$   )r8   r0   r"   r"   r#   network_configv   s   zDataSourceVultr.network_config)__name__
__module____qualname__dsnamer   
DataSourcer   r   str__annotations__r   staticmethodr'   r1   r/   r,   rB   propertyrC   rD   __classcell__r"   r"   r    r#   r      s"   
 
	

r   c                 C   s   t | tS r$   )r   list_from_dependsdatasources)dependsr"   r"   r#   get_datasource_list   s   rR   __main__zMachine is not a Vultr instance   T)reporterr   r   r   r   r   r4   )!typingr   cloudinit.sources.helpers.vultrr   helpersr%   	cloudinitr   r   r   r   	getLoggerrE   r*   version_stringsystem_infor   rI   r   DEP_FILESYSTEMrP   rR   sysr&   printexitInitr   r,   r;   configr@   sysinfor"   r"   r"   r#   <module>   sJ   



`
