'4ddlZddlZddlZddlZddlmZddlmZddl m Z m Z m Z m Z ejeZdZdZdZdZd Zd Zd Zd ed fdZGdd ZGddeZGddeZdZdZdZdZdZ dZ!dZ"dZ#dZ$dS)N)Iterable)Core) check_run CheckRunErrorrun OsReleaseInfozimunify360-dos-protectionz imunify360-unified-access-loggerzimunify360-pamzimunify-auditd-log-readerzimunify360-scanlogdzimunify360-agentcfd}|S)Nc|K|i|}td|t|d{VdS)Nzcheck_call(%r))loggerdebugr)argskwargscmdfuncs R/opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/subsys/svcctl.pywrapperz_apply_cmd..wrappersTdD#F## %s+++nn)rrs` r _apply_cmdrs# Nrservices_SystemctlBasedcK|D]} |d{V|d{Vn5#t$r(}td||Yd}~dSd}~wwxYwt dD]T}|d{Vrn7td|dtjdd{VUdS)Nz/Failed to reset failed state for service %s: %s z4Service %s is still not active, sleep for %s seconds) reset_failedrestartrr warningrange is_activeasynciosleep)rse_s r_reset_failed_stater%s;## .."" " " " " " " "))++            NNA1a    FFFFFF   r # #A[[]]""""""  NNF1   -"" " " " " " " " "##s4= A/A**A/ceZdZdZdZedZedZedZede fdZ de fdZ d Z d Z ede fd Zed Zd ZedZdZdS)r systemctlc||_dSN) _service_name)self service_names r__init__z_SystemctlBased.__init__5s)rc |jd|jgS)Nstart SVC_CTL_BINr*r+s rr/z_SystemctlBased.start8s '4+=>>rc |jd|jgS)Nstopr0r2s rr4z_SystemctlBased.stop<s &$*<==rc |jd|jgS)Nrr0r2s rrz_SystemctlBased.restart@s )T-?@@rnowc0|jdg|rdgng|jS)Nenable--nowr0r+r6s r _enable_nowz_SystemctlBased._enable_nowDs9    &wiiB      rcjK||d{Vi} tj|n#ttf$rYdSwxYw|dddkrdS|dddkr|d{VdSdS)N)r6IDubuntu VERSION_IDz16.04)r;rdict_from_fileFileNotFoundErrorPermissionErrorgetlowerr)r+r6osinfos rr8z_SystemctlBased.enableMs3'''''''''    ( 0 0 0 0!?3    FF  ::dB   % % ' '8 3 3 F ::lB ' '7 2 2,,..  3 2s7A  A cK|jd|jg}tj|tjtjdd{V}|d{V|d{V}|dkSNz is-enabledstdoutstderrr)r1r*r create_subprocess_execsuDEVNULL communicatewait)r+rprocrcs r is_enabledz_SystemctlBased.is_enabled^st/AB3 BJ                  99;;      Qwrc|jd|jg}tj|tjtj}|dkSrH)r1r*rMcallrN)r+rrRs ris_enabled_syncz_SystemctlBased.is_enabled_syncgs7t/AB WSBJ ? ? ?Qwrc0|jdg|rdgng|jS)Ndisabler9r0r:s rrXz_SystemctlBased.disablels9    &wiiB      rc |jd|jgS)Nreloadr0r2s rrZz_SystemctlBased.reloadus (D,>??rcbK|jd|jg}t|d{V\}}}|dkS)Nz is-activer)r1r*r)r+r exit_coder$s rrz_SystemctlBased.is_activeys?d.@A #C...... 1aA~rc |jd|jgS)Nz reset-failedr0r2s rrz_SystemctlBased.reset_failed~s .$2DEErctj|jd|jgtjtj}|jdkS)NcatrIr)rMrr1r*rN returncode)r+cps r unit_existsz_SystemctlBased.unit_existssA V  ud&8 9::    }!!rN)__name__ __module__ __qualname__r1r-rr/r4rboolr;r8rSrVrXrZrrrbrrrrr2s]K***??Z?>>Z>AAZA $   Z !4!!!!"  d   Z @@Z@ FFZF"""""rceZdZdZdS)_CentOs7z/usr/bin/systemctlNrcrdrer1rrrrhrhs&KKKrrhceZdZdZdS) _DebianUbuntuz/bin/systemctlNrirrrrkrks"KKKrrkcttfD]3}tj|jr ||cS4t d)Nz'Cannot instantiate appropriate adaptor.)rkrhospathexistsr1 RuntimeError)r,as radaptorrrsVX &## 7>>!- ( ( #1\?? " " " # @ A AArcKt|}t|d}|d{Vr|d{Vs|d{Vt |fd{Vt dD]9}t jdd{V|d{VrdS:t d|d|dSdSdS)Nz.socketrzFailed to await active z.socket after reseting ) rrrSrrr%rr r!r error)r, agent_serviceagent_service_socketr$s ractivate_socket_servicerxsL))M"l#;#;#;<<#--//////// *4466666666 #//111111111!="2333333333q  A-"" " " " " " " ")3355555555     l             rc4ttjSr))rrrSVC_NAMErrrimunify360_servicer{s 4= ! !!rc ttS#t$rtdYdSwxYw)Nz5DOS Protector service is not available on this system)rrDOS_PROTECTOR_SERVICE_NAMErpr inforrr imunify360_dos_protector_servicersK1222  KLLLtts $>>c*ttSr))rrUAL_SERVICE_NAMErrrimunify360_ual_servicer # $ $$rc*ttSr))rrPAM_SERVICE_NAMErrrimunify360_pam_servicerrrc*ttSr))rrSCANLOGD_SERVICE_NAMErrrimunify360_scanlogd_servicers ( ) ))rc*ttSr))rrAGENT_SERVICE_NAMErrrimunify360_agent_servicers % & &&rctt}|rttStddS)Nz9Auditd-log-reader service is not available on this system)rrAUDITD_SERVICE_NAMErbr r~)units rimunify360_auditd_servicersK & ' 'D ,*+++ KKKLLL 4r)%r loggingrm subprocessrMtypingr defence360agent.contracts.configrdefence360agent.utilsrrrr getLoggerrcr r}rrrrrrr%rrhrkrrrxr{rrrrrrrrrrs 111111NNNNNNNNNNNN  8 $ $85#1-'#()####*V"V"V"V"V"V"V"V"r''''''''#####O###BBB   0"""%%%%%%***'''r