§ ½@¾jK ã óŒ — d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZm Z d dl mZmZ G d„ de¦ « Z G d„ d ¦ « ZdS ) é N)Úcpapi)ÚFormattedException)Úexec_utilityÚisolated_child_env)Ú(_convert_memory_value_to_adaptive_formatÚ"check_pmem_lower_bound_from_stringc ó — e Zd ZdS )ÚLvectlExceptionN)Ú__name__Ú __module__Ú__qualname__© ó úpy/cllimits/lvectl_lib.pyr r s € € € € € Ø€Dr r c óâ — e Zd ZdZdZdZdZdZdZdZ dZ d„ Zed„ ¦ « Z dd „Zdd „Zedd„¦ « Zdd„Zd „ Zd„ Zd„ Zdd„Zd„ Zdd„Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z dd„Z!dS ) ÚLveCtlz* Library for work with LVE limits i@B i Êš;Nz/usr/sbin/lvectlc ó˜ — t | j dgt ¦ « ¬¦ « \ }}t |¦ « | _ d| _ d| _ dS )z5 Object constructor. Get LVE version zlve-version©ÚenvN)r Ú _UTILITY_PATHr ÚintÚlve_versionÚ _package_dataÚ_resellers_data)ÚselfÚ_Ú s_lve_versions r Ú__init__zLveCtl.__init__% sO € õ (¨Ô(:¸]¸OÕQcÑQeÔQeÐfÑfÔfшˆ=ݘ}Ñ-Ô-ˆÔØ!ˆÔØ#ˆÔÐÐr c ó˜ — t j ¦ « } t | ¦ « ¦ « }| d¦ « |S )zH Get panel users uid list :return: List of uids r )r Ú list_usersÚlistÚkeysÚappend)Ú user_packagesÚuid_lists r Úget_panel_users_uid_listzLveCtl.get_panel_users_uid_list. sB € õ Ô(Ñ*Ô*ˆ ݘ ×*Ò*Ñ,Ô,Ñ-Ô-ˆØ�Š˜ÑÔÐØˆr Fc óÒ — | ||¬¦ « || j v r$t j | j | ¦ « }|d= |S t j | j d ¦ « }|d= |S )zæ Reads limits by user id :param user_id: user/lve id :param human_readable_numbers: if True PMEM and VMEM limits in KBytes, MBytes or GBytes False - in bytes :return: dictionary )ÚuseridÚPACKAGEr )Ú _load_infor ÚcopyÚdeepcopy)r Úuser_idÚhuman_readable_numbersÚuser_limitss r Úget_limits_by_user_idzLveCtl.get_limits_by_user_id9 su € ð �ŠÐ.°wˆÑ?Ô?Ð?Ø�dÔ(Ð(Ð(Ýœ-¨Ô(:¸7Ô(CÑDÔDˆKؘIÐ&ØÐõ ”m DÔ$6°qÔ$9Ñ:Ô:ˆØ˜ Ð"ØÐr c óŠ — | ||¦ « t j | j |¦ « ¦ « }|S )a Reads limits by reseller name :param reseller_name: :param: id - user/lve id :param human_readable_numbers: if True PMEM and VMEM limits in KBytes, MBytes or GBytes False - in bytes :rtype: dict )Ú_load_resellers_infor+ r, r Úget)r Ú reseller_namer. Úreseller_limitss r Úget_limits_by_reseller_namez"LveCtl.get_limits_by_reseller_nameN sA € ð ×!Ò!Ð"8¸-ÑHÔHÐHÝœ-¨Ô(<×(@Ò(@ÀÑ(OÔ(OÑPÔPˆØÐr c óŠ — t | ¦ « }| d¦ « r|r|dk st dd|idœ¦ « ‚dS dS )zï Reject reseller identifiers that lvectl would parse as an option or the special '--all' target. Only the documented '--all' enable-all sentinel is permitted, and only where the caller explicitly allows it. ú-z--allz&Invalid reseller identifier: %(value)sÚvalue©ÚmessageÚcontextN)ÚstrÚ startswithr )Ú identifierÚ allow_allr9 s r Ú_reject_option_like_identifierz%LveCtl._reject_option_like_identifier\ sj € õ �J‘”ˆØ×Ò˜CÑ Ô ð ¨)ð ¸ÀÒ8HÐ8HÝ!ØDÐRYÐ[`ÐQaÐbÐbñô ð ð ð Ð8HÐ8Hr c ó† — t j ¦ « sdS | |¦ « d|ddg}|s| d¦ « t | j |t ¦ « ¬¦ « \ }}t j |¦ « }|dk rt |d ¦ « ‚| d g ¦ « }|r�d d|d d i|d d d|d d i|d d |d d t |d d |¦ « t |d d |¦ « dœ}|S dS )a Reads limits by reseller name :param reseller_name: reseller's name :param human_readable_numbers: if True PMEM and VMEM limits in KBytes, MBytes or GBytes False - in bytes :rtype: dict[str, str | dict] Nú list-resellerú--jsonú--with-nameú--bytesr r ÚmsgÚdataÚDEFAULTÚallÚSPEEDÚEPÚIOÚIOPSÚNPROCÚPMEMÚVMEM)r) ÚcpuÚepÚioÚiopsÚnprocÚpmemÚvmem) Ú lvectllibÚlveÚreseller_limit_supportedrA r# r r r ÚjsonÚloadsr r3 r ) r r4 r. Úlvectl_argsÚret_codeÚstd_outÚloaded_jsonÚdefault_infoÚdefault_limitss r Ú#get_default_limits_by_reseller_namez*LveCtl.get_default_limits_by_reseller_namei si € õ Œ}×5Ò5Ñ7Ô7ð ØˆFà×+Ò+¨MÑ:Ô:Ð:Ø&¨ °xÀÐOˆØ%ð *Ø×Ò˜yÑ)Ô)Ð)Ý(¨Ô);¸[ÕN`ÑNbÔNbÐcÑcÔcш�'Ý”j Ñ)Ô)ˆØ�qŠ=ˆ=Ý! +¨eÔ"4Ñ5Ô5Ð5à"—’ v¨rÑ2Ô2ˆØð "à$ؘ|¨Aœ¨wÔ7Ð8Ø" 1”o dÔ+ؘl¨1œo¨dÔ3Ð4Ø$ Qœ¨Ô/Ø% aœ¨Ô1Ý@ÀÈaÄÐQWÔAXØAWñYô Yå@ÀÈaÄÐQWÔAXØAWñYô Yðð ˆNð "Ð!ð "ð "r c ó — | j €8ddlm} t ||¦ « d ¦ « }n\# t $ r d}Y nNw xY w|| j v r!t | j | d ¦ « }n t | j d d ¦ « }|S )zÙ Get package name by user id. None package returns as str(None) for user checker compatibility: 'not str(None)' is True :param: id - user/lve id :return: Package name Nr )Úreseller_package_by_uidé Ú r) )r Úclcommon.cpapirf r= Ú IndexError)r r- rf Úpackage_names r Úget_package_name_by_user_idz"LveCtl.get_package_name_by_user_id� s¶ € ð ÔÐ%Ø>Ð>Ð>Ð>Ð>Ð>ð "Ý"Ð#:Ð#:¸7Ñ#CÔ#CÀAÔ#FÑGÔG��øÝð "ð "ð "à!���ð "øøøð ˜$Ô,Ð,Ð,Ý" 4Ô#5°gÔ#>¸yÔ#IÑJÔJ��õ # 4Ô#5°aÔ#8¸Ô#CÑDÔD�ØÐs �. ®=¼=c ó$ — d|||rd|› d�nddœdœS )Nz+%(what)s set error for uid=%(uid)s%(error)sz [ú]rh )ÚwhatÚuidÚerrorr: r )r ÚparamÚlve_idÚerrs r Ú__set_errorzLveCtl.__set_error¤ s<