
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
3
\me              	   @   s  d dl Z d dlmZ d dljjjZd dlmZmZm	Z	m
Z
 e jeZddddde
j e	j d	 e	j 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j sed ejd ejddjZejeed ed ed ed ed Zed Zej Z dS )    N)Tuple)sourcesstagesutilversionzhttp://169.254.169.254   
      z"Cloud-Init/%s - OS: %s Variant: %ssystemZvariant)urlretriestimeoutwaitz
user-agentc                   s~   e Zd ZU dZejjd Zeedf  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startup-script.c                s6   t t| j||| tjtj|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__ %/usr/lib/python3.6/DataSourceVultr.pyr   %   s    zDataSourceVultr.__init__c               C   s   t j S )N)vultris_vultrr   r   r   r   	ds_detect.   s    zDataSourceVultr.ds_detectc             C   sT   t jd | j | _| jd | _| j| j t jd| jd  t jd| jd  dS )NzMachine is a Vultr instancez	user-dataz	SUBID: %szinstance-idzHostname: %sz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 j|d  |d | _nt j|d | _|d | _| jd dkrTd| jd< |d | _| jdkrnd | _d S )NZcloud_interfacesZ
interfaceszvendor-datazlocal-hostname Zguestz	user-data)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j dS )Nr   r   r   r   z
user-agent)Ztmp_dir)r   r"   r   r   Zget_tmp_exec_path)r   r   r   r   r"   Z   s    zDataSourceVultr.get_metadatac             C   s.   t j sdS t j rdS t j d }tj|S )NFsubid)r   r   Zis_baremetalget_sysinfor   Zinstance_id_matches_system_uuid)r   r   r*   r   r   r   check_instance_idf   s    z!DataSourceVultr.check_instance_idc             C   s   d S )Nr   )r   r   r   r   launch_indexr   s    zDataSourceVultr.launch_indexc             C   s   | j S )N)r(   )r   r   r   r   network_configv   s    zDataSourceVultr.network_config)r   )__name__
__module____qualname__Zdsnamer   
DataSourceZsensitive_metadata_keysr   strr   staticmethodr   r&   r%   r"   r,   propertyr-   r.   __classcell__r   r   )r   r   r      s   
	r   c             C   s   t j| tS )N)r   Zlist_from_dependsdatasources)Zdependsr   r   r   get_datasource_list   s    r8   __main__zMachine is not a Vultr instance   T)Zreporterr   r   r   r   z
user-agentzvendor-data)!ZloggingZtypingr   Zcloudinit.sources.helpers.vultrr   Zhelpersr   Z	cloudinitr   r   r   Z	getLoggerr/   r    Zversion_stringZsystem_infor   r2   r   ZDEP_FILESYSTEMr7   r8   sysr   printexitZInitr   r"   r)   configr+   Zsysinfor   r   r   r   <module>   s<   

`


