fjHdZddlZddlZGddeZdZdZdZdS)zW This module provides functions to retrieve any limits and usage for a specified user. NceZdZdZdS)LveCommandErrorc|jdS)Nr)args)selfs P/opt/cloudlinux/venv/lib64/python3.11/site-packages/xray/internal/user_limits.py__str__zLveCommandError.__str__s)A,  N)__name__ __module__ __qualname__r r rrrs#!!!!!r rc ddddg} t|}tj|}nF#t$r}dt |icYd}~Sd}~wtj$r}dd|icYd}~Sd}~wwxYwd|vs!t fd |dDsdd d iStfd |dD}d t|dd did t|d did t|d did t|d did t|dd ddzid t|d didS)a Retrieves the LVE limits for a specified user. Args: username (str): The username to retrieve LVE limits for. Returns: When user limits are found { "lve_cpu": { "limit": int }, "lve_ep": { "limit": int }, "lve_pmem": { "limit": int }, "lve_iops": { "limit": int }, "lve_io": { "limit": int }, "lve_nproc": { "limit": int }, } or an error { "error": str } z/usr/sbin/cloudlinux-limitsgetz --usernamez--jsonerrorNzFailed to decode JSON: usersc30K|]}|dkVdS)usernameNr.0userrs r z!get_lve_limits..?s-'a'aZ(8H(D'a'a'a'a'a'ar zLVE Limit for user z not foundc3@K|]}|dk|dVdS)rlimitsNrrs rrz!get_lve_limits..Bs7bb$T*EUYaEaEatH~EaEaEaEabbr limitcpuall*eppmemiopsionproclve_cpulve_eplve_pmemlve_iopslve_io lve_nproc) _call_lve_commandjsonloadsrstrJSONDecodeErroranynextintstrip)rcmdstdoutre user_limitss` rget_lve_limitsr9s/D )%x RC8"3''F## !!!Q        888616677777778fC'a'a'a'aQWX_Q`'a'a'a$a$aCxCCCDDbbbb&/bbbbbK SU+E288==>>  ST*005566  SV,2237788  SV,2237788  ST*5177<<==D  SW-33C8899 !  s,#. A1AA1A1 A,&A1,A1c pgd} t|}|d}n(#t$r}dt |icYd}~Sd}~wwxYwi}|ddD]}|}|d|krdt |dd idt |didt |d d zd zidt |d idt |d idt |did}n|S)a Retrieves the current LVE usage for a specified user. Args: username (str): The username to retrieve LVE usage for. Returns: When user usage are found { "lve_cpu": { "usage": int }, "lve_ep": { "usage": int }, "lve_pmem": { "usage": int }, "lve_iops": { "usage": int }, "lve_io": { "usage": int }, "lve_nproc": { "usage": int }, } or empty dict when user sleep {} or an error { "error": str } )z/usr/sbin/lvepsz-dz-oz*id:15,ep:7,pno:7,cpu:7,mem:9,io:11,iops:11 rNrusage%r#r%)r,r4splitrr/r3)rr5r6linesr7r=linefieldss r get_lve_usagerHZstH X W WC!"3'' $$T** !!!Q       ! Eabb  !9 S!5!566S^^S^^d2T9S^^S^^S^^!E( E+ !. Ls6= A"AA"A"c tj|ddd}|jS#tj$r}t d|d|d}~wt $r}t d|d}~wwxYw)NT)capture_outputtextcheckz Command 'z' failed with error: zAn unexpected error occurred: ) subprocessrunr6CalledProcessErrorr Exception)r5resultr7s rr,r,sDDt4PPP}  (IIIG#GGAGGHHH DDDBqBBCCCDs !A)A A)A$$A))__doc__rMr-rPrr9rHr,rr rrSs !!!!!i!!! CCCLEEEPDDDDDr