*vh>86ddlZddlZddlZddlZddlZddlZddlmZddlm Z ddl m Z ddl m Z ddlmZddlmZddlmZdd lmZmZdd lmZdd lmZdd lmZdd lmZddlm Z m!Z!e e"Z#dZ$dZ% dZ&Gdde'Z(GddeZ)dS)N)suppress) dataclass) getLogger)Path)Callable)urljoin)Request)APIAPIError) LicenseCLN)atomic_rewrite)DAY)g)DeadlockDetectingLock DeadlockError <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....rrceZdZdZeejedZeejedZ eejedZ eejedZ e dZ e dz Ze dz Ze d z Ze d z Zgggd ZeZejZed GddZedddefdZedddefdZedZedZ edZ!edZ"ed)dZ#edZ$edZ%edefdZ&ed Z'ed*d#Z(ed$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)r r!r"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)r1attemptr0argss r_retry_on_errorz%IndependentAgentIDAPI._retry_on_errorNs}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..Xs5   TYY[[    rr3r9r0zTask %s already in retry queue) _taskslenr4get_event_loopappend create_taskr;loggerinfo)clstyper1r9r0r:loops r _add_taskzIndependentAgentIDAPI._add_taskVs   Z-    4 sz$ A % %)++D Jt  # #  'C'#-4g      KK8$ ? ? ? ? ?rc@|d|jddS)Nr!rr9)rMr!rJs radd_initial_taskz&IndependentAgentIDAPI.add_initial_taskgs" j#, :::::rcJK|jD]\}}|D]~}|sh|t t j5|d{Vdddn #1swxYwYtd|dS)NzRetry task %s was canceled.) rCitemsr>cancelrr4CancelledErrorrHrI)rJrKtasksr@s rshutdownzIndependentAgentIDAPI.shutdownks:++-- E EKD% E Eyy{{EKKMMM!'"899##" ###############KK =tDDD  E E Es& A;;A? A? c4tjdjS)N_imunify)grpgetgrnamgr_gidrrr_gidzIndependentAgentIDAPI._gidus|J''..rcj|jr|jSdSN) IAID_FILEexists read_textrPs rget_iaidzIndependentAgentIDAPI.get_iaidys1 =   ! ! -=**,, ,trNPOSTc ddi}|||t||||r&tj|ndS)Nz Content-Typezapplication/json)methodheadersdata)updater jsondumpsencode)urlrgrfkwargs_headerss r_requestzIndependentAgentIDAPI._requestsh"$67   OOG $ $ $ 06@F##**,,,D     rcLtd|j|jfDS)Nc3>K|]}|VdSr_)ra)r? iaid_files r z6IndependentAgentIDAPI.is_registered..sB             r)allr`IAID_PASSWORD_FILErPs r is_registeredz#IndependentAgentIDAPI.is_registereds:  !mS-CD      rcKtrGtd{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_FILErbstrip Exception)rJtokenes r get_tokenzIndependentAgentIDAPI.get_tokens ! 1 1 3 3 >'--// / / / / / / /$5577 >$%<=== N'1171CCIIKKE A$%?@@@L N N N !E!!E!EFFA M Ns$?B$$ C.CCreturncK|d{V}d|i}||j|d}||d{V}|d}|t d||jdi|S)NzX-AuthGET)rgrf token_infozwrong response %rr)rrp TOKEN_INFO async_requestgetr r/)rJ iaid_tokenrgrequestresultrs 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)osstatr|st_mtimeFileNotFoundErrortimer)rJrrs rr{z&IndependentAgentIDAPI.is_token_expiredsb %73.//D}HH!   HHH y{{X%++s # 22Fr3c `K|j} |j4d{V|rF|r|r dddd{VdS|,||kr dddd{VdSt }t j}|r||d<|j|jfi|} | |d{V}|j dtt|j|d|jd|dtt|j|d|jd |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#t8$rt(d|YdSwxYw)Nr)T missing_okr#backupuidgid permissionspasswordi)rrz0Something went wrong on register %r - attempt %sr r3rOz-Failed to register (%s) after %s attempts: %rz>$)  ,,..((((((((W NNJ  -=C//=C//!J.. &L!0#aK$+ & K#,#  FFFgC )C )C )C )C )C )C )C )C )C )C )C )C )C )0V)GC )C )C )C )C )C )C )C )C )C )C )C )C )C )C )C )C )C )C )C )C )C )C )C )C )C )C )C )C )C )H    LLN       s~ JI1JI12J;I16F*7B3I1* I4B I>I1JII1J1 I;;J>I;?J%J-,J-cPK|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)rrar!r rrr(rr)rHr reactivater`rbr'r#r*r")rJlicrr#s rensure_is_activated_and_validz3IndependentAgentIDAPI.ensure_is_activated_and_valid sJ&--// ,,.. F"$$))++++++++  377 $ $   _ - - LL4e < < <.."" " " " " " " " F}&&(({ ejD00E4D0))++         10rc>|jjSr_)rvrrrPs rrz)IndependentAgentIDAPI._get_credentials_tss%**,,55rc 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#t0$r}t d|||jr|jd krd}nr|jrI|jd ks |jd kr3|t4kr(|d |j|d z|t:n"t d|j||Yd}~nd}~wwxYwdddd{Vn#1d{VswxYwY|r|d|d{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 %srrr!r3rBz-Failed to activate (%s) after %s attempts: %rrr) rrarcrrwrHrr r is_freer{r"r_activate_lockr`rbrvrrp ACTIVATE_URLrtouchr|rr rrrMr!_ACTIVATE_MINIMUM_TIMEOUTrr) rJr9rr#rcredentials_tsrneed_to_registerrs rr!zIndependentAgentIDAPI.activate!s  " ) ) + +  AfI F  ""  NNC D D D,,.. F      AfI##%% "iikk!!!!!!! F"$$  NNK    F%- "- "- "- "- "- "- "- "=**,,D-7799H 4466Nll th#GAfI$ $ "''000000000'--///B#**d*;;;iikk!!!!!!!!C   D =Q]c%9%9'+$$M#--#1E1E*,, MM" ! ' 9 "LLG( 3 - "- "- "- "- "- "- "- "- "- "- "- "- "- "- "- "- "- "- "- "- "- "- "- "- "- "- "\  P,,T,OO O O O O O O O O O P Ps>!A1K 4G=6K = J4B#J/*K /J44K  KKctK|jd|d{VdS)NTr)rrr!rPs rrz IndependentAgentIDAPI.reactivatefsF &&$&777llnnrcK|stddS|j}|j}|}||j||} | |d{V}tt|j |d|j d|ddS#t$r}td|||t"kr]|j |jdkr"|d |j|d z| nW|jd kr|d |d{Vn(td|j||Yd}~dSYd}~dSYd}~dSd}~wwxYw)Nz#need to register first before login)r#rrrrrz/Something wrong happened on login %r attempt %srr"r3rOrTrz*Failed to login (%s) after %s attempts: %r)rwrHrr`rbrvrrp LOGIN_URLrr r.r|rar]r rrrrMr"r r)rJr9r#rrrrrs rr"zIndependentAgentIDAPI.loginksS  ""  LL> ? ? ? F}&&(()33550022,,s}4(,KK ,,W55555555F. C'((w*1133HHJJ!       -    NNA1g   ##=(AMS,@,@MMGaK"]c)),,"' @$  sD GB&G  G)Nrd)FNr3)r3).rrrAPI_PATHrr _BASE_URLformatrrrrrIAID_DIRr`rvr|rrCrrr4Lockrrr/ staticmethodrr; classmethodrMrQrWr]rcrprwrrr{r rrr!rr"rrrrr+sz#H73=(//**E*EFFL73=(//**E*EFFL xw'?'?@@I (E(EFFJt%&&H6!I!O3-O"%55F +*,,N!W\^^NYd        FGH\EF@@@8@@@[@ ;;[;EE[E//\/[     \    [  N N[ N&i&&&[&,,[,PPP[Pd[$66[6BPBPBP[BPH[((([(((rr)*r4rZrjrr6r contextlibr dataclassesrloggingrpathlibrtypingr urllib.parserurllib.requestr defence360agent.api.serverr r !defence360agent.contracts.licenser defence360agent.utilsr defence360agent.utils.commonr&defence360agent.internals.global_scoper1defence360agent.internals.deadlock_detecting_lockrrrrHrr8r RuntimeErrorrrrrrrs !!!!!! """"""44444444888888000000,,,,,,444444 8    /////\///iiiiiCiiiiir