§ ¶ÈWjs/ãóŠ—ddlmZmZmZmZddlmZmZddlm Z m Z m Z m Z m Z mZmZddlmZmZmZmZmZGd„de¦«ZdS) é)ÚDictÚOptionalÚTupleÚUnion)ÚLimitsDataStorageÚDEFAULTS)ÚPackageÚUserÚResellerÚ OWN_SOURCEÚRESELLER_SOURCEÚPACKAGE_SOURCEÚ GLOBAL_SOURCEé)Ú BaseValidatorÚ ENTITY_USERÚENTITY_PACKAGEÚENTITY_RESELLERÚENTITY_DEFAULTScól‡—eZdZd ˆfd„ Zed„¦«Zd„Zd„Zd„Zd„Z d„Z dd „Z dd „Z dd „Z ˆxZS)ÚEpNprocValidatorNcóZ•—t¦« |¬¦«d|_dS)N)Ú_limits_data_storageé)ÚsuperÚ__init__Údiff_nproc_and_ep)ÚselfrÚ __class__s €ú\/opt/cloudlinux/venv/lib64/python3.11/site-packages/cllimits_validator/ep_nproc_validator.pyrzEpNprocValidator.__init__s1ø€õ ‰Œ×ÒÐ.BÐÑCÔCÐCð"$ˆÔÐÐócóN—d|j›d�}t|j¦«}||d<|S)Nz&NPROC limit must be greater than EP + zŽ limit, because number of processes and threads within LVE includes also Apache processes/threads, SSH sessions and etc, which enter into LVE.Ú common_msg)rÚdictÚ _message_dict)rr#Ú message_dicts r r&zEpNprocValidator.message_dictsB€ð  $°TÔ5Kð $ð $ð $ð õ˜DÔ.Ñ/Ô/ˆ Ø%/ˆ �\Ñ"ØÐr!có@—|dks|dkrd}n|||jzk}|S)NrT)r)rÚepÚnprocÚresults r Ú_ep_and_nproc_is_validz'EpNprocValidator._ep_and_nproc_is_valid-s1€à �AŠ:ˆ:˜˜qš˜ØˆFˆFà˜b 4Ô#9Ñ9Ò9ˆF؈ r!cón—|j}|j |¦«}t|p |jj¦«}t|p |jj¦«}| ||¦«}|jj}|jj} |rt|d<|j |d<�nt| |fvrxt|d<|j |d<|tkrd} n| tkrd} nd} | €dn=|   ¦«›dt|| ¦«j ¦«›�|d<n’t| |fvrW| |krQ||d<|tkr|jj|d<na|t$kr|jj|d<nF|t(kr t*|d<n0t| |fvr%| |krt|d<|j |d<d|›d | ›�|d<||fS© úY :param has_input_limits: User has input limits, which will be set to it Úaffected_entityÚ entity_idr(r)Nú is inherited from Ú specific_msgzFBoth validated limits (EP, NPROC) inheritance from different sources: z and )r&Úlimits_providerÚget_user_limitsÚintr(Úvaluer)r+ÚsourcerÚidr ÚupperÚgetattrÚ capitalizerÚpackageÚnamer Úresellerrr) rÚuserr(r)Úhas_input_limitsr&Ú user_limitsr*Ú ep_sourceÚ nproc_sourceÚinheritance_limits r Ú_validate_nproc_and_ep_for_userz0EpNprocValidator._validate_nproc_and_ep_for_user5s0€ð Ô(ˆ àÔ*×:Ò:¸4Ñ@Ô@ˆ å �Ð+�{”~Ô+Ñ ,Ô ,ˆÝ�EÐ4˜[Ô.Ô4Ñ5Ô5ˆà×,Ò,¨R°Ñ7Ô7ˆà”NÔ)ˆ Ø"Ô(Ô/ˆ à ð Ý.9ˆLÐ*Ñ +Ø(,¬ˆL˜Ñ %Ñ %Ý ˜L¨)Ð4Ð 4Ð 4Ý.9ˆLÐ*Ñ +Ø(,¬ˆL˜Ñ %Ø�JÒ&Ð&Ø$(Ð!Ð!Ø¥Ò+Ð+Ø$+Ð!Ð!à$(Ð!Ø3DÐ3L¨4¨4Ø$×*Ò*Ñ,Ô,ðVðVÝ  Ð->Ñ?Ô?ÔF×QÒQÑSÔSðVðVð ˜Ñ (Ð (õ  ¨iÐ8Ð 8Ð 8¸\ÈYÒ=VÐ=VØ.7ˆLÐ*Ñ +Ø�NÒ*Ð*Ø,0¬LÔ,=� ˜[Ñ)Ð)Ø�oÒ-Ð-Ø,0¬MÔ,>� ˜[Ñ)Ð)Ø�mÒ+Ð+Ý,;� ˜[Ñ)øÝ   ¨iÐ8Ð 8Ð 8¸\ÈYÒ=VÐ=VÝ.9ˆLÐ*Ñ +Ø(,¬ˆL˜Ñ %ðJØ+4ðJðJØ;GðJðJð ˜Ñ (ð�|Ð#Ð#r!có6—|j}|j |¦«}t|p |jj¦«}t|p |jj¦«}| ||¦«}|jj}|jj} |rt|d<|j |d<nút| |fvrxt|d<|j |d<|tkrd} n| tkrd} nd} | €dn=|   ¦«›dt|| ¦«j ¦«›�|d<nwt| |fvr<| |kr6||d<|tkr|jj |d<nF|t"kr t$|d<n0t| |fvr%| |krt|d<|j |d<d|›d | ›�|d<||fSr-)r&r3Úget_package_limitsr5r(r6r)r+r7rr=r r9r:r;r Úproviderrr) rr<r(r)r@r&Úpackage_limitsr*rBrCrDs r Ú"_validate_nproc_and_ep_for_packagez3EpNprocValidator._validate_nproc_and_ep_for_packagehs€ð Ô(ˆ àÔ-×@Ò@ÀÑIÔIˆå �Ð.�~Ô(Ô.Ñ /Ô /ˆÝ�EÐ7˜^Ô1Ô7Ñ8Ô8ˆà×,Ò,¨R°Ñ7Ô7ˆà"Ô%Ô,ˆ Ø%Ô+Ô2ˆ à ð Ý.<ˆLÐ*Ñ +Ø(/¬ ˆL˜Ñ %Ð %Ý ˜L¨)Ð4Ð 4Ð 4Ý.<ˆLÐ*Ñ +Ø(/¬ ˆL˜Ñ %Ø�JÒ&Ð&Ø$(Ð!Ð!Ø¥Ò+Ð+Ø$+Ð!Ð!à$(Ð!Ø3DÐ3L¨4¨4Ø$×*Ò*Ñ,Ô,ðYðYÝ Ð0AÑBÔBÔI×TÒTÑVÔVðYðYð ˜Ñ (Ð (õ  ¨iÐ8Ð 8Ð 8¸\ÈYÒ=VÐ=VØ.7ˆLÐ*Ñ +Ø�OÒ+Ð+Ø,3Ô,<Ô,A� ˜[Ñ)Ð)Ø�mÒ+Ð+Ý,;� ˜[Ñ)øÝ   ¨iÐ8Ð 8Ð 8¸\ÈYÒ=VÐ=VÝ.<ˆLÐ*Ñ +Ø(/¬ ˆL˜Ñ %ðJØ+4ðJðJØ;GðJðJð ˜Ñ (ð�|Ð#Ð#r!cóF—|j}|j |¦«}t|p |jj¦«}t|p |jj¦«}| ||¦«}|jj}|jj} |rt|d<|j |d<n‚t| |fvrwt|d<|j |d<|tkrd} n| tkrd} nd} | €dn=|   ¦«›dt|| ¦«j ¦«›�|d<||fS©r.r/r0r(r)Nr1r2)r&r3Úget_reseller_limitsr5r(r6r)r+r7rr=r r9r:r;) rr>r(r)r@r&Úreseller_limitsr*rBrCrDs r Ú#_validate_nproc_and_ep_for_resellerz4EpNprocValidator._validate_nproc_and_ep_for_reseller™sY€ð Ô(ˆ àÔ.×BÒBÀ8ÑLÔLˆå �Ð/�Ô)Ô/Ñ 0Ô 0ˆÝ�EÐ8˜_Ô2Ô8Ñ9Ô9ˆà×,Ò,¨R°Ñ7Ô7ˆà#Ô&Ô-ˆ Ø&Ô,Ô3ˆ à ð Ý.=ˆLÐ*Ñ +Ø(0¬ ˆL˜Ñ %Ð %Ý ˜L¨)Ð4Ð 4Ð 4Ý.=ˆLÐ*Ñ +Ø(0¬ ˆL˜Ñ %Ø�JÒ&Ð&Ø$(Ð!Ð!Ø¥Ò+Ð+Ø$+Ð!Ð!à$(Ð!Ø3DÐ3L¨4¨4Ø$×*Ò*Ñ,Ô,ðZðZÝ Ð1BÑCÔCÔJ×UÒUÑWÔWðZðZð ˜Ñ (ð �|Ð#Ð#r!cóx—|j}t|t¦«r|jnt}|j |¦«}t|p |jj ¦«}t|p |j j ¦«}|  ||¦«}|jj } |j j } |rt|d<||d<n}t| | fvrrt|d<||d<| tkrd} n| tkrd} nd} | €dn=|  ¦«›dt!|| ¦«j  ¦«›�|d<||fSrL)r&Ú isinstancer r=rr3Úget_defaults_limitsr5r(r6r)r+r7rr r9r:r;) rr>r(r)r@r&Ú id_entityÚdefault_limitsr*rBrCrDs r Ú#_validate_nproc_and_ep_for_defaultsz4EpNprocValidator._validate_nproc_and_ep_for_defaults¾so€ð Ô(ˆ å%/°½(Ñ%CÔ%CÐQ�H”M�M͈ àÔ-×AÒAÀ(ÑKÔKˆå �Ð.�~Ô(Ô.Ñ /Ô /ˆÝ�EÐ7˜^Ô1Ô7Ñ8Ô8ˆà×,Ò,¨R°Ñ7Ô7ˆà"Ô%Ô,ˆ Ø%Ô+Ô2ˆ à ð Ý.=ˆLÐ*Ñ +Ø(1ˆL˜Ñ %Ð %Ý ˜L¨)Ð4Ð 4Ð 4Ý.=ˆLÐ*Ñ +Ø(1ˆL˜Ñ %Ø�JÒ&Ð&Ø$(Ð!Ð!Ø¥Ò+Ð+Ø$+Ð!Ð!à$(Ð!Ø3DÐ3L¨4¨4Ø$×*Ò*Ñ,Ô,ðYðYÝ Ð0AÑBÔBÔI×TÒTÑVÔVðYðYð ˜Ñ (ð �|Ð#Ð#r!FcóÀ—|j}d}t|t¦«r| ||||¦«\}}n¡t|t¦«r| ||||¦«\}}npt|t ¦«r|s| ||||¦«\}}n=t|t ¦«r|s |tkr|  ||||¦«\}}||fS)NT) r&rQr rEr rJr rOrrU)rÚvalidated_entityr(r)r@Úcheck_reseller_defaultsr&r*s r Ú _validatezEpNprocValidator._validateås*€ðÔ(ˆ ؈å Ð&­Ñ -Ô -ð Ø#'×#GÒ#GØ ØØØ ñ $ô$Ñ ˆF�L�Lõ Ð(­'Ñ 2Ô 2ð Ø#'×#JÒ#JØ ØØØ ñ $ô$Ñ ˆF�L�Lõ Ð(­(Ñ 3Ô 3ð ÐÀÀdÈEÐSjÑkÔkш� à�|Ð#Ð#r!cóΗ|j}| dd¦«}| dd¦«}|dup|du}|dks|sd}n| |||||¦«\}}||fS)z6 Validate limits which we want to set r)Nr(rT)r&ÚgetrY) rrWÚ input_limitsrXr&r)r(r@r*s r Úvalidate_input_limitsz&EpNprocValidator.validate_input_limitss—€ð Ô(ˆ à× Ò  ¨$Ñ/Ô/ˆØ × Ò ˜d DÑ )Ô )ˆð!¨Ð,Ð>°¸$°Ðð �AŠ:ˆ:Ð-ˆ:؈FˆFà#'§>¢>Ð2BÀBÈØ2BÐD[ñ$]ô$]Ñ ˆF�Lð�|Ð#Ð#r!)N)F)Ú__name__Ú __module__Ú __qualname__rÚpropertyr&r+rErJrOrUrYr[r_Ú __classcell__)rs@r rrsäø€€€€€ð$ð$ð$ð$ð$ð$ðð ð ñ„Xð ðððð1$ð1$ð1$ðf/$ð/$ð/$ðb#$ð#$ð#$ðJ%$ð%$ð%$ðN%$ð%$ð%$ð%$ðN$ð$ð$ð$ð$ð$ð$ð$ð$ð$ð$ð$r!rN)ÚtypingrrrrÚcllimitslib_v2rrÚcllimitslib_v2.lve_storager r r r r rrÚbaserrrrrr©r!r úrjsðð0Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/à6Ð6Ð6Ð6Ð6Ð6Ð6Ð6ððððððððððððððððððð _Ð^Ð^Ð^Ð^Ð^Ð^Ð^Ð^Ð^Ð^Ð^Ð^Ð^ðX$ðX$ðX$ðX$ðX$�}ñX$ôX$ðX$ðX$ðX$r!