HEX
Server: Apache
System: Linux insrv.serversdaddy.com 5.14.0-362.24.2.el9_3.x86_64 #1 SMP PREEMPT_DYNAMIC Sat Mar 30 14:11:54 EDT 2024 x86_64
User: jsaha (1066)
PHP: 8.3.6
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/cloudlinux/venv/lib/python3.11/site-packages/clpackages/__pycache__/packages.cpython-311.pyc
�

L7Z������ddlmZddlmZddlZddlZddlmZddlmZddl	m
Z
mZddlm
Z
mZmZdd	lmZdd
lmZddlmZddlmZmZmZdd
lmZddlmZmZGd�de��Z dS)�)�print_function)�absolute_importN)�	iteritems)�CloudlinuxLicenseLib)�print_dictionary�replace_params)�
ClQuotaLib�QuotaDisabledException�ClQuotaException�)�parse_cloudlinux_packages_opts)�
LveCtlPackage)�LvectlException)�DEFAULT_PACKAGE�is_active_reseller_limits�lve)�is_admin)�
MySQLGovernor�MySQLGovExceptionc�F�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	dd
�Z
dd�Zd
S)�CloudlinuxPackagesz4
    Class for run cloudlinux-packages commands
    c��d|_t��|_t��|_t��|_gd�|_t��|_	dS)NF)
�speed�nproc�pmem�vmem�
maxEntryProcs�io�iops�inodes�	mysql-cpu�mysql-io)
�_is_json�dict�_optsr�_lvectl_pack_libr	�_clquota_pack_lib�_LIMITS_KEYSr�_mysql_governor)�selfs �py/clpackages/packages.py�__init__zCloudlinuxPackages.__init__#sR����
��V�V��
� -�����!+�����6�6�6���,�������c��t��}|���sd|_|�ddi��Sd|v|_|�|��|_|j�d��r*tj��s|�ddi��|jdr|�	��S|�
��S)z$
        Run command action
        T�resultzCloudlinux license isn't validz--json�--for-resellerzLerror: reseller limits are not supported, can not use --for-reseller option.�set)r�get_license_statusr#�_error_and_exit�_parse_argsr%�getr�reseller_limit_supported�_set_run�_get_run)r*�argv�licences   r+�runzCloudlinuxPackages.run,s���'�(�(���)�)�+�+�	V� �D�M��'�'��3S�(T�U�U�U� �D�(��
��%�%�d�+�+��
��:�>�>�*�+�+�	�C�4P�4R�4R�	�� � ��h�"�
�
�
��:�e��	#��=�=�?�?�"��=�=�?�?�"r-c�~�t||j��\}}|s"|�t|����|S)z%
        Parse CLI arguments
        )r
r#r3r)r*r9�status�datas    r+r4zCloudlinuxPackages._parse_argsAsB��6�d�D�M�J�J�����	7�� � ���!5�!5�6�6�6��r-c�	��|j}t|dt��r|d�d��nd�t	�fd�|jD����}t	��}|jd}d}|jd�2|jd����d��}	|j�	|||jd��}nE#t$r8}|�t	|j|j
�	����Yd}~nd}~wwxYw|d
�r0|j���s"d|d<t	��|d
<d|d
d<n�|j���s"d|d<t	��|d
<d|d
d<n�	|j�	|��}no#t"$r:}i}t	��|d
<t|��|d
d<d|d<Yd}~n0d}~wt$$r }i}|j|d<|j
|d<Yd}~nd}~wwxYw|D],}	|	d}
|
t&krd}
|
|vr||
|	dd
<�-g}|D]6}	d|	ddi|	dd<|�|	d���7|j���r�d|d<	|jd�|jd|vr}|j�|jd��}|D]U}	|	d}|t&krd}||vr:||d|	ddd<||d|	ddd<�VnZ#t0$rH}|ddkr2d|d<d
|vr)t	��|d
<t|��|d
d<Yd}~n
d}~wwxYwd|d<|D]�}	|	d}
|ds|
d=|
dd=|
dikr|
d=|ds|
d=|dsd|
vr|
d=|ds|
d =|d!sd!|
vr|
d!=|ds|
dd=|
dikr|
d=|d"sd"|
vr|
d"=|d#s"d|
dvr|
dd=|
dikr|
d=|d$s&d|
vr"d|
dvr|
dd=|
dikr|
d=��t3|��|d%<||d<|�|��d&S)'z#
        Run 'get' command
        z--limits�,Nc3�*�K�|]
}|�p|�vfV��dS)N�)�.0�k�lks  �r+�	<genexpr>z.CloudlinuxPackages._get_run.<locals>.<genexpr>Rs3�����M�M�a�A�2�v�0��b��1�M�M�M�M�M�Mr-�
--provider�	--package�unicode-escapez--human-readable-numbers�r/�contextr �error�quota�errorsz'LVE Manager/quota package not installedz#Quotas not activated on this system�warningrK�package�default�limits�allr�cpu�enabled�mySqlGov�mysqlr�disabledrrr�eprrr!r"�itemsr)r%�
isinstance�str�splitr$r(�encode�decoder&�get_reseller_package_limitsrr3�messagerKr'�is_clquota_present�is_clquota_activatedr
rr�appendr)�is_governor_present�get_package_limitsr�len�_print_data)r*�o�limits_keysr/�
reseller_name�package_name�
packages_data�e�quotas_dict�package_data�package_name_quota�
package_names�package_limits_governor�limits_dictrEs              @r+r8zCloudlinuxPackages._get_runKsK���

