GIF89a=( õ' 7IAXKgNgYvYx\%wh…hŽth%ˆs%—x¨}9®Œ©€&©‰%¶†(¹–.¹5·œD¹&Çš)ÇŸ5ǘ;Í£*È¡&Õ²)ׯ7×µ<Ñ»4ï°3ø‘HÖ§KͯT÷¨Yÿšqÿ»qÿÔFØ !ù ' !ÿ NETSCAPE2.0 , =( þÀ“pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§gª«ªE¯°¨¬ª±²Œ¹º¹E¾­”´ÂB¶¯ §Åȸ»ÑD¾¿Á•ÄÅ®° ÝH¾ÒLÀÆDÙ«D¶BÝïðÀ¾DÑÑÔTÌÍíH òGö¨A RÎڐ |¥ ٭&ºìE8œ¹kGÔAÞpx­a¶­ã R2XB®åE8I€Õ6Xî:vT)äžþÀq¦è³¥ì仕F~%xñ  4#ZÔ‰O|-4Bs‘X:= QÉ œš lºÒyXJŠGȦ|s hÏíK–3l7·B|¥$'7Jީܪ‰‡àá”Dæn=Pƒ ¤Òëí‰`䌨ljóá¯Éüv>á–Á¼5 ½.69ûϸd«­ºÀûnlv©‹ªîf{¬ÜãPbŸ  l5‘ޝpß ´ ˜3aÅùäI«O’ý·‘áÞ‡˜¾Æ‚ÙÏiÇÿ‹Àƒ #öó)pâš Þ½ ‘Ý{ó)vmÞü%D~ 6f s}ŃƒDØW Eþ`‡þ À…L8xá†ç˜{)x`X/> Ì}mø‚–RØ‘*|`D=‚Ø_ ^ð5 !_…'aä“OÚ—7âcð`D”Cx`ÝÂ¥ä‹éY¹—F¼¤¥Š?¡Õ™ n@`} lď’ÄÉ@4>ñd œ à‘vÒxNÃ×™@žd=ˆgsžG±æ ´²æud &p8Qñ)ˆ«lXD©øÜéAžHìySun jª×k*D¤LH] †¦§C™Jä–´Xb~ʪwStŽ6K,°£qÁœ:9ت:¨þªl¨@¡`‚ûÚ ».Û¬¯t‹ÆSÉ[:°=Š‹„‘Nåû”Ìî{¿ÂA ‡Rà›ÀÙ6úë°Ÿð0Ä_ ½;ÃϱîÉì^ÇÛÇ#Ëë¼ôº!±Ä˜íUîÅÇ;0L1óÁµö«p% AÀºU̬ݵ¼á%霼€‡¯Á~`ÏG¯»À× ­²± =4ªnpð3¾¤³¯­ü¾¦îuÙuµÙ®|%2ÊIÿür¦#0·ÔJ``8È@S@5ê¢ ö×Þ^`8EÜ]ý.뜃Âç 7 ú ȉÞj œ½Dç zý¸iþœÑÙûÄë!ˆÞÀl§Ïw‹*DçI€nEX¯¬¼ &A¬Go¼QföõFç°¯;é¦÷îŽêJ°îúôF5¡ÌQ|îúöXªæ»TÁÏyñêï]ê² o óÎC=öõ›ÒÓPB@ D×½œä(>èCÂxŽ`±«Ÿ–JЀ»Û á¤±p+eE0`ëŽ`A Ú/NE€Ø†À9‚@¤à H½7”à‡%B‰`Àl*ƒó‘–‡8 2ñ%¸ —€:Ù1Á‰E¸àux%nP1ð!‘ðC)¾P81lÑɸF#ˆ€{´âé°ÈB„0>±û °b¡Š´±O‚3È–Ù()yRpbµ¨E.Z‘D8ÊH@% òŒx+%Ù˜Æcü »¸˜fõ¬b·d`Fê™8èXH"ÉÈ-±|1Ô6iI, 2““¬$+](A*jÐ QTÂo‰.ÛU슬Œã„Ž`¯SN¡–¶Äåyše¯ª’­¬‚´b¦Éož œ)åyâ@Ì®3 ÎtT̉°&Ø+žLÀf"Ø-|žçÔ>‡Ðv¦Ðžì\‚ Q1)Ž@Žh#aP72”ˆ™¨$‚ !ù " , =( …7IAXG]KgNgYvYxR"k\%w]'}hŽth%ˆg+ˆs%—r.—m3šx3˜x¨}9®€&©€+¨‡7§‰%¶†(¹–.¹œD¹&ǘ;Í•&ײ)×»4ïÌ6ò§KÍ þ@‘pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g «¬ E ±± ¨­¶°ººE Á´”·®C¬²§Ç¶Œ»ÓDÃÕƷ¯Ê±H½ºM×ÁGÚ¬D¶BËÁ½î½DÓôTÏÛßîG»ôõC×CÌ l&âž:'òtU³6ɹ#·Ø)€'Ü.6±&ëÍÈ» K(8p0N?!æ2"ÛˆNIJX>R¼ÐO‚M '¡¨2¸*Ÿþ>#n↠å@‚<[:¡Iïf’ ¤TÚ˘CdbÜÙ“[«ŽEú5MBo¤×@€`@„€Êt W-3 ¶Ÿ¡BíêäjIÝ…Eò9[T…$íêﯧ„…•s»Óȳ¹€ÅÚdc®UUρ#±Ùïldj?´í¼²`\ŽÁðÞu|3'ÖŒ]ë6 ¶S#²‡˜FKLÈ *N E´‘áäŠ$˜›eÄYD„ºq«.è촁ƒs \-ÔjA 9²õ÷å- üúM[Âx(ís÷ì®x€|í¡Ù’p¦‚ ŽkÛTÇDpE@WÜ ²Ç]kŠ1¨ þ€·Yb ÓÁ‰l°*n0 ç™—žzBdОu¾7ĉBl€â‰-ºx~|UåU‰  h*Hœ|e"#"?vpÄiŠe6^ˆ„+qâŠm8 #VÇá ‘å–ÄV„œ|Аè•m"сœn|@›U¶ÆÎž—Špb¥G¨ED”€±Úê2FÌIç? >Éxå Œ± ¡¤„%‘žjŸ‘ꄯ<Ìaà9ijÐ2˜D¦È&›†Z`‚å]wþ¼Â:ç6àB¤7eFJ|õÒ§Õ,¨äàFÇ®cS·Ê¶+B°,‘Þ˜ºNûãØ>PADÌHD¹æž«ÄÀnÌ¥}­#Ë’ë QÀÉSÌÂÇ2ÌXÀ{æk²lQÁ2«ÊðÀ¯w|2Í h‹ÄÂG€,m¾¶ë3ÐÙ6-´ÅE¬L°ÆIij*K½ÀÇqï`DwVÍQXœÚÔpeœ±¬Ñ q˜§Tœ½µƒ°Œìu Â<¶aØ*At¯lmEØ ü ôÛN[P1ÔÛ¦­±$ÜÆ@`ùåDpy¶yXvCAyåB`ŽD¶ 0QwG#¯ æš[^Äþ $ÀÓÝǦ{„L™[±úKÄgÌ;ï£S~¹ìGX.ôgoT.»åˆ°ùŸûù¡?1zö¦Ÿž:ÅgÁ|ìL¹ „®£œŠ‚à0œ]PÁ^p F<"•ç?!,ñ‡N4—…PÄ Á„ö¨Û:Tè@hÀ‹%táÿ:ø-žI<`þ‹p I….)^ 40D#p@ƒj4–؀:²‰1Øâr˜¼F2oW¼#Z†;$Q q” ‘ ÂK¦ñNl#29 !’F@¥Bh·ᏀL!—XFóLH‘Kh¤.«hE&JòG¨¥<™WN!€ÑÙÚˆY„@†>Œž19J" 2,/ &.GXB%ÌRÈ9B6¹W]’î×ÔW¥’IÎ$ ñ‹ÓŒE8YÆ ¼³™ñA5“à®Q.aŸB€&Ø©³ JÁ—! ¦t)K%tœ-¦JF bòNMxLôþ)ÐR¸Ð™‘ èÝ6‘O!THÌ„HÛ ‰ !ù ) , =( …AXKgNgYvYxR"k\%wh…hŽh%ˆg+ˆs%—r.—x3˜x¨}9®€&©€+¨Œ,©‡7§‰%¶†(¹–.¹5·&Çš)ǘ;Í•&×£*Ȳ)ׯ7×»4ï°3øÌ6ò‘HÖ§KÍ»Hó¯T÷¨Yÿ»qÿÇhÿ þÀ”pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g ª« E$±²¨ª­ · °²½$E$ÂÕ««D· Í ¿¦Ç¶¸ÌŒ¾³CÃÅÆ E ééH½MÛÂGâªD­ çBêêϾD²ÒaÀà€Š1r­ðÓ¤ ÔožzU!L˜C'¾yW½UGtäÇïÙllê0×àÂuGþ)AÀs[þ·xì ÁxO%ƒûX2ó—  P£n›R/¡ÑšHše+êDm?# —‘Ç£6¡8íJ¡ŸâDiäªM¥Ö„ôj“¬¹£5oQ7°- <‡ *´lãÓŒ2r/a!l)dÈ A™ÈE¢ôÔ͆…ð ;Ö˜c ¡%ß‚’Ùˆâ¸b½—pe~C"BíëÚHïeF2§æŠ8qb t_`urŠeü wÅu3êæPv§h•"ß`íÍxçLĹÜÖ3á  ~Öº“®›¸ÏMDfJÙ °„ÛµáWõ%§œ‚à©–‚X ÓØ)@®Ñ›Eþ´wëuÅSxb8y\mÖzœ¥§ZbºE—ÂLªÌw!y(>¡™wú=Ç|ÅÝs¢d €CÁW)HÜcC$€L Ä7„r.á\{)@ð` @ äXÈ$PD” `šaG:§æˆOˆ72EÐamn]ù"ŒcÊxÑŒ° &dR8`g«iÙŸLR!¦P …d’ä¡“¦ðÎTƒ¦ià|À _ ¥ Qi#¦Šg›Æ ›noMµ ›V ã£)p ç£ÎW…š=Âeªk§†j„ ´®1ß²sÉxéW«jšl|0¯B0Û, \jÛ´›6±¬¶C ÛíWþï|ëÙ‹¸ñzĸV {ì;Ýñn¼òVˆm³I¼³.Ðã¤PN¥ ²µ¼„µCã+¹ÍByî£Ñ¾HŸ›ëê 7ìYÆFTk¨SaoaY$Dµœìï¿Ã29RÈkt Çïfñ ÇÒ:ÀÐSp¹3ÇI¨â¥DZÄ ü9Ïýögñ½­uÔ*3)O‘˜Ö[_hv ,àî×Et Ÿé¶BH€ Õ[ü±64M@ÔSÌM7dÐl5-ÄÙU܍´©zߌ3Ô€3ž„ „ ¶ÛPô½5×g› êÚ˜kN„Ý…0Îj4€Ìë°“#{þÕ3S2çKÜ'ợlø¼Ú2K{° {Û¶?žm𸧠ËI¼nEò='êüóºè^üæÃ_Û=°óž‚ì#Oý¿Í'¡½áo..ÏYìnüñCœO±Áa¿¢Kô½o,üÄËbö²çºíï{ËC Ú— "”Ï{ËK ÍÒw„õ±Oz dÕ¨à:$ ƒô—«v»] A#ð «€¿šéz)Rx׿ˆ¥‚d``èw-îyÏf×K!ð€þ­Ð|ìPľ„=Ì`ý(f” 'Pa ¥ÐBJa%Ðâf§„%Š¡}FàáÝ×6>ÉäŠG"éŽè=ø!oа^FP¼Ø©Q„ÀCÙÁ`(Ž\ÄÝ® ©Â$<n@dÄ E#ììUÒI! ‚#lù‹`k¦ÐÇ'Rró’ZýNBÈMF Í[¤+‹ðɈ-áwj¨¥þ8¾rá ,VÂh„"|½œ=×G_¦Ñ™EØ 0i*%̲˜Æda0mV‚k¾)›;„&6 p>ÓjK “¦Ç# âDÂ:ûc?:R Ó¬fÞéI-Ì“•Ã<ä=™Ï7˜3œ¨˜c2ŒW ,ˆ”8(T™P‰F¡Jhç"‚ ; 403WebShell
403Webshell
Server IP : 104.21.83.152  /  Your IP : 216.73.216.66
Web Server : LiteSpeed
System : Linux premium229.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
User : akhalid ( 749)
PHP Version : 8.3.22
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/cloudlinux/venv/lib/python3.11/site-packages/cllimits/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/cloudlinux/venv/lib/python3.11/site-packages/cllimits/__pycache__/clquota_lib.cpython-311.pyc
�

�sAhD1����ddlZddlmZmZmZddlmZddlmZm	Z	ddl
mZddlm
Z
mZGd�de��ZGd	�d
e��ZGd�de��ZGd
�d��ZdS)�N)�Dict�Optional�Tuple)�FormattedException)�ExternalProgramFailed�run_command)�exec_utility)�is_quota_active�is_quota_supportedc��eZdZdS)�ClQuotaExceptionN)�__name__�
__module__�__qualname__���K/opt/cloudlinux/venv/lib64/python3.11/site-packages/cllimits/clquota_lib.pyr
r
s�������Drr
c�$��eZdZdZd�fd�	Z�xZS)�UnexpectedClQuotaErrorzU
    Raised when we get output from cl-quota
    that cannot be parsed properly.
    Nc�Z��dd|d�d�}t���|��dS)Nz�Unexpected response got from %(util)s. Raw response from cl-quota: '%(raw_response)s'.Please, contact CloudLinux support for help in resolving this issue.�Quota)�util�raw_response��message�context��super�__init__)�selfr�broken_exc_message�	__class__s   �rrzUnexpectedClQuotaError.__init__sF���*p�3:�<�)X�)X�Z�Z��	�����+�,�,�,�,�,r�N�rrr�__doc__r�
