ó
    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á   € Ü×Ñ×#Ñ# D°6ÔAØŒÜ›ˆŒÜ×(Ò(ä×$Ò$Ø˜l¨NÐ;¸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¸$¿+¹+ÓFˆJä×$Ò$Ø×!Ñ!Ø—L‘LØŸ™Ø—L‘Lñ	
ˆð  ÔØ')§v¡v¨l¸JÓ'Gˆ�‰�mÑ$Ø*,¯&©&°¸ZÓ*Hˆ�‰Ð&Ñ'Ø&(§f¡f¨\Ó&:ˆ�‰�lÑ#Ø')§v¡v¨mÓ'<ˆ�‰�mÑ$Ø-/¯V©V°H¸iÓ-Hˆ�‰Ð)Ñ*Ø Ÿf™f ]°DÓ9ˆÔØŸF™F ;°Ó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                   $ )z‡Configure 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   € Ü×$Ò$ W¬kÓ:Ð: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*   