PK���ȼRY��������€��� �v3.phpUT �øŽg‰gñ“gux �õ��õ��½T]kÛ0}߯pEhìâÙM7X‰çv%”v0֐µ{)Aå:6S$!ÉMJèߕ?R÷!>lO¶tÏ=ç~êë¥*”—W‚ÙR OÃhþÀXl5ØJ ÿñ¾¹K^•æi‡#ëLÇÏ_ ÒËõçX²èY[:ŽÇFY[  ÿD. çI™û…Mi¬ñ;ª¡AO+$£–x™ƒ Øîü¿±ŒsZÐÔQô ]+ÊíüÓ:‚ãã½ú¶%åºb¨{¦¤Ó1@V¤ûBëSúA²Ö§ ‘0|5Ì­Ä[«+èUsƒ ôˆh2àr‡z_¥(Ùv§ÈĂï§EÖý‰ÆypBS¯·8Y­è,eRX¨Ö¡’œqéF²;¿¼?Ø?Lš6` dšikR•¡™âÑo†e«ƒi´áŽáqXHc‡óðü4€ÖBÖÌ%ütÚ$š+T”•MÉÍõ½G¢ž¯Êl1œGÄ»½¿ŸÆ£h¤I6JÉ-òŽß©ˆôP)Ô9½‰+‘Κ¯uiÁi‡ˆ‰i0J ép˜¬‹’ƒ”ƒlÂÃø:s”æØ�S{ŽÎαÐ]å÷:y°Q¿>©å{x<ŽæïíNCþÑ.Mf?¨«2ý}=ûõýî'=£§ÿu•Ü(—¾IIa­"éþ@¶�¿ä9?^-qìÇÞôvŠeÈc ðlacã®xèÄ'®âd¶ çˆSEæódP/ÍÆv{Ô)Ó ?>…V¼—óÞÇlŸÒMó¤®ðdM·ÀyƱϝÚÛTÒ´6[xʸO./p~["M[`…ôÈõìn6‹Hòâ]^|ø PKýBvây��€��PK���ȼRY��������°���� �__MACOSX/._v3.phpUT �øŽg‰gþ“gux �õ��õ��c`cg`b`ðMLVðVˆP€'qƒøˆŽ!!AP&HÇ %PDF-1.7 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R ] /Count 1 /Resources << /ProcSet 4 0 R /Font << /F1 8 0 R /F2 9 0 R >> >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj << /Producer (���d�o�m�p�d�f� �2�.�0�.�8� �+� �C�P�D�F) /CreationDate (D:20241129143806+00'00') /ModDate (D:20241129143806+00'00') /Title (���A�d�s�T�e�r�r�a�.�c�o�m� �i�n�v�o�i�c�e) >> endobj 6 0 obj << /Type /Page /MediaBox [0.000 0.000 595.280 841.890] /Parent 3 0 R /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 904 >> stream x���]o�J���+F�ͩ����su\ �08=ʩzရ���lS��lc� "Ց� ���wޙ�%�R�DS��� �OI�a`� �Q�f��5����_���םO�`�7�_FA���D�Џ.j�a=�j����>��n���R+�P��l�rH�{0��w��0��=W�2D ����G���I�>�_B3ed�H�yJ�G>/��ywy�fk��%�$�2.��d_�h����&)b0��"[\B��*_.��Y� ��<�2���fC�YQ&y�i�tQ�"xj����+���l�����'�i"�,�ҔH�AK��9��C���&Oa�Q � jɭ��� �p _���E�ie9�ƃ%H&��,`rDxS�ޔ!�(�X!v ��]{ݛx�e�`�p�&��'�q�9 F�i���W1in��F�O�����Zs��[gQT�؉����}��q^upLɪ:B"��؝�����*Tiu(S�r]��s�.��s9n�N!K!L�M�?�*[��N�8��c��ۯ�b�� ��� �YZ���SR3�n�����lPN��P�;��^�]�!'�z-���ӊ���/��껣��4�l(M�E�QL��X ��~���G��M|�����*��~�;/=N4�-|y�`�i�\�e�T�<���L��G}�"В�J^���q��"X�?(V�ߣXۆ{��H[����P�� �c���kc�Z�9v�����? �a��R�h|��^�k�D4W���?Iӊ�]<��4�)$wdat���~�����������|�L��x�p|N�*��E� �/4�Qpi�x.>��d����,M�y|4^�Ż��8S/޾���uQe���D�y� ��ͧH�����j�wX � �&z� endstream endobj 8 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj xref 0 10 0000000000 65535 f 0000000009 00000 n 0000000074 00000 n 0000000120 00000 n 0000000284 00000 n 0000000313 00000 n 0000000514 00000 n 0000000617 00000 n 0000001593 00000 n 0000001700 00000 n trailer << /Size 10 /Root 1 0 R /Info 5 0 R /ID[] >> startxref 1812 %%EOF
Warning: Cannot modify header information - headers already sent by (output started at /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php:1) in /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php on line 128