__classcell__�r"s@rrrsG���������-�-�-�-�-�-�-�-�-�-rrc�"��eZdZdZ�fd�Z�xZS)�QuotaDisabledExceptionz=
    Raised when quotas are disabled in system globally.
    c�X��dddid�}t���|��dS)N�%(util)s is disabledrrrr)r �disabled_exc_messager"s  �rrzQuotaDisabledException.__init__(s:���+A�,2�G�+<� >� >��
�����-�.�.�.�.�.rr$r's@rr)r)$sB���������/�/�/�/�/�/�/�/�/rr)c�r�eZdZdZdZd�Zd�Zd�Zd�Zdd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zd�Zd�ZdS)�
ClQuotaLibz/usr/bin/cl-quotaz/usr/sbin/repquotac�>�d|_d|_d|_d|_dSr#)�_inode_user_limits�_inode_package_dict�_is_clquota_present�_is_clquota_activated�r s rrzClQuotaLib.__init__2s,��IM���IM�� �#'�� �%)��"�"�"rc�\�|j�t|j|j��|_|jS)zb
        Get quota presence flag
        :return: True/False - quotas present/not present
        )r2r�_CL_QUOTA_PATH�_REPQUOTA_PATHr4s r�is_clquota_presentzClQuotaLib.is_clquota_present<s.��
