
    ɯeiG#                        d dl Z d dlZd dlZd dlZ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 d dlmZ d dlmZ d dlmZmZmZ d	d
lmZ dZ	 d dlZdZ ej6                  e      Z e       Z e       Z e       Z dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1	 d&de
e2   d e3fd!Z4 G d" d#e      Z5 G d$ d%e      Z6 e jn                  e6jq                         jr                         y# e$ r dZY w xY w)'    N)datetime)Enum)Optional)OK)SecretDetector)TelemetryService)get_os_nameget_python_versionget_version   )SnowparkLocalTestingExceptionTF   zSnowpark PythonTypetypeUUID
Created_onMessageTags
propertiesSnowpark_Version
OS_VersionPython_Version
Event_typeConnection_UUIDfeature_nameparameters_infoerror_messageis_internalconnection_uuidreturnc                 <   t         t        t        t        t	        j
                               t        t        t        j                         j                  d            t        t        | it        t        t        t        t         t"        t$        it&        t(        t        iiS )Nz%Y-%m-%d %H:%M:%S)TELEMETRY_KEY_TYPE#TELEMETRY_VALUE_SNOWPARK_EVENT_TYPETELEMETRY_KEY_UUIDstruuiduuid4TELEMETRY_KEY_CREATED_ONr   nowstrftimeTELEMETRY_KEY_MESSAGETELEMETRY_KEY_CONN_UUIDTELEMETRY_KEY_TAGSTELEMETRY_KEY_SNOWPARK_VERSIONSNOWPARK_PYTHON_VERSIONTELEMETRY_KEY_OS_VERSION
OS_VERSIONTELEMETRY_KEY_PYTHON_VERSIONPYTHON_VERSIONTELEMETRY_KEY_PROPERTIESTELEMETRY_KEY_LOWER_TYPEr   s    d/var/www/html/glpi_dashboard/venv/lib/python3.12/site-packages/snowflake/snowpark/mock/_telemetry.py%generate_base_oob_telemetry_data_dictr8   =   ss     	?C

- #hlln&=&=>Q&R"S 7I*,C$j(.

 	!$&I#
     c                       e Zd ZdZdZdZy)LocalTestTelemetryEventTypeunsupported	supportedsessionN)__name__
__module____qualname__UNSUPPORTED	SUPPORTEDSESSION_CONNECTION r9   r7   r;   r;   P   s    KI"r9   r;   c                        e Zd ZdZd fdZddZddZddZede	fd       Z
ddZdd	Zd
 Zddee   fdZ	 	 	 	 	 	 	 ddee   dee   dee   dee   dee   dee   deej(                     fdZ xZS )LocalTestOOBTelemetryServicez7https://client-telemetry.snowflakecomputing.com/enqueuer    c                     t         |           t        t        j                  dd            | _        | j                  | _        d| _        t        j                         | _        y )N)SNOWPARK_LOCAL_TESTING_INTERNAL_TELEMETRYFT)super__init__boolosgetenv_is_internal_usagePROD_deployment_url_enable	threadingRLock_lock)self	__class__s    r7   rK   z%LocalTestOOBTelemetryService.__init__Y   sM    "&IIA5I#
  $yy__&
