
    }f                     `   d dl Z d dlmZ d dlmc mc mZ d dlmZmZm	Z	m
Z
  e j                  e      Zddddd e
j                         d	 e	j                         d
   d e	j                         d   dZ G d dej"                        Zeej&                  ffgZd Zedk(  rd dlZ ej.                         s ed        ej2                  d        ej4                  d      j6                  Z ej8                  eed   ed   ed   ed   ed         Zed   Z ej>                         Z yy)    N)Tuple)sourcesstagesutilversionzhttp://169.254.169.254   
      zCloud-Init/z - OS: systemz
 Variant: variant)urlretriestimeoutwait
user-agentc                        e Zd ZU dZej
                  j                  dz   Zeedf   e	d<    fdZ
ed        Zd Zd Zd	 Zd
 Zed        Zed        Z xZS )DataSourceVultrVultr)zstartup-script.sensitive_metadata_keysc                     t         t        |   |||       t        j                  t        j
                  |ddgi       t        g      | _        d | _        y )N
datasourcer   )	superr   __init__r   mergemanydictget_cfg_by_pathBUILTIN_DS_CONFIGds_cfgnetcfg)selfsys_cfgdistropaths	__class__s       C/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceVultr.pyr   zDataSourceVultr.__init__%   sP    ot-gvuE(($$W|W.ErJ!
     c                  *    t        j                         S N)vultris_vultr r%   r$   	ds_detectzDataSourceVultr.ds_detect/   s    ~~r%   c                 B   t         j                  d       | j                         | _        | j                  d   | _        | j                  | j                         t         j                  d| j                  d          t         j                  d| j                  d          y)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   s    r$   	_get_datazDataSourceVultr._get_data4   sz    		/0 ))+ MM+6 	  / 			+t}}];<		.$--0@"ABr%   c                 $   d|v r#t        j                  |d          |d   | _        nt        j                  |d         | _        |d   | _        | j
                  d   dk(  rd| j
                  d<   |d   | _        | j                  dk(  rd | _        y y )Ncloud_interfaces
interfacesvendor-datar.    guestr-   )r(   add_interface_namesr   generate_network_configvendordata_rawr2   r3   )r   mds     r$   r4   z#DataSourceVultr.get_datasource_dataF   s    # %%b);&<=/0DK77<8HIDK / ==)*b0.5DMM*+{O" $D #r%   c           
          t        j                  | j                  | j                  d   | j                  d   | j                  d   | j                  d   | j                  d   | j                  j	                               S )Nr   r   r   r   r   )tmp_dir)r(   r1   r!   r   get_tmp_exec_pathr5   s    r$   r1   zDataSourceVultr.get_metadata[   sh    !!KKKKKK	"KK	"KKKK%KK113
 	
r%   c                     t        j                         syt        j                         ryt        j                         d   }t	        j
                  |      S )NFsubid)r(   r)   is_baremetalget_sysinfor   instance_id_matches_system_uuid)r   r    rE   s      r$   check_instance_idz!DataSourceVultr.check_instance_idg   sD    ~~ !!#G,66u==r%   c                      y r'   r*   r5   s    r$   launch_indexzDataSourceVultr.launch_indexs   s    r%   c                     | j                   S r'   )r   r5   s    r$   network_configzDataSourceVultr.network_configw   s    {{r%   )__name__
__module____qualname__dsnamer   
DataSourcer   r   str__annotations__r   staticmethodr+   r6   r4   r1   rI   propertyrK   rM   __classcell__)r#   s   @r$   r   r      s    F 	225HH US I    $%*	
	>    r%   r   c                 6    t        j                  | t              S r'   )r   list_from_dependsdatasources)dependss    r$   get_datasource_listr\      s    $$Wk::r%   __main__zMachine is not a Vultr instance   T)reporterr   r   r   r   r   r:   )!loggingtypingr   cloudinit.sources.helpers.vultrr   helpersr(   	cloudinitr   r   r   	getLoggerrN   r/   version_stringsystem_infor   rR   r   DEP_FILESYSTEMrZ   r\   sysr)   printexitInitr!   r1   r@   configrG   sysinfor*   r%   r$   <module>ro      sS     / / 4 4g!# 	 8$9%	 \g(( \B w--/0; z5>>/0 V[[$'..F			% )$)$&!,'
B Fe!G1 r%   