�J��)3�A�j�M�3�)G�)G�
Q�Q�z�]�
 �
 ��
%�
%�
%�T���M�M�M�M�4�;L�M�M�M�M�M�������
�<�0�
����:�k�"�.��:�k�2�9�9�;�;�B�B�CS�T�T�L�	L� �1�M�M�m�NZ�NR�j�Ys�Nt�v�v�M�M���	L�	L�	L�� � ��Q�Y��	�!J�!J�!J�K�K�K�K�K�K�K�K�����	L�����x� �	[��)�<�<�>�>�
[�")��w��#'�6�6��x� �,U��x� ��)�)��+�@�@�B�B�
[�")��w��#'�6�6��x� �,Q��x� ��)�)�
2�"&�"8�"T�"T�Ua�"b�"b�K�K��-�.�.�.�"$�K�'+�v�v�F�8�$�03�A���F�8�$�W�-�&-�F�7�O�O�O�O�O�O�����'�2�2�2�"$�K�()�	�F�9�%�()�	�F�9�%�%�%�%�%�%�����2����%2�[�[�L�)5�i�)@�&�)�_�<�<�-6�*�)�[�8�8�;F�GY�;Z��X�.�x�8���
�)�	:�	:�L�-2�L��4J�7�4S�,T�L��"�5�)�� � ��i�!8�9�9�9�9���3�3�5�5�	,�!*�F�:��
>��:�k�*�2�d�j��6M�Q^�6^�6^�.2�.B�.U�.U�VZ�V`�al�Vm�.n�.n�+�(5�p�p��'3�I�'>��'�?�:�:�+4�L�'�+B�B�B�E\�]i�Ej�kp�Eq�L��2�5�9�'�B�D[�\h�Di�jn�Do�L��2�4�8��A����$�
>�
>�
>��*�%��2�2�)0�F�:�&��v�-�-�+/�6�6��x�(�7:�1�v�v��x�(��4����������
>����",�F�:��)�%	*�%	*�L�&�x�0�K��w�'�
+���(���&�u�-��u�%��+�+�#�E�*��v�&�
(���'��v�&�
(�6�[�+@�+@���'���/�
&���%��w�'�
)�G�{�,B�,B���(��t�$�
*���%�e�,��t�$��*�*�#�D�)��v�&�
(�6�[�+@�+@���'��{�+�
+��;�u�;M�0M�0M���&�w�/��u�%��+�+�#�E�*��z�*�
*�t�{�/B�/B�w�R]�^b�Rc�Gc�Gc���%�g�.��t�$��*�*�#�D�)���m�,�,��w��)��y������ � � ��qsU�>'C&�&
D(�0.D#�#D(�+G�
H2�0H�
H2�H-�-H2�>BM�
N*�">N%�%N*c
��|jd}|j�d��}|�8t|��s)t|��s|�dd|id���|jd����d��}t��}|j}t|d	|d
|d|d|d
|d|dg��r�|d	|d
|d|d|d|d
|dd�}|�	|||��td�t|��D����}	|j�|||��nE#t$r8}|�t|j|j�����Yd}~nd}~wwxYw|drh	|j�||d��nE#t"$r8}|�t|j|j�����Yd}~nd}~wwxYw|d�|d��|j���rp	|j�||d|d��nF#t*f$r8}|�t|j|j�����Yd}~nd}~wwxYw|�|��dS)z#
        Run 'set' command
        rGr0Nz5error: reseller limits for %(reseller)s are disabled.�resellerrJrHrIz--speedz--pmemz--vmemz--maxEntryProcsz--nprocz--ioz--iops)rrrrrrrc�"�g|]}|d�
|��
S�rrB)rC�xs  r+�
<listcomp>z/CloudlinuxPackages._set_run.<locals>.<listcomp>�s!��L�L�L��1�Q�4�;K�1�;K�;K�;Kr-z--inodesz--mysql-cpuz
--mysql-ior)r%r5rrr3r^r_r$�any�%_check_hoster_permissions_for_packagerr&�set_reseller_package_limitsrrarKr'rr)re�set_package_limitsrrh)r*rk�for_resellerrlr/rirRrns        r+r7zCloudlinuxPackages._set_run�sG���
�<�0�
��z�~�~�&6�7�7���#�H�\�,B�,B�#�(��6�6�$�� � �Q�&�
�6�"�"�
�
�
��z�+�.�5�5�7�7�>�>�?O�P�P�������J����)��a��k�1�X�;��:K�8L��)��a��i��8��6�7�7�	P� !��|�Q�x�[��&�	���k�A�>O�<P� ��|�Q�x�[�B�B�F�

�6�6�|�\�S`�a�a�a��L�L�i��&7�&7�L�L�L�M�M�F�
P��%�A�A�-�Q]�_e�f�f�f�f��"�
P�
P�
P��$�$�T���A�I�%N�%N�%N�O�O�O�O�O�O�O�O�����
P�����Z�=�	P�
P��&�B�B�<�QR�S]�Q^�_�_�_�_��#�
P�
P�
P��$�$�T���A�I�%N�%N�%N�O�O�O�O�O�O�O�O�����
P����
�m��(�A�l�O�,G�T�Ma�Mu�Mu�Mw�Mw�,G�
P��$�7�7��a�
�FV�XY�Zf�Xg�h�h�h�h��%�(�
P�
P�
P��$�$�T���A�I�%N�%N�%N�O�O�O�O�O�O�O�O�����
P�������� � � ��qsH�E8�8
F:�.F5�5F:�!G(�(
H*�2.H%�%H*�(J�K�.J>�>Kc�h�|�-t|��r d}|�|d|id���dSdSdS)NzMerror: hoster cannot manage package limits for reseller's package %(package)srPrJ)rr3)r*rrlrkras     r+r|z8CloudlinuxPackages._check_hoster_permissions_for_package�sh����$=�m�$L�$L��=�G�� � �G�.7��-F�"H�"H�
I�
I�
I�
I�
I� ���r-F�successc��t|t��r)|�|tj��d���t	||jp|��dS)z�
        Output data wrapper
        :param: `dict` data - data for output to stdout
        :param: `bool` force_json - always output json format
        )r/�	timestampN)r[r$�update�timerr#)r*r>�
force_jsonr/s    r+rhzCloudlinuxPackages._print_datasT���d�D�!�!�	F��K�K�6��	���D�D�E�E�E���t�}�:�
�;�;�;�;�;r-rc��|jr9|�dtj��i��t|d��nu	t	t|d��|�di��z��n:#t$r-}t	dt|���d|�d���Yd}~nd}~wwxYwtj	|��dS)	z�
        Print error and exit
        :param dict message: Dictionary with keys "result" as string and optional "context" as dict
        r�Tr/rKzError: z [�]N)