Warning: Cannot modify header information - headers already sent by (output started at /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php:1) in /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php on line 129

Warning: Cannot modify header information - headers already sent by (output started at /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php:1) in /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php on line 130

Warning: Cannot modify header information - headers already sent by (output started at /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php:1) in /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php on line 131
/0?:ddlZddlZddlZddlmZddlmZddlmZddl m Z m Z GddeZ Gdd Z dS) N)cpapi)FormattedException) exec_utility)(_convert_memory_value_to_adaptive_format"check_pmem_lower_bound_from_stringceZdZdS)LvectlExceptionN)__name__ __module__ __qualname__py/cllimits/lvectl_lib.pyr r sDrr ceZdZdZdZdZdZdZdZdZ dZ dZ e dZ dd Zdd Zdd Zd Zd ZdZddZdZddZdZdZddZdZdZdZdZdZdZddZ dS)LveCtlz* Library for work with LVE limits i@Biʚ;Nz/usr/sbin/lvectlc|t|jdg\}}t||_d|_d|_dS)z5 Object constructor. Get LVE version z lve-versionN)r _UTILITY_PATHint lve_version _package_data_resellers_data)self_ s_lve_versions r__init__zLveCtl.__init__%sC((:]OLL=}--!#rctj}t|}|d|S)zH Get panel users uid list :return: List of uids r)r list_userslistkeysappend) user_packagesuid_lists rget_panel_users_uid_listzLveCtl.get_panel_users_uid_list.sB (**  **,,--rFc|||||jvr$tj|j|}|d=|Stj|jd}|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_inforcopydeepcopy)ruser_idhuman_readable_numbers user_limitss rget_limits_by_user_idzLveCtl.get_limits_by_user_id9su .w??? d( ( (-(:7(CDDKI& mD$6q$9::  "rc|||tj|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)rget)r reseller_namer+reseller_limitss rget_limits_by_reseller_namez"LveCtl.get_limits_by_reseller_nameNsA !!"8-HHH-(<(@(@(O(OPPrc @tjsdSd|ddg}|s|dt |j|\}}t j|}|dkrt|d| dg}|rd d |dd i|dd d |dd i|dd|ddt|dd|t|dd|d}|SdS)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--bytesrmsgdataDEFAULTallSPEEDEPIOIOPSNPROCPMEMVMEM)r&cpuepioiopsnprocpmemvmem) lvectlliblvereseller_limit_supportedr rrjsonloadsr r0r) rr1r+ lvectl_argsret_codestd_out loaded_json default_infodefault_limitss r#get_default_limits_by_reseller_namez*LveCtl.get_default_limits_by_reseller_name\sI}5577  F& xO % *   y ) ) )();[II'j)) q==!+e"455 5"vr22  "$|Aw78"1od+l1od34$Q/%a1@aQWAXAWYY@aQWAXAWYY  N" ! " "rc|j8ddlm} t||d}n\#t$rd}YnNwxYw||jvr!t|j|d}n t|jdd}|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_uidr&)rclcommon.cpapirXstr IndexError)rr*rX package_names rget_package_name_by_user_idz"LveCtl.get_package_name_by_user_ids   % > > > > > > ""#:#:7#C#CA#FGG  " " "!  "$,,,"4#5g#>y#IJJ  #4#5a#8#CDD s . ==c$d|||rd|dndddS)Nz+%(what)s set error for uid=%(uid)s%(error)sz []rZ)whatuiderror)messagecontextr )rparamlve_iderrs r __set_errorzLveCtl.__set_errors<H$)&47%?[#[[[[RAABB BrcFt|}|rt|dS)a Check if PMEM value is below configured lower bound and raise exception if needed :param pmem_value: PMEM value as string (e.g., "5m", "512M", etc.) :raises LvectlException: If pmem is below configured lower bound or config is corrupted N)rr )r pmem_valuerds r_check_pmem_lower_boundzLveCtl._check_pmem_lower_bounds1 3:>>  )!%(( ( ) )rc2|t|g}d|vsd|vr,|d|d|d<dD]}||}|t|}|dvr |jdkrK|dvr |jd kr[|d kr|r|d }|d kr|||d |d|t|dkrdS|dr|d|r|d|t|j |d\}} } |dkr$t| d|| dS)a- Set limits for given container id :param: str command: 'set' | 'set-reseller', based on container type :param: int | str container_id: LVE | LVP id for set limits :param: dict limits: new LVE limits. Available keys: speed, vmem, pmem, mep, io, nproc, iops and 'save-all-parameters'. All other keys are ignoring. If some parameter absent on current LVE version (for example pmem on LVE4), it will be ignored too. :param reseller_name: Reseller name meprE maxEntryProcs)speedrJrIrprFrHrGN)rIrHrG)rGrq%rIz--=rzsave-all-parametersz--save-all-parametersz --reseller=TstderrLimits) r\r0striprisdigitrmr lenrrr _LveCtl__set_error) rcommand container_idlimitsr1rPkvrQoutris r_set_container_limits_by_idz"LveCtl._set_container_limits_by_idsL 1 12 F??dfnn&,jj 48H8H&I&IF? #R - -A 1 AyA A---$2Ba2G2GH}}!1Q!6!6G|| |GGGF{{,,Q///   |A|||| , , , , {  q 1 ::+ , , 8   6 7 7 7  >   <]<< = = =)$*> # q==!$"2"2;"L"LMM Mqrcdt|dg}t|j|\}}|dkr$t|d||dS)z Set unlimited LVP for reseller; Accepts name or id; :type lvp_id: str | int :return: 0 rrrrr\rrr r})rrrrQris rset_lvp_unlimitedzLveCtl.set_lvp_unlimited sZF ];$T%7>> # q==!$"2"2;"L"LMM Mqrcdt|dd|g}t|j|\}}|dkr$t |d||dS)z Reset LVE limits for lve_id. Set default limits for LVE package or system default LVE :param: lve_id `int: LVE id :return: 0 r --default=,rDefaultr\joinrrr r})rrhrrrQris rreset_lve_limitszLveCtl.reset_lve_limitssos6{{$C&1A1A$C$CD$T%7>> # q==!$"2"29fc"J"JKK Kqrcdt|dd|g}t|j|\}}|dkr$t |d||dS)zk Reset LVP limits for reseller_name. :param: reseller_name str: :return: 0 rrrrrr)rr1rrrQris rreset_reseller_limitszLveCtl.reset_reseller_limits%sq M 2 24S&AQAQ4S4ST$T%7>> # q==!$"2"29mS"Q"QRR Rqrc:t|jddg\}}|S)zO Apply all already configured limits :return: ret code applyr<)rr)rrQris rapply_all_limitszLveCtl.apply_all_limits1s$ %T%7'59IJJ #rcdt|dg}t|j|\}}|dkr$t|d||dS)z Disable reseller limits for given name; Equivalent to lvectl remove-reseller :type reseller_name: str :return: 0 zremove-resellerr6rzDisable reseller limitsr)rr1rrQris rdisable_reseller_limitszLveCtl.disable_reseller_limits9s^"3}#5#5x@$T%7>> # q==!$"2"23Lm]`"a"abb bqrc i|_tjsdSgd}|s|dt |j|\}}tj|}|dkrt|dtj D]}|r||kr |id|j|<| dgD]|}|d d \}} |r|| kr)|| d |d i|d d |d i|d|dt|d|dd} | |j| d<}dS)z Load information about resellers; :type human_readable_numbers: bool :type reseller_name: str | None :return: N)r5r6r7r8rr9)namerr:ID:r<r=r>r?r@rArB)rDrErFrGrHrI)idrrr)rrKrLrMr rrrNrOr r resellersr0splitr) rr+r1rPrQrRrSresellerid_r reseller_infos rr/zLveCtl._load_resellers_infoFs "}5577  F@@@ % *   y ) ) )();[II'j)) q==!+e"455 5)) N NH (!:!:6>"-M-MD  * *$33 H HH ,,S11IC $!6!6!8G#45"4. (4.1$V,%g.DXfEUE[]]   M;HD v!6 7 7# H Hrc"|j||||jdSi|_|dt|g}n|dt|g}ndg}|d|s|dt |j|\}}tj|}|dkrt|d|d}|D]} i} | d } | d krd } | | d <d | d i| d<d | di| d<t| d|| d<| d| d<|j dkr$t| d|| d<| d| d<|j dkr | d| d<| |jt| d<|$| ||} | r | |jd<dSd|jvrPi} d | d <d di| d<d di| d<d| d<d| d<|j dkr d| d<d| d<|j dkrd| d<| |jd<dSdS) z Loads all package info from lvectl :param human_readable_numbers: if True PMEM and VMEM limits in KBytes, MBytes or GBytes False - in bytes :return: None Npaneluserlimitspaneluserslimitsr6r8rr9r:r& VE_DEFAULTr;r<r=rDr?rFrCrJr>rErsrBrIrArHr@rGr00K)rr/rr\r rrrNrOr rrrrV) rr+r%rrPrQrRrS json_datapkg_data pkg_limitspkg_namereseller_defaultss rr'zLveCtl._load_infows   '  % %&22 3 3   $ H HSi j j   (9"1% D& & &J$-Jy !!& Ju  %s|Jt !%Jv "Jt 1$$%) 6"&) 7#1$$%( 6"$.D q ! ! !! ' &r)F)N)NN)!r r r __doc__MEGAHERZGIGAHERZrr_packages_limitsrrr staticmethodr#r-r3rVr_r}rmrrrrrrrrrrrr/r'r rrrrsHHK&MMO$$$\*    !"!"!"!"F.BBB )))(Q(Q(Q(QT P P P                    /H/H/HbK/K/K/K/K/K/rr)r(rNrKclcommonrclcommon.clexceptionr cllimits.librcllimits.lib.utilsrrr rr rrrs 333333%%%%%%DDDDDDDD     (   i/i/i/i/i/i/i/i/i/i/r