????

Your IP : 3.144.152.239


Current Path : /opt/cloudlinux/venv/lib/python3.11/site-packages/cllimits/lib/__pycache__/
Upload File :
Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/cllimits/lib/__pycache__/utils.cpython-311.pyc

�

xޘfE���ddlmZddlmZddlmZddlZddlZddlZddlZddlm	Z	m
Z
dZd�Zd�Z
d	�Zdd�Zdd
�Zdd�Zd�Zd�ZdS)�)�print_function)�absolute_import)�divisionN)�run_command�ExternalProgramFailedzAvailable values for optionc��|�d��r#|�dd��\}}d|zd|id�S|�t��r5|�dd��\}}d|zd	|���id�Sd
|iS)zu
    Replacing params in data for show error message
    :param data: error's data for show message
    :return:
    z--� �z
%%(param)s %s�param)�result�context�:z%s: %%(available_options)s�available_optionsr)�
startswith�split�
VALUES_STR�strip)�datar�texts   �I/opt/cloudlinux/venv/lib64/python3.11/site-packages/cllimits/lib/utils.py�replace_paramsrs������t��� ��j�j��a�(�(���t�)�D�0�g�u�=M�N�N�N�	
����	$�	$� ��j�j��a�(�(���e�6��=�/������?�A�A�	A��$���c�H�	t|��dS#t$rYdSwxYw)z�
    Checks is string contains a number (integer or float)
    :param s_val: String to check
    :return: True - string is number, False - not number
    TF)�float�
ValueError)�s_vals r�_is_string_numberr&s9���
�e�����t�������u�u����s��
!�!c��t|�����}|�d��rd}nf|�d��rd}nN|�d��rd}n6t|��rd}d�|��}ntd���t
d	|zt|d
d���z��S)zs
    Convert value in Gbytes,Mbytes to bytes

    :param value: value of mem limit
    :return: value in bytes
    �kr
�m��g�z{}kzWrong memory value�N���)�str�lower�endswithr�formatr�intr)�value�powers  r�convert_mem_value_to_bytesr-3s���
��J�J�����E��~�~�c���
/����	����	�	�/����	����	�	�/����	�5�	!�	!�/������U�#�#����-�.�.�.��t�u�}�u�U�3�B�3�Z�0�0�0�1�1�1rTc�(�|s|St|�����}gd�}|�d��r|d=t|������dd���dd��}|�d��rd}|�dd��}nd}t|��}|D]E}|dzdkr|dz}�|dkrd�|��}nd	�|||��}|S)
z�
    Convert memory value to adaptive value in GB, TB, etc

    :param value: memory value in MB or KB
    :param convert: if True - convert value, False - not convert
    :return: adaptive value in GB, TB, etc

    )�K�M�G�T�Pr r�r�*r$z{}0Kz
{}{:.2f}{})r&r'r(�replacerrr))r+�convert�unitsr�units     r�(_convert_memory_value_to_adaptive_formatr:Is,��������J�J�����E�%�%�%�E��~�~�c�����!�H���J�J�����&�&�s�B�/�/�7�7��R�@�@�E�����������
�
�c�2�&�&������%�L�L�E������D�=�1����T�M�E�E�
�a�Z�Z��^�^�F�+�+�F��E�"�)�)�&�%��>�>�F���MrFc�r�|r%ttj|d�����dSt|��dS)z�
    Print specified dictionary
    :param data_dict: data dictionary to print
    :param is_json: True - print in JSON, False - in text
    :return: None
    T)�	sort_keysN)�print�json�dumps)�	data_dict�is_jsons  r�print_dictionaryrBpsE����
�d�j��d�3�3�3�4�4�4�4�4�	�i�����rc��tj��t|��d�}t||��tjd��dS)za
    Prints to stdout
    :param: is_json - True if print error in json format, False - text
    )�	timestamprr
N)�timer&rB�sys�exit)�messagerArs   r�print_error_and_exitrI�s>��
�����G���=�=�D��T�7�#�#�#��H�Q�K�K�K�K�Krc��tj�|��rtj�|��sdSdS)z\
    Detect quota is supported
    :return: True/False - quotas supported/not supported
    FT)�os�path�isfile)�
cl_quota_path�
repquota_paths  r�is_quota_supportedrP�s9���7�>�>�-�(�(������}�0M�0M���u��4rc�~�t||��sdS|dg}	t|��}n#t$rYdSwxYw|sdSdS)z\
    Detect quota is activated
    :return: True/False - quotas activated/not activated
    Fz-nvaT)rPrr)rNrO�cmd�stdouts    r�is_quota_activerT�so���m�]�;�;���u��&�
!�C���S�!�!���� �����u�u��������u��4s�(�
6�6)T)F)�
__future__rrrr>rKrFrE�clcommon.utilsrrrrrr-r:rBrIrPrT�rr�<module>rXs��&�%�%�%�%�%�&�&�&�&�&�&�����������	�	�	�	�
�
�
�
�����=�=�=�=�=�=�=�=�
*�
� � � �"
�
�
�2�2�2�,$�$�$�$�N����"�����������r