r#r�r�r�printr\r5�KeyError�sys�exit)r*ra�
error_coderns    r+r3z"CloudlinuxPackages._error_and_exits���
�=�	<��N�N�K�����5�6�6�6��W�d�+�+�+�+�
<��c�'�(�+�,�,�w�{�{�9�b�/I�/I�I�J�J�J�J���
<�
<�
<���#�a�&�&�&�&�'�'�'�:�;�;�;�;�;�;�;�;�����
<�����������s�9A<�<
B3�#B.�.B3N)Fr�rx)�__name__�
__module__�__qualname__�__doc__r,r;r4r8r7r|rhr3rBr-r+rrs���������/�/�/�#�#�#�*������B.�.�.�`I�I�I�<�<�<�<�
�
�
�
�
�
r-r)!�
__future__rrr�r��future.utilsr�	cllicenser�	cli_utilsrr�cllimits.clquota_libr	r
r�cl_packages_arg_parser
�
clpackagesr�cllimitsr�	lvectllibrrr�clcommon.cpapir�clcommon.librr�objectrrBr-r+�<module>r�si��&�%�%�%�%�%�&�&�&�&�&�&�
�
�
�
�����"�"�"�"�"�"�*�*�*�*�*�*�6�6�6�6�6�6�6�6�U�U�U�U�U�U�U�U�U�U�A�A�A�A�A�A�$�$�$�$�$�$�$�$�$�$�$�$�	�	�	�	�	�	�	�	�	�	�$�#�#�#�#�#�9�9�9�9�9�9�9�9�|�|�|�|�|��|�|�|�|�|r-