bgw,ddlmZddlZddlmZddlmZddlmZddl m Z m Z ddl m Z ddlmZdd lmZ dd lmZn#e$r e d wxYwerdd lmZmZmZdd lmZmZmZgdZdZdZGddej Z!Gdde Z"dS))absolute_importN)Hub)SPANDATA)_should_send_default_pii) DidNotEnable Integration)Span)capture_internal_exceptions) TYPE_CHECKING) monitoringzPymongo not installed)AnyDictUnion)CommandFailedEventCommandStartedEventCommandSucceededEvent) insertorderedfindlimit singleBatch aggregate createIndexesindexesdelete findAndModifyrenameCollectiontodropc"|D]}|tv}|r|dkod|v}|r|dk}|r||D] }|D]}d||< 9|dv}|r||D] }d|||<V|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 p/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/sentry_sdk/integrations/pymongo.py _strip_piir3-sE$$66   8ONw0N   [(  s| ( ("((G#'CLL( <<  #CL . .)- X&&  :-  #CL 9 97?87K7K(!3!3QS99I48HX&y119  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_datarCXst D(D !G!(X (+N!(6X $%%a(K%0X !" Kr4c,eZdZdZdZdZdZdZdS) CommandTracerci|_dSN)_ongoing_operations)selfs r2__init__zCommandTracer.__init__ns#%   r4c|jSrG) request_id)rIr>s r2_operation_keyzCommandTracer._operation_keyrs r4ctj}|tdSt 5t t j|j}| dd| dd| ddd}d|j tj dtj |ji} |jd|d<t!|jd |d <n#t"$rYnwxYwd ii}|j|d d <|j|d d <|t+| | dd}t!||d d<n#t,$rYnwxYwt/st1|}d|j|}|||} |D]\} } | | | |D]\} } | | | t 5||d||dddn #1swxYwY| |j |!|<ddddS#1swxYwYdS)Nz$dbz $clusterTimez $signaturezdb.queryzdb.namer6rz net.peer.namer7z net.peer.port operation_ids operationrequestlsididsessionz{} {})op descriptionr$)messagecategorytyper?)"rcurrentget_integrationPyMongoIntegrationr dictcopydeepcopyr'popr9rr8 DB_OPERATION command_namer;str TypeError operation_idrLr!rCKeyErrorrr3format start_spanitemsset_tagset_dataadd_breadcrumb __enter__rHrM) rIr>hubr'rUtagsr?rRr$spantagvaluer(s r2startedzCommandTracer.startedvs|k   1 2 2 : F ( * *0 T0 T4=7788G KKt $ $ $ KK - - - KK d + + +B5."I%u'9D  (-(;A(>_%(+E,?,B(C(C_%%    $R(D161CD !+ ./4/?D !) , KK U++ , , , {{6**4036t99_%i00    ,-- .$W--NN5#5w??E>>RU>;;D"jjll ) ) U S%(((("jjll * * U c5)))),.. X X""57RV"WWW X X X X X X X X X X X X X X XDH>>CSCSD $T%8%8%?%? @a0 T0 T0 T0 T0 T0 T0 T0 T0 T0 T0 T0 T0 T0 T0 T0 T0 T0 TsBJ< -C76J<7 DJ<DA J<3FJ< F J<FCJ<I5) J<5I9 9J<<I9 =2J<<KKc,tj}|tdS |j||}|d|ddddS#t$rYdSwxYw)Ninternal_error rrZr[r\rHr`rM set_status__exit__rfrIr>rnrps r2failedzCommandTracer.failedsk   1 2 2 : F +//0C0CE0J0JKKD OO, - - - MM$d + + + + +    FF AB BBc,tj}|tdS |j||}|d|ddddS#t$rYdSwxYw)Nokrvrys r2 succeededzCommandTracer.succeededsk   1 2 2 : F +//0C0CE0J0JKKD OOD ! ! ! MM$d + + + + +    DD r{N)__name__ __module__ __qualname__rJrMrsrzr~r4r2rErEmsc&&&   5T5T5Tn        r4rEc(eZdZdZedZdS)r\pymongocFtjtdSrG)r registerrErr4r2 setup_oncezPyMongoIntegration.setup_onces MOO,,,,,r4N)rrr identifier staticmethodrrr4r2r\r\s2J--\---r4r\)# __future__rr^ sentry_sdkrsentry_sdk.constsrsentry_sdk.hubrsentry_sdk.integrationsrrsentry_sdk.tracingr sentry_sdk.utilsr sentry_sdk._typesr rr ImportErrortypingr rrpymongo.monitoringrrrr&r3rCCommandListenerrEr\rr4r2rs&&&&&& &&&&&&333333========######888888++++++0"""""""000 ,. / //0''''''''''"(((V*XXXXXJ.XXXv----------s ?A