wo4h6ddlZddlZddlZddlZddlZddlZddlmZm Z ddl m Z ddl m Z ddlZddlmZmZmZmZddlmZddlmZddlmZdd lmZmZdd lmZdd lm Z e e!Z"Gd d eeZ#Gdde#Z$Gdde$Z%dS)N)ABCabstractmethod) getLogger)Optional)APIAPIError APITokenErrorFGWSendMessgeException)Core)Message)g)IndependentAgentIDAPIIAIDTokenError) AsyncIterate)ServerJSONEncodercReZdZdZedefdZdeddfdZdede ddfd Z dS) BaseSendMessageAPIz/api/v2/send-message/{method}returnc KdSN)selfmessage_methodheaders post_datas \/opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/api/server/send_message.py _send_requestz BaseSendMessageAPI._send_request"s  resultNcd|vr"td||ddkr5td|ddS)Nstatusz unexpected server response: {!r}okzserver error: {}msg)rformatget)rrs rcheck_responsez!BaseSendMessageAPI.check_response&sk 6 ! !=DDVLLMM M ( t # #-44VZZ5F5FGGHH H $ #rmethodrcK tjd{V}n$#t$r}td|d}~wwxYwd|d}||||d{V}||dS)NzIAID token error occurred zapplication/json)z Content-TypezX-Auth)r get_tokenrr rr&)rr'rtokenerrs r send_datazBaseSendMessageAPI.send_data,s B/9;;;;;;;;EE B B B @Q @ @AA A B/  ))&'9EEEEEEEE F#####s ?:?) __name__ __module__ __qualname__URLrdictrr&strbytesr,rrrrrs )C    ^ ITIdIIII $c $e $ $ $ $ $ $ $rrceZdZejZddedefdZdeddfdZde eddfd Z d e ddfd Z d Z d eddfdZdS)SendMessageAPINrpm_verbase_urlcz||_||_d|_d|_i|_|r ||_dS|j|_dS)N) _executorr6 product_name server_idlicenser7 _BASE_URL)rr6r7executors r__init__zSendMessageAPI.__init__<sF!   +$DMMM NDMMMrr;rc||_dSr)r;)rr;s rset_product_namezSendMessageAPI.set_product_nameGs(rr<c||_dSr)r<)rr<s r set_server_idzSendMessageAPI.set_server_idJs "rr=c||_dSr)r=)rr=s r set_licensezSendMessageAPI.set_licenseMs  rcKtj|j|j|z||d}|||jd{VS)Nr'POST)datarr')r?)urllibrequestRequestr7r0r$ async_requestr:)rrrrrLs rrzSendMessageAPI._send_requestPst.(( MDHOO>OBB B )   ''$.'IIIIIIIIIrmessagecKd|vrtj|d<|j|j|j|j|jd}t j|t }| |j |d{VdS)N timestamp)payloadr6 message_idr<name)cls) timerRr6rSr<r;jsondumpsrencoder,r')rrO data2sendrs r send_messagezSendMessageAPI.send_messageYs g % %#'9;;GK |!,%   Jy.?@@@GGII nnW^Y77777777777r)NN)r-r.r/r DEFAULT_SOCKET_TIMEOUT_SOCKET_TIMEOUTr2r@rBrrDr1rFrr r[rrrr5r59s1O + + +s + + + +)S)T))))#x}#####4DJJJ8'8d888888rr5cFeZdZdefdZdeeeefddfdZ dS)FileBasedGatewayAPIrcK|4d{Vtjtj|d{V}|dd|Ddcdddd{VS#1d{VswxYwYdS)Nr'c&i|]\}}|dk ||SrHr).0kvs r z8FileBasedGatewayAPI._prepare_message..ps#JJJ$!QAMMAMMMr)r'rJ)asyncio to_threadrWloadsitems)rrO semaphoreloadeds r_prepare_messagez$FileBasedGatewayAPI._prepare_messageks        ",TZAAAAAAAAF *JJ&,,..JJJ                              sA A** A47A4messagesNc Kd}tj| fdt|2d{V}tj|d{V}tjt j|d{V}tjdd}tj |d}|ddg}tj |tj j tj j tj j dd{V} tj|} | | d{V\} } t%jd r*t(d t-|| | | jd kr`t(d | t5t7d | dS)NcTKg|3d{V \}}|"6Sr)rl)rb_r#rrjs r z5FileBasedGatewayAPI.send_messages..vsd         a  ! !#y 1 1    s(I360_MESSAGE_GATEWAY_BIN_PATHz /usr/libexec/zimunify-message-gatewayz send-manyz"--producer=i360-agent-non-resident)stdinstdoutstderr)inputDEBUGzMessage sent to fgw: %s %s %srzError sending message: )rf SemaphorergatherrgrWrXosgetenvpathjoincreate_subprocess_exec subprocessPIPEbase64 b64encoderY communicater r%loggerinfolen returncodeerrordecoder r2)rrm max_threadstasksprepared_messagesdumped_messages bin_file_pathbin_filecommandprocessb64datarurvrjs` @r send_messagesz!FileBasedGatewayAPI.send_messagesssH %k22      ,X 6 6         #*.%"8888888 ' 1 J)! !        +_  7<< /HII   0   6 $)%*%*           "?#9#9#;#;<<&222AAAAAAAA 5>>  KK/X      " " LLD6==??DD E E E(?fmmoo??@@  # "r) r-r.r/r1rllisttuplefloatr3rrrrr_r_js_D)Due|1D,E)$))))))rr_)&rrWr{rV urllib.errorrKurllib.requestabcrrloggingrtypingrrfdefence360agent.api.serverrrr r defence360agent.contracts.configr "defence360agent.contracts.messagesr &defence360agent.internals.global_scoper defence360agent.internals.iaidrr!defence360agent.utils.async_utilsrdefence360agent.utils.jsonrr-rrr5r_rrrrs ######## 211111666666444444;:::::888888 8  $$$$$c$$$4.8.8.8.8.8'.8.8.8b22222.22222r