
    x[h                         S SK r S SKJs  Js  Jr  S SKJrJrJr  \ R                  " \
5      rSS0rSrSrSrSr " S S	\R"                  5      r\\R&                  44/rS
 rg)    N)	lifecyclesourcesutilmetadata_urlz'http://169.254.169.254/metadata/v1.json      Tc                   f   ^  \ rS rSrSrS rS\SS4U 4S jjrS rS	 r	S
 r
S r\S 5       rSrU =r$ )DataSourceDigitalOcean   DigitalOceanc                 l   [         R                  R                  XX#5        X l        [	        5       U l        [        R                  " [        R                  " USS/0 5      [        /5      U l
        U R                  5         U R                  S   U l        U R                  R                  S[        5      U l        U R                  R                  S[         5      U l        U R                  R                  S[$        5      U l        U R                  R                  S[(        5      U l        S U l        S U l        g )N
datasourcer   r   retriestimeout	use_ip4LL
wait_retry)r   
DataSource__init__distrodictmetadatar   mergemanydictget_cfg_by_pathBUILTIN_DS_CONFIGds_cfg
_deprecatemetadata_addressget
MD_RETRIESr   
MD_TIMEOUTr   MD_USE_IPV4LLr   MD_WAIT_RETRYr   _network_configmetadata_full)selfsys_cfgr   pathss       J/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceDigitalOcean.pyr   DataSourceDigitalOcean.__init__    s    ##D6A(($$lN;R "	
 	 $N ;{{y*={{y*=mD++//,F#!    ci_pkl_versionreturnNc                 D   > [         TU ]  U5        U R                  5         g N)super	_unpickler   )r%   r+   	__class__s     r(   r0    DataSourceDigitalOcean._unpickle5   s    .)r*   c                 0    [         R                  " SSSS9  g )Nr
   z23.2z.Deprecated in favour of DataSourceConfigDrive.)
deprecateddeprecated_versionextra_message)r   	deprecater%   s    r(   r   !DataSourceDigitalOcean._deprecate9   s    /%J	
r*   c                 ,    [         R                  " 5       $ r.   )	do_helperread_sysinfor8   s    r(   _get_sysinfo#DataSourceDigitalOcean._get_sysinfo@   s    %%''r*   c                 2   U R                  5       u  pU(       d  g[        R                  SU5        S nU R                  (       a   [        R
                  " U R                  5      n[        R                  " U R                  U R                  U R                  U R                  S9nX@l        UR                  SU5      U R                  S'   UR                  SU5      U R                  S'   UR                  S5      U R                  S'   UR                  S	5      U R                  S
'   UR                  SS5      U R                  S'   UR                  SS 5      U l        UR                  SS 5      U l        U(       a!  [        R"                  " U R                  U5        g)NFz&Running on DigitalOcean. droplet_id=%s)r   sec_betweenr   
droplet_idzinstance-idhostnamezlocal-hostname
interfacespublic_keyszpublic-keysregiondefaultavailability_zonevendor_data	user_dataT)r=   LOGinfor   r;   assign_ipv4_link_localr   read_metadatar   r   r   r   r$   r   r   vendordata_rawuserdata_rawdel_ipv4_link_local)r%   is_dorA   
ipv4LL_nicmds        r(   	_get_data DataSourceDigitalOcean._get_dataC   s;   "//1 9:F
>>"99$++FJ$$!!LLLL	
  ')vvlJ'Gm$*,&&Z*H&'&(ff\&:l#')vvm'<m$-/VVHi-H)* ff]D9FF;5))$++zBr*   c                 L    [         R                  " U R                  5       S5      $ )Nzsystem-serial-number)r   instance_id_matches_system_uuidget_instance_id)r%   r&   s     r(   check_instance_id(DataSourceDigitalOcean.check_instance_ide   s$    66  "$:
 	
r*   c                 2   U R                   (       a  U R                   $ U R                  R                  S5      n[        R	                  U5        U(       d  [        S5      eU R                  S   S   n[        R                  " X5      U l         U R                   $ )zConfigure the networking. This needs to be done each boot, since
the IP information may have changed due to snapshot and/or
migration.
rC   z'Unable to get meta-data from server....dnsnameservers)	r#   r   r   rJ   debugRuntimeErrorr$   r;   convert_network_configuration)r%   rC   r]   s      r(   network_config%DataSourceDigitalOcean.network_configj   s     ''']]&&|4
		*HII((/>(FF 
 ###r*   )r#   r   r   r   r   r$   r   r   r   rO   rN   r   )__name__
__module____qualname____firstlineno__dsnamer   intr0   r   r=   rT   rY   propertyra   __static_attributes____classcell__)r1   s   @r(   r
   r
      sI    F"*  
( D

 $ $r*   r
   c                 8    [         R                  " U [        5      $ r.   )r   list_from_dependsdatasources)dependss    r(   get_datasource_listrp      s    $$Wk::r*   )logging&cloudinit.sources.helpers.digitaloceanr   helpersdigitaloceanr;   	cloudinitr   r   	getLoggerrc   rJ   r   r   r    r"   r!   r   r
   DEP_FILESYSTEMrn   rp    r*   r(   <module>ry      s     : : . .! =  

a$W// a$L g4467;r*   