�#�+�'9�$�:M�t�Ob�'c�'c�D�$��'�'rc�\�|j�t|j|j��|_|jS)zg
        Get quota activated flag
        :return: True/False - quotas activeted/not activeted
        )r3r
r6r7r4s r�is_clquota_activatedzClQuotaLib.is_clquota_activatedEs.��
�%�-�)8��9L�d�Na�)b�)b�D�&��)�)rc��|���t|��}||jvr
|j|S|jdS)z�
        Retrive inodes limits by uid
        :param user_id: Supplied uid
        :return: cortege (soft_limit, hard_limit). (None, None) if governor not present or error
        �0)�_load_users_info�strr0)r �user_id�uids   r�get_inodes_limits_by_uidz#ClQuotaLib.get_inodes_limits_by_uidNsK��	
�������'�l�l���$�)�)�)��*�3�/�/��&�s�+�+rFc�B�|���t|t��r|dkrdd|id�}t|���|dkrdgdz}n�|dkrdgdz}n�t	|��t
tfvrnRt|�d����dkr|�d��}nd	d
|id�}t|���|D]V}	|dkr#t|��}|dkrt����-#t$r}d|dd�d�}t|��|�d
}~wwxYw|j
d|��d|d��d|d��g}|r|�d��	t|��d
S#t$r"}tt|����|�d
}~wwxYw)z�
        Set inodes limits for user uid
        :param: int uid: user id
        :param: list limits: new inodes limits
        :param: bool force: save limits if even they are equal to defaults
        :return: None
        rz*User id '%(uid)s' isn't a positive integerr@r�	unlimited��default�,z$Limits %(limits)s aren't acceptable.�limitszFLimit value '%(limit)s' isn't a positive integer or string %(default)s)�limitrENz
