U
    Ad                  	   @   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	 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ed ed ed ed ed Zed Ze ZdS )    )TupleN)log)sourcesutilversionzhttp://169.254.169.254   
      z"Cloud-Init/%s - OS: %s Variant: %ssystemZvariant)urlretriestimeoutwait
user-agentc                       sv   e Zd ZU dZejjd Zeedf e	d<  f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   st   t d t s t d dS t d |  | _| jd | _| | j t d| jd  t d| jd	  d
S )Nz(Detecting if machine is a Vultr instanceMachine is not a Vultr instanceFzMachine is a Vultr instance	user-dataz	SUBID: %szinstance-idzHostname: %slocal-hostnameT)LOGdebugvultris_vultrget_metadatametadatauserdata_rawget_datasource_datar   r   r   r   	_get_data/   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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   r0   r   r   r   check_instance_ide   s    z!DataSourceVultr.check_instance_idc                 C   s   d S Nr   r*   r   r   r   launch_indexq   s    zDataSourceVultr.launch_indexc                 C   s   | j S r3   )r.   r*   r   r   r   network_configu   s    zDataSourceVultr.network_config)__name__
__module____qualname__Zdsnamer   
DataSourcer   r   str__annotations__r   r+   r)   r&   r2   propertyr4   r5   __classcell__r   r   r   r   r      s   



r   c                 C   s   t | tS r3   )r   Zlist_from_dependsdatasources)Zdependsr   r   r   get_datasource_list   s    r?   __main__r      r   r   r   r   r   r,   )typingr   Zcloudinit.sources.helpers.vultrr   Zhelpersr$   Z	cloudinitr   r   r   Z	getLoggerr6   r"   Zversion_stringZsystem_infor   r9   r   ZDEP_FILESYSTEMr>   r?   sysr%   printexitr&   r/   Zconfigr1   Zsysinfor   r   r   r   <module>   sB   


_


