
    l h                    F    d Z ddlmZ ddlZddlmZmZ 	 d	 	 	 	 	 	 	 ddZy)zAzure helpers.    )annotationsN)AnyOptionalc                   ddl m}m} d}|dz  }|d|  z  }|r|d| z  }ddd	} |||
      }	  |||      5 }|j                  }	|j	                         j                  d      }
d d d        	dk7  rd}t        |      	 t        j                  
      }dD ]'  }|j                  |      rd}|||
fz  }t        |       |S # 1 sw Y   _xY w# t        $ r}d|z  }t        |      d d }~ww xY w# t        $ r t        d      d w xY w)Nr   )Requesturlopenz5http://169.254.169.254/metadata/identity/oauth2/tokenz?api-version=2018-02-01z
&resource=z&client_id=truezapplication/json)MetadataAccept)headers)timeoututf8z'Failed to acquire IMDS access token: %s   z$Failed to acquire IMDS access token.z*Azure IMDS response must be in JSON format)access_token
expires_inz0Azure IMDS response must contain %s, but was %s.)urllib.requestr   r   statusreaddecode	Exception
ValueErrorjsonloadsget)resource	client_idr   r   r   urlr   requestresponser   bodyemsgdatakeys                  |/var/www/html/SchoolMeal/SchoolMeal/pds_admin_SchoolMeal/Backend/venv/lib/python3.12/site-packages/pymongo/_azure_helpers.py_get_azure_responser&      sK    0
AC$$CZz""CYK((!-?@Gc7+G(Wg. 	2(__F==?))&1D	2 }4oQzz$ . "xx}DCd#CS/!	" K+	2 	2  (7!;o4'(  QEFDPQs:   
C ,C(C C4 CC 	C1C,,C14D
)N   )r   strr   zOptional[str]r   floatreturnzdict[str, Any])__doc__
__future__r   r   typingr   r   r&        r%   <module>r0      s?     "    FG##+#=B##r/   