
    fid                     h   d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 e	rd dlm
Z
 dZdZd	Zd
                    e          Zd                    e          ZdZd                    e          Z G d d          Z G d d          Z G d de          Zej        ej        ej        ej        iZdS )    N)Integration)set_context)logger)TYPE_CHECKING)Dictcloud_resourceg       @z169.254.169.254zhttp://{}/latest/api/tokenz3http://{}/latest/dynamic/instance-identity/documentzmetadata.google.internalz,http://{}/computeMetadata/v1/?recursive=truec                   *    e Zd ZdZdZdZdZdZdZdZ	dS )	CLOUD_PROVIDERz
    Name of the cloud provider.
    see https://opentelemetry.io/docs/reference/specification/resource/semantic_conventions/cloud/
    alibaba_cloudawsazuregcp	ibm_cloudtencent_cloudN)
__name__
__module____qualname____doc__ALIBABAAWSAZUREGCPIBMTENCENT     ~/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/sentry_sdk/integrations/cloud_resource_context.pyr
   r
      s8         
 G
CE
C
CGGGr   r
   c                       e Zd ZdZdZdZdS )CLOUD_PLATFORMz
    The cloud platform.
    see https://opentelemetry.io/docs/reference/specification/resource/semantic_conventions/cloud/
    aws_ec2gcp_compute_engineN)r   r   r   r   AWS_EC2GCP_COMPUTE_ENGINEr   r   r   r   r   ,   s'         
 G-r   r   c                       e Zd ZdZdZdZdZ ej        e	          Z
dZddZed             Zed             Zed	             Zed
             Zed             Zed             Zed             ZdS )CloudResourceContextIntegrationz8
    Adds cloud resource context to the Senty scope
    cloudresourcecontext )timeoutNc                     |t           _        d S )N)r%   cloud_provider)selfr*   s     r   __init__z(CloudResourceContextIntegration.__init__D   s    9G'666r   c                 z   	 | j                             dt          ddi          }|j        dk    rdS |j                                        | _        dS # t          j        j	        $ r t          j        dt                     Y dS t          $ r-}t          j        d	t          |                     Y d }~dS d }~ww xY w)
NPUTz$X-aws-ec2-metadata-token-ttl-seconds60headers   FT/AWS metadata service timed out after %s secondsz'Error checking AWS metadata service: %s)httprequestAWS_TOKEN_URLstatusdatadecode	aws_tokenurllib3
exceptionsTimeoutErrorr   debugHTTP_TIMEOUT	Exceptionstrclsres      r   _is_awsz'CloudResourceContextIntegration._is_awsH   s    	  ?F !  A x3uFMMOOCM4!. 	 	 	LA<   55 	 	 	LBCFFKKK55555	s"   /A A .B:	B:"B55B:c                    t           j        t          j        d}	 | j                            dt          d| j        i          }|j        dk    r|S t          j
        |j                            d                    }	 |d         |d<   n# t          $ r Y nw xY w	 |d	         |d
<   n# t          $ r Y nw xY w	 |d         |d<   n# t          $ r Y nw xY w	 |d         |d<   n# t          $ r Y nw xY w	 |d         |d<   n# t          $ r Y nw xY wnh# t          j        j        $ r t#          j        dt&                     Y n8t          $ r,}t#          j        dt)          |                     Y d }~nd }~ww xY w|S )Nzcloud.providerzcloud.platformGETzX-aws-ec2-metadata-tokenr0   r2   utf-8	accountIdcloud.account.idavailabilityZonecloud.availability_zoneregioncloud.region
instanceIdhost.idinstanceTypez	host.typer3   zError fetching AWS metadata: %s)r
   r   r   r"   r4   r5   AWS_METADATA_URLr:   r7   jsonloadsr8   r9   r@   r;   r<   r=   r   r>   r?   rA   )rC   ctxrD   r8   rE   s        r   _get_aws_contextz0CloudResourceContextIntegration._get_aws_contexta   s"    -0,4
 

*	D   3S]C !  A x3
:afmmG4455D*.{*;&''   156H1I-..   &*8nN##   !%l!3I   #'#7K      !. 	 	 	LA<      	D 	D 	DL:CFFCCCCCCCC	D 
s   5D ,D >B
 	D 

BD BD B' &D '
B41D 3B44D 8C D 
CD CD C!  D !
C.+D -C..D 2C> =D >
DD 
DD .E4?	E4"E//E4c                    	 | j                             dt          ddi          }|j        dk    rdS t	          j        |j                            d                    | _        dS # t          j
        j        $ r t          j        d	t                     Y dS t          $ r-}t          j        d
