
    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      | _        y )N
datasourcer   )superr   __init__r   mergemanydictget_cfg_by_pathBUILTIN_DS_CONFIGds_cfg)selfsys_cfgdistropaths	__class__s       C/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceVultr.pyr   zDataSourceVultr.__init__%   sG    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_data3   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_namesnetcfggenerate_network_configvendordata_rawr1   r2   )r   mds     r#   r3   z#DataSourceVultr.get_datasource_dataE   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'   r0   r    r   get_tmp_exec_pathr4   s    r#   r0   zDataSourceVultr.get_metadataZ   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_idf   sD    ~~ !!#G,66u==r$   c                      y r&   r)   r4   s    r#   launch_indexzDataSourceVultr.launch_indexr   s    r$   c                     | j                   S r&   )r=   r4   s    r#   network_configzDataSourceVultr.network_configv   s    {{r$   )__name__
__module____qualname__dsnamer   
DataSourcer   r   str__annotations__r   staticmethodr*   r5   r3   r0   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   r9   )!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    r0   r@   configrG   sysinfor)   r$   r#   <module>ro      sS     / / 4 4g!# 	 8$9%	 [g(( [@ w--/0; z5>>/0 V[[$'..F			% )$)$&!,'
B Fe!G1 r$   