ó
    x[h¡  ã                   óò   • S SK r S SKJr  S SKJrJrJrJrJrJ	r	  S SK
Jr  S SKJr  \ R                  " \5      rSrS\S-   0rS	rS
rS
r " S S\R,                  5      rS rS rSS jr\\R6                  44/rg)é    N)Ú
exceptions)ÚdmiÚnetÚsourcesÚsubpÚ
url_helperÚutil)ÚNoDHCPLeaseError)ÚEphemeralDHCPv4zhttp://169.254.169.254/api/v1Úmetadata_urlz	/metadataé   é   c                   ój   ^ • \ rS rSrSrS rS\SS4U 4S jjrS rS	 r	\
S
 5       r\S 5       rSrU =r$ )ÚDataSourceNWCSé   ÚNWCSc                 óH  • [         R                  R                  XX#5        X l        [	        5       U l        [        R                  " [        R                  " USS/0 5      [        /5      U l
        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        [         R&                  U l        [         R*                  U l        S U l        g )NÚ
datasourcer   r   ÚretriesÚtimeoutÚ
wait_retry)r   Ú
DataSourceÚ__init__ÚdistroÚdictÚmetadatar	   ÚmergemanydictÚget_cfg_by_pathÚBUILTIN_DS_CONFIGÚds_cfgÚmetadata_addressÚgetÚ
MD_RETRIESr   Ú
MD_TIMEOUTr   ÚMD_WAIT_RETRYr   ÚUNSETÚ_network_configÚDSMODE_NETWORKÚdsmodeÚmetadata_full)ÚselfÚsys_cfgr   Úpathss       ÚB/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceNWCS.pyr   ÚDataSourceNWCS.__init__   sÍ   € Ü×Ñ×#Ñ# D°6ÔAØŒÜ›ˆŒÜ×(Ò(ä×$Ò$ W¨|¸VÐ.DÀbÓIÜ!ðó
ˆŒð !%§¡¨NÑ ;ˆÔØ—{‘{—‘ y´*Ó=ˆŒØ—{‘{—‘ y´*Ó=ˆŒØŸ+™+Ÿ/™/¨,¼ÓFˆŒÜ&Ÿ}™}ˆÔÜ×,Ñ,ˆŒØ!ˆÕó    Úci_pkl_versionÚreturnNc                 ór   >• [         TU ]  U5        U R                  (       d  [        R                  U l        g g ©N)ÚsuperÚ	_unpickler'   r   r&   )r+   r1   Ú	__class__s     €r.   r6   ÚDataSourceNWCS._unpickle0   s*   ø€ Ü‰Ñ˜.Ô)Ø×#×#Ü#*§=¡=ˆDÕ ð $r0   c                 ó8  • U R                  5       nUc  [        S5      eXl        US   U R                  S'   US   U R                  S'   US   U R                  S'   US   U R                  S'   UR	                  SS 5      U l        UR	                  SS 5      U l        g	)
Nzfailed to get metadatazinstance-idzpublic-keysÚnetworkÚhostnamezlocal-hostnameÚuserdataÚ
vendordataT)Úget_metadataÚRuntimeErrorr*   r   r"   Úuserdata_rawÚvendordata_raw)r+   Úmds     r.   Ú	_get_dataÚDataSourceNWCS._get_data5   s›   € Ø×ÑÓ ˆà‰:ÜÐ7Ó8Ð8àÔà')¨-Ñ'8ˆ�‰�mÑ$Ø')¨-Ñ'8ˆ�‰�mÑ$Ø#% i¡=ˆ�‰�iÑ Ø*,¨Z©.ˆ�‰Ð&Ñ'àŸF™F :¨tÓ4ˆÔà Ÿf™f \°4Ó8ˆÔàr0   c                 óÊ  •  [         R                  S5        [        U R                  [        R
                  " 5       S[        S-   0/S9   [        U R                  U R                  U R                  U R                  S9sS S S 5        $ ! , (       d  f       g = f! [        [        R                  [        [         R"                  4 a  n[         R%                  SU5        e S nAff = f)Nz#Attempting to get metadata via DHCPÚurlz/metadata/instance-id)ÚifaceÚconnectivity_urls_data©r   Úsec_betweenr   zDHCP failure: %s)ÚLOGÚinfor   r   r   Úfind_fallback_nicÚBASE_URL_V1Úread_metadatar!   r   r   r   r
   r   ÚProcessExecutionErrorr?   r   ÚRequestExceptionÚerror)r+   Úes     r.   r>   ÚDataSourceNWCS.get_metadataH   s½   € ð	Ü�H‰HÐ:Ô;ä Ø—‘Ü×+Ò+Ó-ð œ{Ð-DÑDðð(óô %Ø×)Ñ)Ø ŸL™LØ $§¡Ø ŸL™Lñ	÷÷ ÷ ûô" Ü×&Ñ&ÜÜ×'Ñ'ð	
ó 	ô �I‰IÐ(¨!Ô,Øûð	ús6   ‚AB Á	4BÁ=	B Â
BÂB ÂB Â.C"ÃCÃC"c                 ó   • [         R                  S5        U R                  [        R                  :w  a  U R                  $ U R
                  S   S   (       d  [        S5      eU R
                  S   S    H8  n[        US   5      nU(       d  M  [         R                  SUS   U5        X!S'   M:     U R
                  S   U l        U R                  $ )Nz Attempting network configurationr:   Úconfigz"Unable to get metadata from serverÚmac_addresszOverriding %s with %sÚname)	rK   Údebugr'   r   r&   r   r?   Úget_interface_namerL   )r+   ÚiÚ
iface_names      r.   Únetwork_configÚDataSourceNWCS.network_confige   s³   € ä�	‰	Ð4Ô5à×Ñ¤7§=¡=Ó0Ø×'Ñ'Ð'à�}‰}˜YÑ'¨×1ÜÐCÓDÐDð —‘˜yÑ)¨(Ô3ˆAÜ+¨A¨mÑ,<Ó=ˆJçˆzÜ—‘Ð0°!°F±)¸ZÔHØ&�&“	ñ 4ð  $Ÿ}™}¨YÑ7ˆÔà×#Ñ#Ð#r0   c                  ó4   • S[         R                  " S5      :H  $ )Nr   zsystem-manufacturer)r   Úread_dmi_data© r0   r.   Ú	ds_detectÚDataSourceNWCS.ds_detect{   s   € àœ×*Ò*Ð+@ÓAÑAÐAr0   )r'   r   r    r)   r   r!   r*   r   r   r@   rA   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Údsnamer   Úintr6   rC   r>   Úpropertyr]   Ústaticmethodrb   Ú__static_attributes__Ú__classcell__)r7   s   @r.   r   r      sT   ø† à€Fò"ð$1¨ð 1°÷ 1ò
ò&ð: ñ$ó ð$ð* ñBó öBr0   r   c                 óZ   • [         R                  " 5       nX;  a  g UR                  U 5      $ r4   )r   Úget_interfaces_by_macr"   )ÚmacÚmacs_to_nics     r.   rZ   rZ   €   s(   € Ü×+Ò+Ó-€Kà
ÓØà�?‰?˜3ÓÐr0   c                 ó8   • [         R                  " U [        5      $ r4   )r   Úlist_from_dependsÚdatasources)Údependss    r.   Úget_datasource_listrv   Š   s   € Ü×$Ò$ W¬kÓ:Ð:r0   c                 óÎ   • [         R                  " XX#S9nUR                  5       (       d  [        SU -  5      e[        R
                  " UR                  R                  5       5      $ )NrI   zunable to read metadata at %s)r   ÚreadurlÚokr?   r	   Ú	load_jsonÚcontentsÚdecode)rF   r   rJ   r   Úresponses        r.   rO   rO   Ž   sS   € Ü×!Ò!Ø¨+ñ€Hð �;‰;�=‰=ÜÐ:¸SÑ@ÓAÐAä�>Š>˜(×+Ñ+×2Ñ2Ó4Ó5Ð5r0   )é   r~   r   )ÚloggingÚrequestsr   Ú	cloudinitr   r   r   r   r   r	   Úcloudinit.net.dhcpr
   Úcloudinit.net.ephemeralr   Ú	getLoggerrd   rK   rN   r   r#   r$   r%   r   r   rZ   rv   rO   ÚDEP_FILESYSTEMrt   ra   r0   r.   Ú<module>r†      s“   ðó
 å ç ?× ?Ý /Ý 3à×Ò˜Ó!€à-€ð �K +Ñ-ðÐ ð €
Ø€
Ø€ôcB�W×'Ñ'ô cBòL ò;ô6ð �g×,Ñ,Ð.Ð/ð�r0   