0i ddlZddlZddlZddlmZmZmZddlmZm Z ddl m Z ddl m Z ddlmZ ddlmZdd lmZerdd lmZmZmZdd lmZmZmZgd Zd ZdZGddej>Z Gdde Z!y#e$r edwxYw)N) SPANSTATUSSPANDATAOP) DidNotEnable Integration)should_send_default_pii)Span)capture_internal_exceptions) monitoringzPymongo not installed) TYPE_CHECKING)AnyDictUnion)CommandFailedEventCommandStartedEventCommandSucceededEvent) insertorderedfindlimit singleBatch aggregate createIndexesindexesdelete findAndModifyrenameCollectiontodropc|D]}|tv}|r|dk(xrd|v}|r|dk(}|r||D]}|D]}d||< :|dv}|r||D] }d|||< S|dk(} | r#||D]} d| vr| dngD] } d| d| < }d||<|S)Nupdater documentsz%s)filterqueryr!pipelinez$match)SAFE_COMMAND_ATTRIBUTES) commandkey is_safe_fieldupdate_db_command is_documentdocdoc_key is_dict_fielditem_keyis_pipeline_fieldr% match_keys N/opt/hc_python/lib/python3.12/site-packages/sentry_sdk/integrations/pymongo.py _strip_piir3-s66  8ONw0N  [( s|"G#'CL #$ << #CL)- X&)  :- #CL7?87K(!3QS!SI48HX&y1"T)  IL Nci}d|tj<|j}|||tj<|jd}|||tj <|jd}|||tj <|S)Nmongodbr)r DB_SYSTEM database_nameDB_NAME connection_idSERVER_ADDRESS SERVER_PORT)eventdatadb_nameserver_address server_ports r2 _get_db_datarCXs D(D  !!G!(X  ((+N!(6X $ $%%%a(K%0X ! !" Kr4c*eZdZdZdZdZdZdZy) CommandTracerci|_yN)_ongoing_operations)selfs r2__init__zCommandTracer.__init__ns #% r4c|jSrG) request_id)rIr>s r2_operation_keyzCommandTracer._operation_keyrsr4c tjjtyt 5t t j|j}|jdd|jdd|jddd|jtjdtj|jtj|j!|ji} |j"d|d<t%|j"d|d <d ii}|j(|d d <|j*|d d <|j-t/| |jd d}t%||d d<t3s t5|}t7j8|t$}tj:t<j>|tj@}|jCD])\}} |jE|| |jG|| +|jCD]\} } |jG| | t 5tjH|dt<j>|ddd|jK|jL|jO|<dddy#t&$rYwxYw#t0$rYUwxYw#1swY^xYw#1swYyxYw)Nz$dbz $clusterTimez $signaturezdb.namer6rz net.peer.namer7z net.peer.port operation_ids operationrequestlsididsession)default)opnameoriginr$)messagecategorytyper?)( sentry_sdk get_clientget_integrationPyMongoIntegrationr dictcopydeepcopyr'popr9rr8 DB_OPERATION command_nameDB_MONGODB_COLLECTIONgetr;str TypeError operation_idrLr!rCKeyErrorrr3jsondumps start_spanrDBrXitemsset_tagset_dataadd_breadcrumb __enter__rHrM) rIr>r'tagsr?rRr$spantagvaluer(s r2startedzCommandTracer.startedvs  " 2 23E F N  ( *4==78G KKt $ KK - KK d +5..""I%%u'9'9.. E_%(+E,?,?,B(C_%$R(D161C1CD !+ ./4/?/?D !) , KK U+ , {{6*4036t9_%i0+,$W-JJw4E((55)00D #jjl U S%( c5) +#jjl U c5)+-.))!G"%%d/ DH>>CSD $ $T%8%8%? @s+ *"    ./.i+ *snCK.4-K!AK.$%K CK.(K"4K. K K.KK. KK.KK."K+ 'K..K7c,tjjty |jj |j |}|jtj|jdddy#t$rYywxYwrG) r\r]r^r_rHrcrM set_statusrINTERNAL_ERROR__exit__rkrIr>rvs r2failedzCommandTracer.failedsz  " 2 23E F N  ++//0C0CE0JKD OOJ55 6 MM$d +   AB BBc,tjjty |jj |j |}|jtj|jdddy#t$rYywxYwrG) r\r]r^r_rHrcrMr{rOKr}rkr~s r2 succeededzCommandTracer.succeededsx  " 2 23E F N  ++//0C0CE0JKD OOJMM * MM$d +   rN)__name__ __module__ __qualname__rJrMryrrr4r2rErEms& >T@  r4rEc*eZdZdZdeZedZy)r_pymongozauto.db.c>tjtyrG)r registerrErr4r2 setup_oncezPyMongoIntegration.setup_onces MO,r4N)rrr identifierrX staticmethodrrr4r2r_r_s%J | $F--r4r_)"rarlr\sentry_sdk.constsrrrsentry_sdk.integrationsrrsentry_sdk.scopersentry_sdk.tracingr sentry_sdk.utilsr rr ImportErrortypingr r rrpymongo.monitoringrrrr&r3rCCommandListenerrEr_rr4r2rs 66=4#80"!''"(V*_J.._D--E0 . //0s A??B