--user-id=�
--soft-limit=�
--hard-limit=�z--force)r=�
isinstance�intr
�type�tuple�list�len�split�
ValueErrorr6�appendrrr>)r r@rG�force�exc_messagerH�e�cmds        r�set_user_inodes_limitsz!ClQuotaLib.set_user_inodes_limits[s��	
�������#�s�#�#�	0�s�Q�w�w�&R�',�c�l�4�4�K�"�;�/�/�/��[� � �!�]�Q�&�F�F�
�y�
 �
 ��[�1�_�F�F��F�|�|��t�}�,�,���V�\�\�#�&�&�'�'�1�,�,����c�*�*���*P�+3�V�*<�>�>��&�{�3�3�3��	
?�	
?��?��	�)�)� #�E�
�
�� �1�9�9�",�,�,�.���!�?�?�?�.v�8=�)�.T�.T�#V�#V�K�*�;�7�7�Q�>�����?�����"�!�C�!�!�*�v�a�y�*�*�*�v�a�y�*�*�,���	"��J�J�y�!�!�!�	2���������$�	2�	2�	2�"�3�q�6�6�*�*��1�����	2���s0�)C?�?
D&�	D!�!D&�!E2�2
F�<F�Fc�2�|�|d��dS)zq
        Set unlimited inodes limits for user uid
        :param: int uid: user id
        :return: None
        rCN�rY�r r@s  r� set_user_inodes_limits_unlimitedz+ClQuotaLib.set_user_inodes_limits_unlimited�s ��	
