509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!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ƒ sÆe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<   

`


