%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/alt/python37/lib/python3.7/site-packages/clpackages/__pycache__/
Upload File :
Create Path :
Current File : //opt/alt/python37/lib/python3.7/site-packages/clpackages/__pycache__/packages.cpython-37.pyc

B

�2Lbv%�@s�ddlmZddlmZddlZddlZddlmZddlmZddl	m
Z
mZddlm
Z
mZmZdd	lmZdd
lmZddlmZddlmZmZmZdd
lmZGdd�de�ZdS)�)�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_adminc@sTeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	ddd�Z
ddd�ZdS)�CloudlinuxPackagesz4
    Class for run cloudlinux-packages commands
    cCs8d|_t�|_t�|_t�|_dddddddd	g|_dS)
NF�speed�nproc�pmem�vmem�
maxEntryProcs�io�iops�inodes)�_is_json�dict�_optsr
�_lvectl_pack_libr�_clquota_pack_lib�_LIMITS_KEYS)�self�r#�D/opt/alt/python37/lib/python3.7/site-packages/clpackages/packages.py�__init__"s
zCloudlinuxPackages.__init__cCsxt�}|��s"d|_|�ddi�Sd|k|_|�|�|_|j�d�rZt��sZ|�ddi�|jdrl|�	�S|�
�SdS)	z$
        Run command action
        T�resultzCloudlinux license isn't validz--jsonz--for-resellerzLerror: reseller limits are not supported, can not use --for-reseller option.�setN)rZget_license_statusr�_error_and_exit�_parse_argsr�getrZreseller_limit_supported�_set_run�_get_run)r"�argvZlicencer#r#r$�run)s


zCloudlinuxPackages.runcCs&t||j�\}}|s"|�t|��|S)z%
        Parse CLI arguments
        )rrr(r)r"r-Zstatus�datar#r#r$r)>szCloudlinuxPackages._parse_argsc
s�|j}t|dt�r"|d�d�nd�t�fdd�|jD��}t�}|jd}d}|jddk	rt|jd���d�}y|j�	|||jd	�}Wn8t
k
r�}z|�t|j|j
d
��Wdd}~XYnX|d�r|j��s�d|d
<t�|d<d|dd
<�n|j���s*d|d
<t�|d<d|dd
<n�y|j�	|�}Wn�tk
�r�}z*i}t�|d<t|�|dd
<d|d
<Wdd}~XYn<tk
�r�}zi}|j|d<|j
|d<Wdd}~XYnXx>|D]6}	|	d}
|
tk�r�d}
|
|k�r�||
|	dd<�q�Wx�|D]�}	|	d}|d�s"|d=|d�s2|d=|d�sLd|k�rL|d=|d�s\|d=|d�svd|k�rv|d=|d�s�|d=|d�sd|k�r|d=�qWt|�|d<||d<|�|�dS) z#
        Run 'get' command
        z--limits�,Nc3s |]}|�p|�kfVqdS)Nr#)�.0�k)�lkr#r$�	<genexpr>Osz.CloudlinuxPackages._get_run.<locals>.<genexpr>z
--providerz	--packagezunicode-escapez--human-readable-numbers)r&�contextr�errorZquota�errorsz'LVE Manager/quota package not installedz#Quotas not activated on this systemZwarningr5�package�default�limitsrrrrZeprrr�itemsr)r�
isinstance�str�splitrr!�encode�decoderZget_reseller_package_limitsrr(�messager5r Zis_clquota_presentZis_clquota_activatedr	r
r�len�_print_data)r"�oZlimits_keysr&�
reseller_name�package_nameZ
packages_data�eZquotas_dictZpackage_dataZpackage_name_quotaZlimits_dictr#)r3r$r,Hsx 
(














zCloudlinuxPackages._get_runc
Cs�|jd}|j�d�}|dk	rBt|�sBt|�sB|�dd|id��|jd���d�}t�}|j}t|d	|d
|d|d|d
|d|dg��r:|d	|d
|d|d|d|d
|dd�}|�	|||�tdd�t
|�D��}y|j�|||�Wn:t
k
�r8}z|�t|j|jd��Wdd}~XYnX|d�r�y|j�||d�Wn:tk
�r�}z|�t|j|jd��Wdd}~XYnX|�|�dS)z#
        Run 'set' command
        z
--providerz--for-resellerNz5error: reseller limits for %(reseller)s are disabled.Zreseller)r&r5z	--packagezunicode-escapez--speedz--pmemz--vmemz--maxEntryProcsz--nprocz--ioz--iops)rrrrrrrcSsg|]}|ddk	r|�qS)rNr#)r1�xr#r#r$�
<listcomp>�sz/CloudlinuxPackages._set_run.<locals>.<listcomp>z--inodesr)rr*rrr(r?r@r�any�%_check_hoster_permissions_for_packagerrZset_reseller_package_limitsrrAr5r r
rC)r"rE�for_resellerrFr&rDr:rGr#r#r$r+�s8
(
(
zCloudlinuxPackages._set_runcCs,|dkr(t|�r(d}|�|d|id��dS)NzMerror: hoster cannot manage package limits for reseller's package %(package)sr8)r&r5)rr()r"rLrFrErAr#r#r$rK�sz8CloudlinuxPackages._check_hoster_permissions_for_packageF�successcCs2t|t�r|�|t��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/Z
force_jsonr&r#r#r$rC�s
zCloudlinuxPackages._print_datarc
Cs�|jr$|�dt��i�t|d�nXy tt|d�|�di��Wn6tk
rz}ztdt|�|f�Wdd}~XYnXt�	|�dS)z�
        Print error and exit
        :param dict message: Dictionary with keys "result" as string and optional "context" as dict
        rNTr&r5zError: %s [%s]N)
rrOrPr�printr=r*�KeyError�sys�exit)r"rAZ
error_coderGr#r#r$r(�s &z"CloudlinuxPackages._error_and_exitN)FrM)r)�__name__�
__module__�__qualname__�__doc__r%r.r)r,r+rKrCr(r#r#r#r$rs
R*

r)Z
__future__rrrSrPZfuture.utilsrZ	cllicenserZ	cli_utilsrrZcllimits.clquota_librr	r
Zcl_packages_arg_parserZ
clpackagesr
ZcllimitsrZ	lvectllibrrrZclcommon.cpapir�objectrr#r#r#r$�<module>
s

Zerion Mini Shell 1.0