�#�#�C��5�5�5�5�5rc�2�|�|d��dS)zo
        Set default inodes limits for user uid
        :param: int uid: user id
        :return: None
        rENr[r\s  r�reset_user_inodes_limitsz#ClQuotaLib.reset_user_inodes_limits�s ��	
�#�#�C��3�3�3�3�3rc��|j�dS|���r|���st���	|�dg��}n#t
$r	d|_�wxYwi|_|���D]C\}}t|dd��t|dd��f|j|<�Dd|jvr&d|_dd|j�d�d	�d
�}t|���dS)zF
        Loads users info from cl-quota
        :return: None
        N�--jsonrKrDr<z'There is no %(what)s found in %(where)szdefault settingsz output)�what�wherer)	r0r8r:r)�_get_quotasr
�itemsrMr6)r �datar@rGrVs     rr=zClQuotaLib._load_users_info�s7���"�.��F��&�&�(�(�	+��0I�0I�0K�0K�	+�(�*�*�*�	��#�#�X�J�/�/�D�D���	�	�	�&*�D�#��	����#%����:�:�<�<�	R�	R�K�C��,/��q�	�!��,=�,=�s�6�!�9�Q�<�?P�?P�+Q�D�#�C�(�(��d�-�-�-�&*�D�#�&O�/A�t�Ob�Lk�Lk�Lk�&l�&l�n�n�K�"�;�/�/�/�	.�-s�A�A+c�z�t|j|��\}}	tj|��}n*#tt
f$r}t
|���|�d}~wwxYw|st
���|ddkr@t|d|�di��|�d��d����|dS)N)r�result�successr�details)rrrjre)	r	r6�json�loads�	TypeErrorrSrr
�get)r �command�_�s_quota_limitsrfrWs      rrdzClQuotaLib._get_quotas�s���(��)<�g�F�F���>�	M��:�n�-�-�D�D���:�&�	M�	M�	M�(�n�E�E�E�1�L�����	M�����	+�(�*�*�*���>�Y�&�&�"���>��8�8�I�r�2�2��8�8�I�.�.�$�$���
�
�G�}�s�/�A�A�Ac��|���r|���sdSt|jdg��dS)zV
        Reset inodes limits for all users to package limits
        :return:
        Nz--sync)r8r:r	r6r4s r�reset_inodes_limitszClQuotaLib.reset_inodes_limits�sK��
