+
    ˜qgj¿  ã                   óê   € ^ RI t ^ RIt^ RIHt ^ RIHtHtHtHt ]P                  ! ]
4      tR.t^tRt ! R R]P                  4      tR R	 ltR
 R lt]]P&                  ]P(                  33.tR tR# )é    N)ÚOptional)ÚdmiÚsourcesÚ
url_helperÚutilzhttp://169.254.169.254ÚCloudCIXc                   óŒ   a a€ ] tR t^t oRt^t^t^tV 3R ltR t	V3R lR lt
V3R lR lt]R 4       t]R	 4       tR
tVtV ;t# )ÚDataSourceCloudCIXr   c                óL   <€ \         \        V `  WV4       R V n        R V n        R # ©N)Úsuperr
   Ú__init__Ú_metadata_urlÚ_net_cfg)ÚselfÚsys_cfgÚdistroÚpathsÚ	__class__s   &&&&€ÚF/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceCloudCIX.pyr   ÚDataSourceCloudCIX.__init__   s$   ø€ ÜÔ  $Ñ0°À%ÔHØ!ˆÔØˆŽó    c                óú   €  V P                  4       pTR,          T n        \        P                  ! TR,          4      T n        R#   \        P                   d"   p\        P	                  RT4        Rp?R# Rp?ii ; i)z&
Fetch the user data and the metadata
z0Failed to read data from CloudCIX datasource: %sNFú	meta-dataú	user-dataT)	Úcrawl_metadata_servicer   ÚInvalidMetaDataExceptionÚLOGÚerrorÚmetadatar   Údecode_binaryÚuserdata_raw)r   Úcrawled_datar   s   &  r   Ú	_get_dataÚDataSourceCloudCIX._get_data   sl   € ð	Ø×6Ñ6Ó8ˆLð % [Õ1ˆŒÜ ×.Ò.¨|¸KÕ/HÓIˆÔáøô ×/Ñ/ô 	Ü�I‰IØBÀEôõ ûð		ús   ‚A ÁA:ÁA5Á5A:c                ó    <€ V ^8„  d   QhRS[ /# ©é   Úreturn)Údict)ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚDataSourceCloudCIX.__annotate__/   s   ø€ ÷ ñ ©ñ r   c                óŒ   € V P                  4       pVf   \        P                  ! R4      h\        WP	                  4       4      pV# )Nz Could not determine metadata URL)Údetermine_md_urlr   r   Úread_metadataÚget_url_params)r   Úmd_urlÚdatas   &  r   r   Ú)DataSourceCloudCIX.crawl_metadata_service/   sE   € Ø×&Ñ&Ó(ˆØŠ>Ü×2Ò2Ø2óð ô ˜V×%8Ñ%8Ó%:Ó;ˆØˆr   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# r'   )r   Ústr)r+   r,   s   "€r   r-   r.   9   s   ø€ ÷ !"ñ !"¡(©3¥-ñ !"r   c                óì  € V P                   '       d   V P                   # V P                  4       p\        P                  ! \        VP
                  VP                  R 7      w  r#V'       g   R# \        \        ^ R4       F°  p\        P                  ! VRP                  V4      R4      p \        P                  ! WPP                  R7      pTP!                  4       '       d9   \        P                  ! TRP                  T4      4      T n          T P                   # \        P                  RT4       K²  	  V P                   #   \        P                   d"   p\        P                  RYW4        Rp?Kñ  Rp?ii ; i))Úmax_waitÚtimeoutNzv{0}r    )r:   zURL %s raised exception %szNo metadata found at URL %séÿÿÿÿ)r   r2   r   Úwait_for_urlÚMETADATA_URLSÚmax_wait_secondsÚtimeout_secondsÚrangeÚMETADATA_VERSIONÚcombine_urlr+   ÚreadurlÚurl_timeoutÚUrlErrorr   ÚdebugÚok)r   Ú
url_paramsÚbase_urlÚ_ÚversionÚurlÚresponseÚes   &       r   r0   Ú#DataSourceCloudCIX.determine_md_url9   s4  € Ø××ÐØ×%Ñ%Ð%ð ×(Ñ(Ó*ˆ
Ü ×-Ò-ÜØ×0Ñ0Ø×.Ñ.ô
‰ˆ÷
 Ùô Ô-¨q°"Ö5ˆGÜ×(Ò(Ø˜&Ÿ-™-¨Ó0°*óˆCðÜ%×-Ò-¨c×;KÑ;KÔL�ð
 �{‰{�}Š}Ü%/×%;Ò%;Ø˜fŸm™m¨GÓ4ó&�Ô"ð ð ×!Ñ!Ð!ô —	‘	Ð7¸Ö=ñ! 6ð$ ×!Ñ!Ð!øô ×&Ñ&ô Ü—	‘	Ð6¸Ô?Ýûðús   Â(!D=Ä=E3ÅE.Å.E3c                 ó   € \        4       # r   )Úis_platform_viable© r   r   Ú	ds_detectÚDataSourceCloudCIX.ds_detect\   s   € ä!Ó#Ð#r   c                ó®   € V P                   '       d   V P                   # V P                  '       g   R # V P                  R,          V n         V P                   # )NÚnetwork)r   r    )r   s   &r   Únetwork_configÚ!DataSourceCloudCIX.network_config`   s;   € à�=�=ˆ=Ø—=‘=Ð à�}�}ˆ}ÙØŸ™ iÕ0ˆŒØ�}‰}Ðr   )r   r   r    r"   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚdsnameÚurl_retriesÚurl_timeout_secondsÚurl_sec_between_retriesr   r$   r   r0   ÚstaticmethodrS   ÚpropertyrW   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r   r,   s   @@r   r
   r
      sg   ù‡ € à€Fà€KØÐØÐõò
÷"ð ÷!"ð !"ðF ñ$ó ð$ð ñó ÷ð r   r
   c                ó$   € V ^8„  d   QhR\         /# r'   )Úbool)r+   s   "r   r-   r-   k   s   € ÷ Iñ IœDñ Ir   c                  ó<   € \         P                  ! R 4      \        8H  # )zsystem-product-name)r   Úread_dmi_dataÚCLOUDCIX_DMI_NAMErR   r   r   rQ   rQ   k   s   € Ü×ÒÐ2Ó3Ô7HÑHÐHr   c                ó$   € V ^8„  d   QhR\         /# )r(   rI   )r7   )r+   s   "r   r-   r-   o   s   € ÷ -ñ -œCñ -r   c                óÂ  € / pRR\         P                  3RR\         P                  33pV Fª  w  rEp \        P                  ! \        P
                  ! W4      VP                  VP                  VP                  R7      pTP                  4       '       g-   \        P                  ! R
T RT  RT RTP                   24      h T! TP                  4      Y%&   K¬  	  V#   \        P                   d(   p\        P                  ! RT RT  RT RT 24      hR	p?ii ; i  \        P                   P"                   d&   p	\        P                  ! RT  RT RT	 24      T	hR	p	?	ii ; i)a  
Read metadata from metadata server at base_url

:returns: dictionary of retrieved metadata and user data containing the
          following keys: meta-data, user-data
:param: base_url: meta data server's base URL
:param: url_params: dictionary of URL retrieval parameters. Valid keys are
        `retries`, `sec_between` and `timeout`.
:raises: InvalidMetadataException upon network error connecting to metadata
         URL, error response from meta data server or failure to
         decode/parse metadata and userdata payload.
r    r   Úuserdatar   )rL   ÚretriesÚsec_betweenr:   zFailed to fetch IMDS z: Ú/Nz	No valid z found. URL z returned code zInvalid JSON at )r   Ú	load_jsonÚmaybe_b64decoder   rC   rB   Únum_retriesÚsec_between_retriesr?   rE   r   r   rG   ÚcodeÚcontentsÚjsonÚdecoderÚJSONDecodeError)
rI   rH   ÚmdÚleaf_key_format_callbackÚurl_leafÚnew_keyÚformat_callbackrM   r   Úexcs
   &&        r   r1   r1   o   sv  € ð 
