Viewing File: /opt/imunify360/venv/lib/python3.11/site-packages/clcommon/__pycache__/sysctl.cpython-311.pyc



]jpzddlZddlmZddlmZmZmZddlmZm	Z	dZ
dZGddZGd	d
Z
dS)N)ConfigParser)run_commandget_file_linesExternalProgramFailed)AnyStrListz /etc/sysctl.d/90-cloudlinux.confz/etc/sysctl.confczeZdZdZdZedfdZdZedZ	dZ
edZd	Z
d
ZdZdd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_filemute_errors)selfr
rs   o/builddir/build/BUILD/imunify360-venv-2.6.3/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|}|||tj|dddn#1swxYwYtj|j|j	dS)zm
        Write sysctl params to sysctl.conf
        :param lines: content for writing to sysctl.conf
        wutf-8encodingN)
openrjoinwriteflushosfsyncfilenorenamer
)rlinessysctl_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	<genexpr>z+SysCtlConf.has_parameter.<locals>.<genexpr>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__rSYSCTL_FILErrclassmethodr!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|_tdd|_|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)rihas_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%)rirmrnadd_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"99	F>''
33	"N&&z22EE"E	
j)))!. 55INz5IFFF))Z)@@@@@rN)rXrYrZr[rkrurnrrqrwrzr_rrraras~7!4:::L<<<JJJAAAAArra)r,configparserrclcommon.utilsrrrtypingrrrgr\r
rar_rr<module>r~s
			%%%%%%MMMMMMMMMM8 W7W7W7W7W7W7W7W7tDADADADADADADADADADAr
Back to Directory File Manager