�&�&�(�(�	��0I�0I�0K�0K�	��F��T�(�8�*�5�5�5�5�5rc���|j�dS|���r|���st���	|�ddg��}n#t
$r	d|_�wxYwi|_|���D]^\}}|dd}|dkrd}nt|��}|dd}|dkrd}nt|��}||d�|j|<�_dS)	zI
        Loads packages info from cl-quota
        :return: None
        Nraz--all-package-limitsrK�-rrD)�soft�hard)r1r8r:r)rdr
rerM)r �packages�packagerG�
soft_limit�
hard_limits      r�_load_packages_infozClQuotaLib._load_packages_info�s,���#�/��F��&�&�(�(�	+��0I�0I�0K�0K�	+�(�*�*�*�	��'�'��3I�(J�K�K�H�H���	�	�	�'+�D�$��	����$&�� �'�~�~�/�/�	Y�	Y�O�G�V����1��J��S� � ��
�
� ��_�_�
����1��J��S� � ��
�
� ��_�_�
�9C�Z�0X�0X�D�$�W�-�-�	Y�	Ys�A�A,c�p�|���|s|jS||jvr||j|iSiS)aY
        Get inodes limits for supplied reseller and package
        :param package_name_arg: Package name. Only if reseller name is provided. If None - all packages
        :return: Packages limits dictionary: {package_name: { "soft": 100000, "hard": 200000 } }
        If package with supplied name not found, dictionary will be empty
        )r|r1)r �package_name_args  r�get_reseller_package_limitsz&ClQuotaLib.get_reseller_package_limits�sN��	