t!          |                     Y d }~dS d }~ww xY w)NrI   Metadata-FlavorGoogler0   r2   FrJ   T/GCP metadata service timed out after %s secondsz'Error checking GCP metadata service: %s)r4   r5   GCP_METADATA_URLr7   rU   rV   r8   r9   gcp_metadatar;   r<   r=   r   r>   r?   r@   rA   rB   s      r   _is_gcpz'CloudResourceContextIntegration._is_gcp   s    	   *H5 !  A x3u#z!&--*@*@AAC4!. 	 	 	LA<   55 	 	 	LBCFFKKK55555	s"   /A& 1A& &.C	C "CCc                    t           j        t          j        d}	 | j        b| j                            dt          ddi          }|j        dk    r|S t          j
        |j                            d                    | _        	 | j        d         d	         |d
<   n# t          $ r Y nw xY w	 | j        d         d                             d          d         |d<   n# t          $ r Y nw xY w	 | j        d         d                             d          d         |d<   n# t          $ r Y nw xY w	 | j        d         d         |d<   n# t          $ r Y nw xY wnh# t          j        j        $ r t%          j        dt(                     Y n8t          $ r,}t%          j        dt+          |                     Y d }~nd }~ww xY w|S )NrH   rI   rZ   r[   r0   r2   rJ   project	projectIdrL   instancezone/rN   rO   rP   idrR   r\   zError fetching GCP metadata: %s)r
   r   r   r#   r^   r4   r5   r]   r7   rU   rV   r8   r9   r@   splitr;   r<   r=   r   r>   r?   rA   )rC   rW   rD   rE   s       r   _get_gcp_contextz0CloudResourceContextIntegration._get_gcp_context   sE    -0,?
 

+	D'H$$$.9 %   8s??J#':afmmG.D.D#E#E *-*:9*Ek*R&''   141A*1M2%**R2!-..    &)&6z&B8&L&R&RSV&W&W'N##    !$!1*!=d!CI    !. 	 	 	LA<      	D 	D 	DL:CFFCCCCCCCC	D 
s   7E 1E B E 
B)&E (B))E -/C E 
C*'E )C**E ./D E 
D+(E *D++E /E E 
EE EE .F<	F<"F77F<c                     |                                  rt          j        S |                                 rt          j        S dS Nr'   )rF   r
   r   r_   r   )rC   s    r   _get_cloud_providerz3CloudResourceContextIntegration._get_cloud_provider   s;     ;;== 	&!%%;;== 	&!%%rr   c                     | j         dk    r| j         nt                                          }|t                                          v rt          |                     S i S rk   )r*   r%   rl   context_getterskeys)rC   r*   s     r   _get_cloud_resource_contextz;CloudResourceContextIntegration._get_cloud_resource_context   s`    
 !R'' 0DDFF 	
 _113333">2444	r   c                  X   t           j        } | dk    o| t                                          v}|rDt	          j        dt           j        t          t                                                               t                                           }|i k    rt          t          |           d S d S )Nr'   zVInvalid value for cloud_provider: %s (must be in %s). Falling back to autodetection...)
r%   r*   rn   ro   r   warninglistrp   r   CONTEXT_TYPE)r*   unsupported_cloud_providercontexts      r   
setup_oncez*CloudResourceContextIntegration.setup_once   s     9Gb Q^?;O;O;Q;Q%Q 	# & 	Nh/>_))++,,   2MMOOb==g..... =r   )r'   )r   r   r   r   
identifierr*   r:   r;   PoolManagerr?   r4   r^   r,   classmethodrF   rX   r_   ri   rl   rp   staticmethodrw   r   r   r   r%   r%   6   s          (JNI7|444DLH H H H   [0 3 3 [3j   [0 4 4 [4l   [ 
 
 [
 / / \/ / /r   r%   )rU   r;   sentry_sdk.integrationsr   sentry_sdk.apir   sentry_sdk.utilsr   typingr   r   rt   r?   AWS_METADATA_HOSTformatr6   rT   GCP_METADATA_HOSTr]   r
   r   r%   r   rX   r   ri   rn   r   r   r   <module>r      s     / / / / / / & & & & & & # # # # # #               % ,334EFFHOO   / AHH  
       . . . . . . . .Z/ Z/ Z/ Z/ Z/k Z/ Z/ Z/@ 7H7Hr   