/0?: d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dl m Z mZ G d de Z G d d Z dS ) N)cpapi)FormattedException)exec_utility)(_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 ZddZd Zd Zd ZddZd ZddZd Zd ZddZd Zd Zd Zd Zd Zd ZddZ dS )LveCtlz* Library for work with LVE limits i@B i ʚ;Nz/usr/sbin/lvectlc | t | j dg \ }}t | | _ d| _ d| _ dS )z5 Object constructor. Get LVE version zlve-versionN)r _UTILITY_PATHintlve_version _package_data_resellers_data)self_ s_lve_versions r __init__zLveCtl.__init__% sC ((:]OLL=}--!#r c t j } t | }| d |S )zH Get panel users uid list :return: List of uids r )r list_userslistkeysappend) user_packagesuid_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 )useridPACKAGEr ) _load_infor copydeepcopy)r user_idhuman_readable_numbersuser_limitss r get_limits_by_user_idzLveCtl.get_limits_by_user_id9 su .w???d(((-(:7(CDDKI& mD$6q$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-HHH-(<(@(@(O(OPPr c @ t j sdS d|ddg}|s| d t | j | \ }}t j | }|dk rt |d | dg }|rd 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 msgdataDEFAULTallSPEEDEPIOIOPSNPROCPMEMVMEM)r&