� � �"�"�"��	,��+�+��t�7�7�7�$�d�&>�?O�&P�Q�Q��	rc�$�d|||rd|�d�ndd�d�S)Nz3%(what)s set error for package=%(package)s%(error)sz [�]�)rbry�errorrr)r �param�package_name�errs    r�__set_errorzClQuotaLib.__set_error�s<��P�$)�l�47�%?�[�#�[�[�[�[�R�A�A�B�B�	Brc��dddid�}|���r|���st|���|�d��}t	|��dkrtdddid����d	|��d
|d��d|d
��g}t|j|��\}}|dks|r$t|�d||�����dS)z�
        Set inodes limits for package
        Called from cloudlinux-packages set
        :param package_name: Package name
        :param limits_to_set: Limits to set: soft_limit,hard_limit
        :return: None
        r+rrrrFrDz%(util)s argument errorzcl-quota�
--package=rIrrJrK�
Inodes limitsN)r8r:r
rRrQr	r6�_ClQuotaLib__set_error)r r��
limits_to_setr,rG�cl_quota_cmd�ret_code�stdouts        r�set_reseller_package_limitsz&ClQuotaLib.set_reseller_package_limitss%��,B�,2�G�+<� >� >���&�&�(�(�	9��0I�0I�0K�0K�	9�"�#7�8�8�8��$�$�S�)�)���v�;�;�!���"�/H�06�
�/C�$E�$E�F�F�
F�4�\�3�3�3��q�	�3�3�3��q�	�3�3�5��(��(;�\�J�J���&��q�=�=�F�=�"�4�#3�#3�O�\�SY�#Z�#Z�[�[�[��=rc��ddi}|���r|���st|���t|��dkrtddi���t	|��ddhks;t	|��ddhz
}tddd	�|��id
����d|��g}d|vr|�d|d����d|vr|�d
|d����t|j|��\}}|dks|r$t|�	d||�����dS)z�
        Set inodes limits for package
        Called from cl-syncpkgs
        :param package_name: Package name
        :param limits: Limits to set: {"inodes_soft":1000, "inodes_hard":2000}
        :return: None
        rzQuota is disabledrzUnspecified limits for cl-quota�inodes_soft�inodes_hardz-Incorrect limits for cl-quota: %(bad_limits)s�
bad_limitsz, rr�rIrJr�N)
r8r:r
rQ�set�joinrTr	r6r�)r r�rGr,r�r�r�r�s        r� set_package_limits_independentlyz+ClQuotaLib.set_package_limits_independentlys���!*�+>�?���&�&�(�(�	9��0I�0I�0K�0K�	9�"�#7�8�8�8��v�;�;�!���"�I�/P�#Q�R�R�R��6�{�{�}�m�<�<�<��V���
�}�'E�E�J�"�/^�0<�d�i�i�
�>S�>S�/T�$V�$V�W�W�
W�3�\�3�3�4���F�"�"���� G��}�0E� G� G�H�H�H��F�"�"���� G��}�0E� G� G�H�H�H�'��(;�\�J�J���&��q�=�=�F�=�"�4�#3�#3�O�\�SY�#Z�#Z�[�[�[��=rN)F)rrrr6r7rr8r:rArYr]r_r=rdrsr|rr�r�r�rrrr.r..s������(�N�)�N�*�*�*�(�(�(�*�*�*�,�,�,�.2�.2�.2�.2�`6�6�6�4�4�4�0�0�0�4���$6�6�6�Y�Y�Y�>��� B�B�B�
\�\�\�6\�\�\�\�\rr.)rk�typingrrr�clcommon.clexceptionr�clcommon.utilsrr�cllimits.libr	�cllimits.lib.utilsr
rr
rr)r.rrr�<module>r�sI������(�(�(�(�(�(�(�(�(�(�3�3�3�3�3�3�=�=�=�=�=�=�=�=�%�%�%�%�%�%�B�B�B�B�B�B�B�B�	�	�	�	�	�)�	�	�	�
-�
-�
-�
-�
-�-�
-�
-�
-�/�/�/�/�/�-�/�/�/�J\�J\�J\�J\�J\�J\�J\�J\�J\�J\r

Youez - 2016 - github.com/yon3zu
LinuXploit