UiєddlZddlZddlmZddlmZddlmZmZddl m Z ddl m Z ej eZdZdZd Zd Zd Zd Zd ZdZdZdZdS)Nwraps)eula)CoreUserType) LicenseCLN) MessageTypec<tfd}|S)NcK|i|d{V}t|ts Jd|ztj|d<|S)N Result should be a dictionary %slicense) isinstancedictr license_infoargskwargsresultfs Y/opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/rpc_tools/middleware.pywrapperzadd_license..wrapperssq$)&))))))))&$''  . 7  ' '355y rrrs` r add_licenser s3 1XXX Nrc<tfd}|S)NcK|i|d{V}t|ts Jd|ztj}|d|d|dd|d<|S)Nr status license_typeeligible_for_imunify_patch)rrrr )rrrrget)rrrr rs rrz!add_license_user..wrappersq$)&))))))))&$''  . 7  ' )++h'#KK77*1++,++  y rrrs` radd_license_userr!s3 1XXX" Nrc<tfd}|S)NcK|i|d{V}t|ts Jd|zd}tjrtjst jd{Vsx t jt jt j d}n=#t$r0}dd t|dd}Yd}~nd}~wwxYw||d<|S)Nr )messagetextupdatedzFailed to read EULAzFailed to read EULA: {}r) rrris_validis_freer is_acceptedr$r%r&OSErrorformatstr)rrr eula_dicters rrzadd_eula..wrapper3s6q$)&))))))))&$''  . 7  '   **<*>*> )++++++++  #'<>> $ #'<>>!!II #8 9 @ @Q H H#%!!IIIIII #v s69B00 C*:&C%%C*rrs` radd_eular02s3 1XXX0 Nrc<tfd}|S)NcK|i|d{V}t|ts Jd|ztj|d<|S)Nr version)rrrVERSIONrs rrzadd_version..wrapperPslq$)&))))))))&$''  . 7  '!Ly rrrs` r add_versionr5Os3 1XXX Nrc<tfd}|S)Nc4K|i|d{V\}}||dS)N) max_countitems)rrcountr9rs rrzmax_count..wrapper^s?Q///////// u"U333rrrs` rr8r8]s3 1XX4444X4 Nrc<tfd}|S)Nc8K|i|d{V\}}}|||dS)N)r8countsr9r:)rrr8r>r9rs rrzcounts..wrappergsD)*D);F););#;#;#;#;#;#; 65&&5IIIrrrs` rr>r>fs8 1XXJJJJXJ Nrc<tfd}|S)NcKtjdttjd5}|i|d{V}d|D|d<|cdddS#1swxYwYdS)NalwaysT)recordcLg|]!}d|jj"S) )joinr$r).0ws r z5collect_warnings..wrapper..us(!J!J!Jq#((19>":":!J!J!Jrwarnings)rI simplefilterDeprecationWarningcatch_warnings)rrwarnsrrs rrz!collect_warnings..wrapperpsh(:;;;  $D 1 1 1 U1d-f--------F!J!JE!J!J!JF:                   sAA#&A#rrs` rcollect_warningsrNos3 1XXX Nrc<tfd}|S)NcZK|i|d{V}t|tsd|i}|S)Nr9)rrrs rrz!default_to_items..wrapper}sNq$)&))))))))&$'' 'v&F rrrs` rdefault_to_itemsrQ|s3 1XXX Nrc<tfd}|S)a This middleware copies 'remote_addr' to 'client_addr'. This is needed because send_command_invoke middleware may remove remote_addr parameter from request. Used for endpoints that need remote_addr in their logic. :param f: :return: clK|dd}||d<|g|Ri|d{VS)Nparams remote_addr client_addr)r )requestrrrUrs rrz%preserve_remote_addr..wrappers[h'++M:: !, Qw0000000000000rrrs` rpreserve_remote_addrrXs5 1XX1111X1 Nrc<tfd}|S)NcKd}|r |d}n d|vr|d}|t|d}d|vr?d}t|dkr |d}n d|vr|d}|tjkrd|d<d|vrd|d<t j|d ||d d }||d{V|dd d|g|Ri|d{VS) NrsinkrTuserTpasswordz***commandcalling_process)r_rTr`rU)rlenrNON_ROOTr CommandInvokepopprocess_message)rWrrr[rT user_typemsgcoros rrz,send_command_invoke_message..wrappersb  "7DD v  &>D  '(+,,FV## t99q== $QIIv%% &vI 111%)F6NV##%*z"+ * ' ,=t D DC&&s++ + + + + + + + H  ! !- 6 6 6T'3D333F333333333rr)rhrs` rsend_command_invoke_messageris4 4[[$4$4$4$4[$4L Nr)loggingrI functoolsrdefence360agent.contractsr defence360agent.contracts.configrr!defence360agent.contracts.licenser"defence360agent.contracts.messagesr getLogger__name__loggerrr!r0r5r8r>rNrQrXrir:rrrss)******;;;;;;;;888888::::::  8 $ $   ,:      *(((((r