wo4h0&ddlZddlZddlZddlZddlZddlZddlmZddlm Z ddl m Z ddl m Z ddlmZddlmZddlmZdd lmZmZdd lmZdd lmZdd lmZdd lmZe eZ dZ!dZ" dZ#Gdde$Z%GddeZ&dS)N)suppress) dataclass) getLogger)Path)Callable)urljoin)Request)APIAPIError) LicenseCLN)atomic_rewrite)DAY)g <ceZdZdZdS)IAIDTokenErrorz$Can't get iaid token for any reason.N)__name__ __module__ __qualname____doc__S/opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/internals/iaid.pyrr#s....rrc|eZdZdZeejedZeejedZ eejedZ eejedZ e dZ e dz Ze dz Ze d z Ze d z Zgggd ZejZejZed GddZedddefdZedddefdZedZedZedZ edZ!ed(dZ"edZ#edZ$edefdZ%ed Z&ed)d#Z'ed$Z(ed*d%Z)ed&Z*ed*d'Z+dS)+IndependentAgentIDAPIz/api/auth/agent/{}registeractivateloginz token-infoz/var/imunify360iaidz iaid-passwordz iaid-tokenziaid-activated)rrr T)frozencJeZdZUgdZeed<eed<eed<eed<eed<dS)IndependentAgentIDAPI.TokenInfo)validr!license_status server_id need_renewr%r!r&r'r(N)rrr __slots__bool__annotations__strrrr TokenInfor$;sX     rr-r)timeoutcorocKtj|tjd|ztzzd{V||d{VdS)N)asynciosleeprandom randrange_TIMEOUT_MULTIPLICATOR)r/attemptr.argss r_retry_on_errorz%IndependentAgentIDAPI._retry_on_errorJs}m f&qG|447MM M         dDkrc fd|j|D|j|<t|j|dkrXtj}|j|||j|g|R||ddStd|dS)Nc:g|]}||Sr)done).0tasks r z3IndependentAgentIDAPI._add_task..Ts5   TYY[[    rr1r7r.zTask %s already in retry queue) _taskslenr2get_event_loopappend create_taskr9loggerinfo)clstyper/r7r.r8loops r _add_taskzIndependentAgentIDAPI._add_taskRs   Z-    4 sz$ A % %)++D Jt  # #  'C'#-4g      KK8$ ? ? ? ? ?rc@|d|jddS)Nrrr7)rKrrHs radd_initial_taskz&IndependentAgentIDAPI.add_initial_taskcs" j#, :::::rcJK|jD]\}}|D]~}|sh|t t j5|d{Vdddn #1swxYwYtd|dS)NzRetry task %s was canceled.) rAitemsr<cancelrr2CancelledErrorrFrG)rHrItasksr>s rshutdownzIndependentAgentIDAPI.shutdowngs:++-- E EKD% E Eyy{{EKKMMM!'"899##" ###############KK =tDDD  E E Es& A;;A? A? c4tjdjS)N_imunify)grpgetgrnamgr_gidrrr_gidzIndependentAgentIDAPI._gidqs|J''..rcj|jr|jSdSN) IAID_FILEexists read_textrNs rget_iaidzIndependentAgentIDAPI.get_iaidus1 =   ! ! -=**,, ,trNPOSTc ddi}|||t||||r&tj|ndS)Nz Content-Typezapplication/json)methodheadersdata)updater jsondumpsencode)urlrerdkwargs_headerss r_requestzIndependentAgentIDAPI._request{sh"$67   OOG $ $ $ 06@F##**,,,D     rcLtd|j|jfDS)Nc3>K|]}|VdSr])r_)r= iaid_files r z6IndependentAgentIDAPI.is_registered..sB             r)allr^IAID_PASSWORD_FILErNs r is_registeredz#IndependentAgentIDAPI.is_registereds:  !mS-CD      rcnKtrGtd{Vtrtd |jd}|std|S#t $r}td||d}~wwxYw)zWEnsure that iaid token is up to date Return iaid token or raise IAIDTokenError.NzIAID token is expiredascii)encodingzIAID_TOKEN_FILE is emptyzCan't get iaid token, reason: )ris_token_expiredr rIAID_TOKEN_FILEr` Exception)rHtokenes r get_tokenzIndependentAgentIDAPI.get_tokens ! 1 1 3 3 >'--// / / / / / / /$5577 >$%<=== N'1171CCE A$%?@@@L N N N !E!!E!EFFA M Ns$-B B4B//B4returncK|d{V}d|i}||j|d}||d{V}|d}|t d||jdi|S)NzX-AuthGET)rerd token_infozwrong response %rr)r~rn TOKEN_INFO async_requestgetr r-)rH iaid_tokenrerequestresultr|s r_get_token_infoz%IndependentAgentIDAPI._get_token_infos==??****** Z(,,s~wu,MM((11111111 <(( =.77 7s}%%u%%%rc tj|j}|j}n#t$rd}YnwxYwt j|z t kS)Ng)osstatrzst_mtimeFileNotFoundErrortimer)rHrrs rryz&IndependentAgentIDAPI.is_token_expiredsb %73.//D}HH!   HHH y{{X%++s # 22Fr1c rK|j4d{V|s(|r dddd{VdSt}tj}|r||d<|j|jfi|} ||d{V}|j dtt|j |d|j d|dtt|j|d|j d |d{Vn#t"$r}t$d |||j|jd ks |jd kr.|t*kr#|d|j||dz|n"t$d|j||Yd}~dddd{VdSd}~wwxYw dddd{VdS#1d{VswxYwYdS)Nr'T missing_okr!backupuidgid permissionspasswordi)rrz0Something went wrong on register %r - attempt %srr1rMz-Failed to register (%s) after %s attempts: %r)_register_lockrudictr get_server_idrn REGISTER_URLrIAID_ACTIVATED_FILEunlinkr r,r^r_r[rtrr rFwarning status_code _MAX_TRIESrKrerrorfull_url)rHforcer7payloadr'rrr}s rrzIndependentAgentIDAPI.registers%7 %7 %7 %7 %7 %7 %7 %7 % S..00 7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %ffG"022I 1'0 $"cl3#3??w??G- %"0099999999'..$.???: &&6N=//11 % .//:&188:: %  llnn$$$$$$$$U   F M)}++}++ **MM" ! ' "LLG(  O7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 % T%o7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %7 %sBH&;H&76E -B3H& H*B H 3H& HH&& H03H0cPK|js|d{VdStj}|d{V}|j|dks|j|dkr7t d|| d{VdS|j }|jr|j|ks|jr|d{VdSdS)z!Check whether the agent activatedNstatusidzGot a corrupted token: %r)rr_rr r~rr&rr'rFr reactivater^r`r%r!r(r )rHlicr|r!s rensure_is_activated_and_validz3IndependentAgentIDAPI.ensure_is_activated_and_validsJ&--// ,,.. F"$$))++++++++  377 $ $   _ - - LL4e < < <.."" " " " " " " " F}&&(({ ejD00E4D0))++         10rc K|jr|td<dS|s6t d|d{VdStj rL|td<| r| d{VdStj }|st ddS|j 4d{V|j}|j}||j|||}|td<d} ||d{V|j|jd| d{Vn#t.$r}t d|||jr|jd krd}nr|jrI|jd ks |jd kr3|t2kr(|d |j|d z|t8n"t d|j||Yd}~nd}~wwxYwdddd{Vn#1d{VswxYwY|r|dd{VdSdS)Nr!z&need to register first before activatez9Can't continue iaid activation: no valid license is found)r!rlicenseFTrz.Something went wrong on activate %r attempt %srrrr1r@z-Failed to activate (%s) after %s attempts: %rr)rr_rarrurFrrr is_freeryr r~_activate_lockr^r`rtrn ACTIVATE_URLrtouchrzrr rrrKr_ACTIVATE_MINIMUM_TIMEOUTrr)rHr7rr!rrneed_to_registerr}s rrzIndependentAgentIDAPI.activates  " ) ) + +  AfI F  ""  NNC D D D,,.. F      AfI##%% "iikk!!!!!!! F"$$  NNK    F%, ", ", ", ", ", ", ", "=**,,D-7799Hll th#GAfI$ $ "''000000000'--///B#**d*;;;iikk!!!!!!!!C   D =Q]c%9%9'+$$M#--#1E1E*,, MM" ! ' 9 "LLG( 3 , ", ", ", ", ", ", ", ", ", ", ", ", ", ", ", ", ", ", ", ", ", ", ", ", ", ", "Z  +,,T,** * * * * * * * * * + +s>!AJ5?4G)36J5) J 3B#JJ5J  J55 J?J?ctK|jd|d{VdS)NTr)rrrrNs rrz IndependentAgentIDAPI.reactivateEsF &&$&777llnnrc~K|stddS|j}|j}||j||} ||d{V}tt|j |d|j d| ddS#t$r}td|||t kr\|j |jdkr"|d |j|d z| nV|jd kr|d d{Vn(td|j||Yd}~dSYd}~dSYd}~dSd}~wwxYw)Nz#need to register first before login)r!rr|rrrz/Something wrong happened on login %r attempt %srr r1rMrTrz*Failed to login (%s) after %s attempts: %r)rurFrr^r`rtrn LOGIN_URLrr r,rzr_r[r rrrrKr rr)rHr7r!rrrr}s rr zIndependentAgentIDAPI.loginJs(  ""  LL> ? ? ? F}&&(()3355,,s}4(,KK ,,W55555555F* C'((w*1133HHJJ!       )    NNA1g   ##=(AMS,@,@MMGaK"]c)),,T,222222222 @$   sC66 F<B%F77F<)Nrb)Fr1)r1),rrrAPI_PATHrr _BASE_URLformatrrrrrIAID_DIRr^rtrzrrAr2Lockrrrr- staticmethodrr9 classmethodrKrOrUr[rarnrur~rryrrrrr rrrrr'sV#H73=(//**E*EFFL73=(//**E*EFFL xw'?'?@@I (E(EFFJt%&&H6!I!O3-O"%55F "W\^^N!W\^^NYd        FGH\EF@@@8@@@[@ ;;[;EE[E//\/[     \    [  N N[ N&i&&&[&,,[,8%8%8%[8%t[$A+A+A+[A+F[%%%[%%%rr)'r2rXrhrr4r contextlibr dataclassesrloggingrpathlibrtypingr urllib.parserurllib.requestr defence360agent.api.serverr r !defence360agent.contracts.licenser defence360agent.utilsr defence360agent.utils.commonr&defence360agent.internals.global_scoperrrFrr6r RuntimeErrorrrrrrrs !!!!!! """"""44444444888888000000,,,,,,444444 8    /////\///IIIIICIIIIIr