r9   c                    t         st        j                  d       y d}d }	 t        j                         5 }|j                  | j                  |t        ddi      }|j                  t        k(  rWt        j                  |j                        j                  dd      t        k(  r!t        j                  d|j                         n"t        j                  d	|j                         d
}d d d        t        j                  d|       y # 1 sw Y    xY w# t        $ r,}t        j                  d|t        |             d
}Y d }~Sd }~ww xY w# t        j                  d|       w xY w)Nzrequest module is not availableTzContent-typezapplication/json)datatimeoutheaders
statusCoder   z$telemetry server request success: %dz"telemetry server request error: %dFz?Telemetry request failed, Exception response: %s, exception: %szTelemetry request success=%s)REQUESTS_AVAILABLEloggerdebugrequestsSessionpostrQ   REQUEST_TIMEOUTstatus_coder   jsonloadstextget	Exceptionr%   )rV   payloadsuccessresponser>   es         r7   _upload_payloadz,LocalTestOOBTelemetryService._upload_payloadb   s4   !LL1 	B!!# $w"<<(( ++-?@	 (  ((B.

8==155lAF"LLL>@T@T LL<h>R>R $G%$6 LL7A7$ $&  	LLQA
 G	 LL7AsA   D B2D(D DD 	E"E>E EE E#c                 >   | j                   sy| j                  5  | j                  j                  |       | j                  j	                         | j
                  kD  r-| j                         }|
	 ddd       y| j                  |       ddd       y# 1 sw Y   yxY w)z$Adds a telemetry event to the queue.N)enabledrU   queueputqsize
batch_sizeexport_queue_to_stringrn   )rV   eventrj   s      r7   addz LocalTestOOBTelemetryService.add   s    ||ZZ 	.JJNN5!zz!DOO3557?	. 	. $$W-	. 	. 	.s   AB9BBc                     | j                   sy| j                  5  | j                  j                         s-| j	                         }|
	 ddd       y| j                  |       ddd       y# 1 sw Y   yxY w)zJFlushes all telemetry events in the queue and submit them to the back-end.N)rp   rU   rq   emptyru   rn   )rV   rj   s     r7   flushz"LocalTestOOBTelemetryService.flush   sh    ||ZZ 	.::##%557?		. 	.
 $$W-	. 	. 	.s   .A+A++A4c                     | j                   S )z0Whether the Telemetry service is enabled or not._enabledrV   s    r7   rp   z$LocalTestOOBTelemetryService.enabled   s     }}r9   c                     d| _         y)zEnable Telemetry Service.TNr|   r~   s    r7   enablez#LocalTestOOBTelemetryService.enable   s	    r9   c                     d| _         y)zDisable Telemetry Service.FNr|   r~   s    r7   disablez$LocalTestOOBTelemetryService.disable   s	    r9   c                    t               }| j                  5  | j                  j                         sD|j	                  | j                  j                                | j                  j                         sDd d d        	 t        j                  |      }t        j                  |      \  }}}|S # 1 sw Y   :xY w# t        $ r( t        j                  dt        |      z  d       d }Y Ww xY w)NzjFailed to generate a JSON dump from the passed in telemetry OOB events. String representation of logs: %s Texc_info)listrU   rq   ry   appendrh   re   dumpsri   r^   r_   r%   r   mask_secrets)rV   logsrj   _masked_texts        r7   ru   z3LocalTestOOBTelemetryService.export_queue_to_string   s    vZZ 	.jj&&(DJJNN,- jj&&(	.	jj&G +77@;	. 	.  	LL!$i(  
 G	s   AB/?B; /B8;.C,+C,r   c                    	 t        |      }t        j                  j                  |t           t
        <   | j                  rdnd|t           t        <   | j                  |       y # t        $ r t        j                  dd       Y y w xY w)Nr6   r   r   zFailed to log session creationTr   )r8   r;   rD   valuer-   TELEMETRY_KEY_EVENT_TYPErO   r+   TELEMETRY_KEY_IS_INTERNALrw   ri   r^   r_   )rV   r   telemetry_datas      r7   log_session_creationz1LocalTestOOBTelemetryService.log_session_creation   s    	JB /N
 ,>>DD -.( ,,! 012KL HH^$ 	JLL9DLI	Js   A#A& & B	B	external_feature_nameinternal_feature_namer   r   raise_errorwarning_loggerc                 &   |s|st        d      d|xs | d }	 t        |      }t        j                  j                  |t
           t        <   | j                  rdnd|t           t        <   |xs ||t           t        <   ||t           t        <   | j                  |       |r|j!                  |       |r3|t"        t$        fv r ||      t%        j&                   ||      |       y y # t        $ r t        j                  dd	       Y kw xY w)
NzdAt least one of external_feature_name or error_message should be provided to raise user facing errorz[Local Testing] z is not supported.r6   r   r   z8[Local Testing] Failed to log not supported feature callTr   )
ValueErrorr8   r;   rB   r   r-   r   rO   r+   r   TELEMETRY_KEY_FEATURE_NAMETELEMETRY_KEY_PARAMETERS_INFOrw   ri   r^   r_   warningNotImplementedErrorr   raise_from_error)	rV   r   r   r   r   r   r   r   r   s	            r7   log_not_supported_errorz4LocalTestOOBTelemetryService.log_not_supported_error   sG    %]O 
 +=+h?T>UUg<h*ij	B /N
 ,77== -.( ,,! 012KL &>)> 012LM
   01- HH^$ ""=124QRR!-00->>.	   	LLJ  	s   BC- - DD)r    NN)NNNNNNN)r?   r@   rA   rP   rK   rn   rw   rz   propertyrL   rp   r   r   ru   r   r%   r   dictr   loggingLoggerr   __classcell__)rW   s   @r7   rG   rG   V   s    DD'$BL.
.   $JHSM J" 04/3*.'+)-&*370'}0  (}0 "$	0
  }0 "#0 d^0 !00r9   rG   r   ):atexitre   r   rM   rS   r&   r   enumr   typingr   snowflake.connector.compatr   #snowflake.connector.secret_detectorr   !snowflake.connector.telemetry_oobr   "snowflake.snowpark._internal.utilsr	   r
   r   
exceptionsr   r]   r`   ImportErrorrc   	getLoggerr?   r^   r1   r3   r/   r#   r"   r5   r$   r(   r+   r-   r4   r.   r0   r2   r   r,   r   r   TELEMETRY_KEY_ERROR_MESSAGEr   r%   r   r8   r;   rG   registerget_instancecloserE   r9   r7   <module>r      sP      	      ) > >  6  			8	$]
#%%- &7 # !  ' !  ' !3 ' / ' + +  1 - )  &*c]	&#$ #i#3 iX ,99;AA BK  s   C- -C76C7