€Bà	�[¤$§.¡.Ð1Ø	�[¤$×"6Ñ"6Ð7ð Ðó
 /GÑ*ˆ˜?ð	Ü!×)Ò)Ü×*Ò*¨8Ó>Ø"×.Ñ.Ø&×:Ñ:Ø"×2Ñ2ô	ˆHð �{‰{�}Š}Ü×2Ò2Ø˜H˜:ð &Ø�j  ( ¨?¸8¿=¹=¸/ðKóð ð
	Ù)¨(×*;Ñ*;Ó<ˆB‹Kñ+ /Gð4 €Iøô% ×"Ñ"ô 	Ü×2Ò2Ø'¨ z°Ø�*˜A˜h˜Z r¨%¨ð2óð ûð	ûô �|‰|×+Ñ+ô 	Ü×2Ò2Ø" 8 *¨A¨h¨Z°r¸#¸Ð?óàðûð	ús0   ²ACÃDÃDÃ0"DÄDÄEÄ9 EÅEc                 ó8   € \         P                  ! V \        4      # r   )r   Úlist_from_dependsÚdatasources)Údependss   &r   Úget_datasource_listr„   ¦   s   € Ü×$Ò$ W¬kÓ:Ð:r   )rw   ÚloggingÚtypingr   Ú	cloudinitr   r   r   r   Ú	getLoggerrY   r   r=   rA   rj   Ú
DataSourcer
   rQ   r1   ÚDEP_FILESYSTEMÚDEP_NETWORKr‚   r„   rR   r   r   Ú<module>rŒ      s‚   ðó Û Ý ç 4Ó 4à×Ò˜Ó!€à)Ð*€ØÐ àÐ ôW˜×+Ñ+ô WõtIõ-ðd ˜'×0Ñ0°'×2EÑ2EÐFÐGð€ô;r   