IQgpzddlZddlmZddlmZmZmZddlmZm Z dZ dZ GddZ Gd d Z dS) N) ConfigParser) run_commandget_file_linesExternalProgramFailed)AnyStrListz /etc/sysctl.d/90-cloudlinux.confz/etc/sysctl.confczeZdZdZdZedfdZdZedZ dZ e dZ d Z d Zd Zdd Zd ZdS) SysCtlConfz( For reading params from sysctl z /sbin/sysctlTc@||_|jd|_||_dS)z :param config_file: path to user defined systcl config file :param mute_errors: T/F value to define should we skip errors or not (used in cldiag checker) .tmpN) config_fileconfig_tmp_file mute_errors)selfr rs o/builddir/build/BUILD/imunify360-venv-2.5.0/opt/imunify360/venv/lib/python3.11/site-packages/clcommon/sysctl.py__init__zSysCtlConf.__init__s.'"&"2888&cj|jdg} t|dS#t$r |jsYdSwxYw)z> Apply all params from sysctl.d & sysctl.conf z--systemN) SYSCTL_BINrrr)rcmds r _apply_allzSysCtlConf._apply_all$sf O         $   #     s 22cn|jdd|g}t|d\}}}|}|S)zM Read sysctl param :param name: name of sysctl param z-bz-nT)rreturn_full_output)rrstrip)clsnamerret_codestd_outstd_invalues r_read_sysctl_paramzSysCtlConf._read_sysctl_param6sP N      %0#% % % !'6  rcjt|jdd5}d|}|||t j|dddn #1swxYwYt j|j|j dS)zm Write sysctl params to sysctl.conf :param lines: content for writing to sysctl.conf wutf-8encodingN) openrjoinwriteflushosfsyncfilenorenamer )rlines sysctl_confs r_write_params_to_filez SysCtlConf._write_params_to_fileLs $&g > > > ++GGENNE   e $ $ $       H['')) * * *  + + + + + + + + + + + + + + + $&(899999sA%B  B B c\|ddS)N=r)splitr)lines r_get_param_name_from_linez$SysCtlConf._get_param_name_from_lineYs%zz#q!'')))rc.t|j}|S)zW Read content from sysctl.conf :return: lines from sysctl.conf )rr )rresults r_read_sysctl_confzSysCtlConf._read_sysctl_conf_s  011 rcj}tfd|D}|S)Nc3JK|]}|kVdS)N)r7).0r6 param_namers r z+SysCtlConf.has_parameter..ns6__DZ4#A#A$#G#GG______r)r:any)rr> file_linesr9s`` r has_parameterzSysCtlConf.has_parameterjsB++-- _____T^_____ rcX|||}|S)z{ Get sysctl param by name :param name: name of sysctl param :return: value of sysctl param )rr!)rrr s rgetzSysCtlConf.getqs, ''-- rc|d|d}t|}d}t|D]8\}}|dr||} || kr|}9|dkr||n|r|||<|||dS)z Set sysctl param by name :param overwrite: overwrite value of existed parameter :param name: name of sysctl param :param value: value of sysctl param z =  #N)listr: enumerate startswithr7appendr2r) rrr overwriteparamsysctl_conf_output idx_paramir6keys rsetzSysCtlConf.set~s%%E%%%!$"8"8":":;;  !344  GAts## 0066Cs{{ ??  % %e , , , ,  2,1 y ) ""#5666 rc:|t|}g}t|D]6\}}||}||kr|d|7|D]}||=||dS)z[ Remove systcl param from config :param name: name of sysctl param rN)rrIr:rJr7insertr2)rrrOidx_listrQr6rRs rremovezSysCtlConf.removes !$"8"8":":;; !344 & &GAt0066Cs{{1%%% & &A"1%% ""#566666rN)T)__name__ __module__ __qualname____doc__r SYSCTL_FILErr classmethodr!r2 staticmethodr7r:rBrDrSrWrrr r s J#.D ' ' ' '$[* : : :**\*      477777rr c<eZdZdZdZedZdZdZdZdZ dZ d S) SysCtlMigratezp Class for migrating of sysctl parameter from /etc/sysctl.conf to /etc/sysctl.conf.d/90-cloudlinux.conf z/var/lve/cl-sysctl.migrater mainctt|_tt|_t dd|_|j|jdS)N)r F) interpolationstrict) r r\ _src_confSYSCTL_CL_CONF_FILE _dst_confr_migrate_configreadMIGRATE_CONFIG_PATH)rs rrzSysCtlMigrate.__init__s^# <<<#0CDDD ,$uMMM !!$":;;;;;rcd}|j|jr@|j|j|r |j|j|}|S)NF)ri has_section MAIN_SECTION has_option getboolean)rr>r9s r_is_migration_donez SysCtlMigrate._is_migration_donese   + +D,= > > T$//0A:NN T)44T5F SSF rc|j|js|j|j|j|j|dt |jdd5}|j||tj | dddn #1swxYwYtj |j|j dS)Ntruer#r$r%)rirmrn add_sectionrSr(MIGRATE_CONFIG_TMP_PATHr*r+r,r-r.r/rk)rr> config_tmps r_set_migration_state_to_donez*SysCtlMigrate._set_migration_state_to_dones(#//0ABB @  , ,T-> ? ? ?   !2JGGG $.g F F F **  & &z 2 2 2       HZ&&(( ) ) ) * * * * * * * * * * * * * * * $.0HIIIIIs7ACCCcN||rdS|j|r|j|}n|}|j||#|dnd}|j|||||dS)a% Migrate sysctl parameter from one config to another in conformity with presence of parameter in source config and default value. All cases of using you can see in doc: https://docs.google.com/spreadsheets/d/1H_q3TA3CMFCj1YwAOn7G1LZgxcS1F4h90B6jCgiTUpo )r>NTF)rM)rqrfrBrDrWrhrSrw)rr> default_valuer rMs rmigratezSysCtlMigrate.migrates  " "j " 9 9  F > ' ' 3 3 "N&&z22EE"E j)))  !. 55I N  z5I  F F F ))Z)@@@@@rN) rXrYrZr[rkrurnrrqrwrzr_rrraras~7!4:::L<<< J J JAAAAArra)r, configparserrclcommon.utilsrrrtypingrrrgr\r rar_rrr~s %%%%%%MMMMMMMMMM8 W7W7W7W7W7W7W7W7tDADADADADADADADADADAr