/opt/cloudlinux/venv/lib/python3.11/site-packages/cllimits/lib/__pycache__
NameSizeModeActions
arg_parsers.cpython-311.opt-1.pyc204260644editdlrm
arg_parsers.cpython-311.pyc204260644editdlrm
limits.cpython-311.opt-1.pyc658560644editdlrm
limits.cpython-311.pyc658560644editdlrm
utils.cpython-311.opt-1.pyc120000644editdlrm
utils.cpython-311.pyc120000644editdlrm
__init__.cpython-311.opt-1.pyc27300644editdlrm
__init__.cpython-311.pyc27300644editdlrm
Edit: /opt/cloudlinux/venv/lib/python3.11/site-packages/cllimits/lib/__pycache__/utils.cpython-311.pyc (12000B)
§ Lçy£—e2ãó<—ddlZddlZddlZddlZddlmZddlmZmZddl m Z m Z ddl m Z dZdZGd„d e ¦«Zd efd „Zd ed efd „Zded eefd„Zdeded efd„Zded eefd„Zded eefd„Zd„Zd„Zd„Zd d„Zd!d„Zd!d„Z d„Z!d„Z"dS)"éN)ÚOptional)Ú run_commandÚExternalProgramFailed)Úmemory_to_pageÚpage_to_memory)ÚFormattedExceptionzAvailable values for optionz"/etc/sysconfig/limits_lower_boundscó—eZdZdS)ÚLowerBoundsConfigExceptionN)Ú__name__Ú __module__Ú __qualname__©óúpy/cllimits/lib/utils.pyr r s€€€€€Ø€Drr Úreturncó(—tj t¦«siSi} t tdd¬¦«5}|D]s}| ¦«}|r[d|vrW| d¦«sB| dd¦«\}}| ¦«|| ¦«<Œt ddd¦«n #1swxYwYnA#ttf$r-}tdtt|¦«d œd œ¦«|‚d}~wwxYw|S) zÀ Read all lower bounds from config file Returns dict with lower bound names as keys and values as strings :raises LowerBoundsConfigException: If file exists but cannot be read Úrúutf-8©Úencodingú=ú#éNzlFailed to read limits' lower bounds configuration from %(file)s. The file may be corrupted. Error: %(error)s)ÚfileÚerror©ÚmessageÚcontext) ÚosÚpathÚexistsÚ _LIMITS_LOWER_BOUNDS_CONFIG_FILEÚopenÚstripÚ startswithÚsplitÚOSErrorÚIOErrorr Ústr)Ú lower_boundsÚfÚlineÚkeyÚvalueÚes rÚ_read_lower_bounds_configr0ss€õ Œ7�>Š>Õ:Ñ ;Ô ;ðØˆ à€LðÝ Õ2°CÀ'Ð JÑ JÔ Jð >ÈaØð >ð >�Ø—z’z‘|”|�Øð>˜C 4˜K˜K°·²ÀÑ0DÔ0D˜KØ!%§¢¨C°Ñ!3Ô!3‘J�C˜Ø05· ² ± ´ �L §¢¡¤Ñ-øð  >ð >ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >øøõ •WÐ ðððÝ(ðEõ9ݘQ™œððð* ð* ñ ô ðð øøøøðøøøð Ðs<ªCÁA7CÂ9 CÃC à Cà C à CÃDÃ"(D Ä Dr*cóà— tjtj t¦«d¬¦«t tdd¬¦«5}| d¦«| d¦«t| ¦«¦«D] \}}| |›d|›d �¦«Œ! d d d ¦«n #1swxYwYdS#ttf$rYd SwxYw) z+ Write lower bounds to config file T)Úexist_okÚwrrz(# CloudLinux lower bounds configuration z# Format: RESOURCE_TYPE=value rú NF) rÚmakedirsr Údirnamer"r#ÚwriteÚsortedÚitemsr'r()r*r+r-r.s rÚ_write_lower_bounds_configr:6s:€ð Ý Œ •B”G—O’OÕ$DÑEÔEÐPTÐUÑUÔUÐUÝ Õ2°CÀ'Ð JÑ JÔ Jð ,ÈaØ �GŠGÐ?Ñ @Ô @Ð @Ø �GŠGÐ7Ñ 8Ô 8Ð 8Ý$ \×%7Ò%7Ñ%9Ô%9Ñ:Ô:ð ,ð ,‘ ��UØ—’˜3Ð*Ð* Ð*Ð*Ð*Ñ+Ô+Ð+Ð+ð ,ð ,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ˆtøÝ •WÐ ððð؈uˆuðøøøs7‚ACÁA-C Â? Cà CÃCÃCÃCÃC-Ã,C-Ú resource_typecó’—t¦«}| | ¦«¦«}|rt|¦«SdS)zü Read lower bound for any resource type from config file Returns lower bound in pages or None if not set :param resource_type: Type of resource (e.g., 'PMEM', 'VMEM') :raises LowerBoundsConfigException: If config file is corrupted N)r0ÚgetÚupperr)r;r*Ú limit_strs rÚread_lower_boundr@FsI€õ-Ñ.Ô.€LØ× Ò  ×!4Ò!4Ñ!6Ô!6Ñ7Ô7€IØð)ݘiÑ(Ô(Ð(Ø ˆ4rÚ bound_valuecój—t¦«}||| ¦«<t|¦«S)a Write lower bound for any resource type to config file :param resource_type: Type of resource (e.g., 'PMEM', 'VMEM') :param bound_value: Lower bound value as string (e.g., '512M', '1G') :raises LowerBoundsConfigException: If config file is corrupted )r0r>r:)r;rAr*s rÚwrite_lower_boundrCUs3€õ-Ñ.Ô.€LØ*5€L�×$Ò$Ñ&Ô&Ñ'Ý % lÑ 3Ô 3Ð3rÚ pmem_pagescó¼— td¦«}n&#t$r}|j|jdœcYd}~Sd}~wwxYw|�"|dkr||krt |¦«}dd|idœSdS)z¶ Check if PMEM value is below configured lower bound and return error :param pmem_pages: PMEM value in pages :return: Error dict with 'message' and 'context' or None ÚPMEMrNrzwPMEM limit is below configured lower bound of %(bound)s. This may cause application instability and performance issues.Úbound)r@r rrr)rDÚlower_bound_pagesr/Ú lower_bounds rÚcheck_pmem_lower_boundrJbs§€ð <Ý,¨VÑ4Ô4ÐÐøÝ %ð<ð<ð<Øœ9°´Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;øøøøð<øøøðÐ$¨°qª¨¸ZÐJ[Ò=[Ð=[Ý$Ð%6Ñ7Ô7ˆ ðQð  Ð-ð  ð ð ð ˆ4s‚’ 5œ0ª5°5Ú pmem_valuecóF—t|¦«}|�t|¦«SdS)zÞ Check if PMEM value (as string) is below configured lower bound and return error :param pmem_value: PMEM value as string (e.g., "5m", "512M", etc.) :return: Error dict with 'message' and 'context' or None N)rrJ)rKrDs rÚ"check_pmem_lower_bound_from_stringrMzs*€õ    Ñ+Ô+€JØÐÝ% jÑ1Ô1Ð1Ø ˆ4rcó—| d¦«r#| dd¦«\}}d|zd|idœS| t¦«r5| dd¦«\}}|dzd | ¦«idœSd |iS) zu Replacing params in data for show error message :param data: error's data for show message :return: z--ú rz %(param)s Úparam)Úresultrú:z: %(available_options)sÚavailable_optionsrQ)r%r&Ú VALUES_STRr$)ÚdatarPÚtexts rÚreplace_paramsrW†s¬€ð  ‡‚�tÑÔðLØ—j’j  aÑ(Ô(‰ ˆˆtØ&¨Ñ-¸7ÀEÐ:JÐKÐKÐKà ‡‚•zÑ"Ô"ðAØ—j’j  aÑ(Ô(‰ ˆˆeØÐ!:Ñ:Ø/°·²±´Ð?ðAðAð Að �dÐ ÐrcóH— t|¦«dS#t$rYdSwxYw)zš Checks is string contains a number (integer or float) :param s_val: String to check :return: True - string is number, False - not number TF)ÚfloatÚ ValueError)Ús_vals rÚ_is_string_numberr\˜s9€ð Ý ˆe‰ Œ ˆ ؈tøÝ ððð؈uˆuðøøøs ‚“ ! !cót—t|¦« ¦«}| d¦«rd}nV| d¦«rd}n>| d¦«rd}n&t|¦«rd}|›d�}nt d¦«‚t d|zt |d d …¦«z¦«S) zs Convert value in Gbytes,Mbytes to bytes :param value: value of mem limit :return: value in bytes ÚkrÚméÚgézWrong memory valueéNéÿÿÿÿ)r)ÚlowerÚendswithr\rZÚintrY)r.Úpowers rÚconvert_mem_value_to_bytesri¥sÄ€õ �‰JŒJ× Ò Ñ Ô €EØ ‡~‚~�cÑÔð /؈ˆØ �Š˜Ñ Ô ð/؈ˆØ �Š˜Ñ Ô ð/؈ˆÝ ˜5Ñ !Ô !ð/؈Ø� � � ˆˆåÐ-Ñ.Ô.Ð.Ý ˆt�u‰}�u U¨3¨B¨3¤ZÑ0Ô0Ñ0Ñ 1Ô 1Ð1rTcóì—|s|St|¦« ¦«}gd¢}| d¦«r|d=t|¦« ¦« dd¦« dd¦«}| d¦«rd}| dd¦«}nd}t |¦«}|D]'}|dzdkr|dz}Œ|dkr|›d�}n |›|d ›|›�}|S) zØ Convert memory value to adaptive value in GB, TB, etc :param value: memory value in MB or KB :param convert: if True - convert value, False - not convert :return: adaptive value in GB, TB, etc )ÚKÚMÚGÚTÚPr_rÚr^Ú*rcÚ0Kz.2f)r)rerfÚreplacer%rY)r.ÚconvertÚunitsrQÚunits rÚ(_convert_memory_value_to_adaptive_formatrw»s'€ð ðØˆ å �‰JŒJ× Ò Ñ Ô €Eà %Ð %Ð %€EØ ‡~‚~�cÑÔðØ �!ˆHÝ �‰JŒJ× Ò Ñ Ô × &Ò & s¨BÑ /Ô /× 7Ò 7¸¸RÑ @Ô @€Eà ×Ò˜ÑÔðØˆØ— ’ ˜c 2Ñ&Ô&ˆˆàˆÝ �%‰LŒL€EØððˆØ �D‰=˜1Ò Ð Ø �T‰MˆEˆEØ �aŠZˆZØ�]�]�]ˆFØ ˆEàÐ1 Ð1Ð1¨4Ð1Ð1ˆFØ à €MrFcór—|r%ttj|d¬¦«¦«dSt|¦«dS)zŸ Print specified dictionary :param data_dict: data dictionary to print :param is_json: True - print in JSON, False - in text :return: None T)Ú sort_keysN)ÚprintÚjsonÚdumps)Ú data_dictÚis_jsons rÚprint_dictionaryrâsE€ððå �dŒj˜¨dÐ3Ñ3Ô3Ñ4Ô4Ð4Ð4Ð4õ ˆiÑÔÐÐÐrcó”—tj¦«t|¦«dœ}t||¦«tjd¦«dS)za Prints to stdout :param: is_json - True if print error in json format, False - text )Ú timestamprQrN)Útimer)rÚsysÚexit)rr~rUs rÚprint_error_and_exitr…ós>€õ œ™œµ°G± ´ Ð =Ð =€DÝ�T˜7Ñ#Ô#Ð#Ý„HˆQ�K„K€K€K€Krcó†—tj |¦«rtj |¦«sdSdS)z\ Detect quota is supported :return: True/False - quotas supported/not supported FT)rr Úisfile)Ú cl_quota_pathÚ repquota_paths rÚis_quota_supportedrŠýs9€õ Œ7�>Š>˜-Ñ (Ô (ðµ´·²¸}Ñ0MÔ0Mð؈uØ ˆ4rcó~—t||¦«sdS|dg} t|¦«}n#t$rYdSwxYw|sdSdS)z\ Detect quota is activated :return: True/False - quotas activated/not activated Fz-nvaT)rŠrr)rˆr‰ÚcmdÚstdouts rÚis_quota_activerŽso€õ ˜m¨]Ñ ;Ô ;ð؈uà ˜&Ð !€CðݘSÑ!Ô!ˆˆøÝ ððð؈uˆuðøøøð ð؈uØ ˆ4s ˜(¨ 6µ6)T)F)#r{rrƒr‚ÚtypingrÚclcommon.utilsrrÚclcommon.clfuncrrÚclcommon.clexceptionrrTr"r Údictr0Úboolr:r)rgr@rCrJrMrWr\rirwrr…rŠrŽrrrúr•sðð € € € Ø € € € Ø € € € Ø € € € ØÐÐÐÐÐà=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ø:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ø3Ð3Ð3Ð3Ð3Ð3à *€ Ø#GÐ ð ð ð ð ð Ð!3ñ ô ð ð 4ððððð< ¨Tð °dð ð ð ð ð  Cð ¨H°S¬Mð ð ð ð ð 4 Sð 4°sð 4¸tð 4ð 4ð 4ð 4ð sð¨x¸¬~ððððð0 °3ð ¸8ÀD¼>ð ð ð ð ðððð$ ð ð ð2ð2ð2ð,$ð$ð$ð$ðNðððð"ðððððððððððr