HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //proc/self/root/usr/local/CyberCP/containerization/__pycache__/containerManager.cpython-310.pyc
o

��hW�@sjddlmZddlZddlmZddlmZddl	m
Z
ddlZddlZddl
mZGdd�dej�ZdS)�)�ProcessUtilitiesN)�
ACLManager)�ServerStatusUtil)�httpProcc@sbeZdZdZddd�Zdd�Zedd��Zed	d
��Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dS)�ContainerManagera�group {groupName}{
        cpu {
                cpu.cfs_quota_us = {cfs_quota_us};
                cpu.cfs_period_us = {cfs_period_us};
        }
        memory {
                memory.limit_in_bytes = {memory}m;
        }
        blkio {
                blkio.throttle.read_bps_device = "{major}:{minor}         {io}";
                blkio.throttle.write_bps_device = "{major}:{minor}         {io}";
                blkio.throttle.read_iops_device = "{major}:{minor}         {iops}";
                blkio.throttle.write_iops_device = "{major}:{minor}         {iops}";
        }
        net_cls
             {
               net_cls.classid = 0x10{net_cls};
        }
}NcCs(tj�|�||_||_||_||_dS)N)�multi�Thread�__init__�request�templateName�function�data)�selfr
rrr
�r�7/usr/local/CyberCP/containerization/containerManager.pyr	s

zContainerManager.__init__c
Cs�z'|jdkr
|��WdS|jdkr|��WdS|jdkr%|��WdSWdStyD}ztj�t|�d�WYd}~dSd}~ww)N�submitContainerInstall�addTrafficController�removeLimitsz [ContainerManager.run])	rrrr�
BaseException�logging�CyberCPLogFileWriter�writeToFile�str)r�msgrrr�run%s


�"��zContainerManager.runcCsZt|d�}t|�dkrd|St|�dkrd|St|�dkr#d|St|�dkr+|SdS)N�02x��000��00��0)�format�len)�count�hexValuerrr�
fetchHexValue0s
�zContainerManager.fetchHexValuec

Cs�z[t�d�tj}tt�|��}td�}	tt|�dd�}
tj�d|�}|�d|�}|�d|�}|�d|�}|�d|�}|�d	|	�}|�d
|
�}|�dt|��}|�dt|��}|WSt	yv}zt
j�t|��WYd}~dSd}~ww)
N�/riz{groupName}z{cfs_quota_us}z{cfs_period_us}z{memory}z{major}z{minor}z{io}z{iops}z	{net_cls})
�os�stat�ST_DEVr�major�intr�defaultConf�replacerrrr)
�	groupName�cfs_quota_us�
cfs_period_us�memory�io�iops�net_cls�devr+�minor�finalIO�ioConfrrrr�prepConf=s(��zContainerManager.prepConfcCs�i}d|d<d|d<t��tjkr%d|d<d|d<t|jd|d�}|��St��s=d|d<d|d<t|jd|d�}|��S|jdkrEi|_d|jd<d|jd<t|j|j|d�}|��S)Nr�OLS�notInstalledrz"containerization/notAvailable.html�admin)	r�decideServerr;rr
�render�containerCheckr
r)rr
�procrrr�renderCTs&


zContainerManager.renderCc
Cs�z,|jjd}t�|�}|ddkrntj�tjdd�WdSd}|d}t	�
|�WdStyL}ztj�tjt|�dd�WYd}~dSd}~ww)	N�userIDr=rz4Not authorized to install container packages. [404].rzN/usr/local/CyberCP/bin/python /usr/local/CyberCP/containerization/container.pyz" --function submitContainerInstallz [404].)
r
�sessionr�	loadedACLrr�statusWriterr�lswsInstallStatusPathr�outputExecutionerrr)rrC�
currentACL�execPathrrrrrls"

�(��z'ContainerManager.submitContainerInstallcCs d}t�|�d}t�|�dS)Nzsudo systemctl restart cgconfigzsudo systemctl restart cgred)r�executioner�r�commandrrr�restartServices�s
z ContainerManager.restartServicescCs�d}t�|�zdt|jd�}t�|�WnYd}t�|�dt|jd�dt|jd�}t�|�d}t�|�|��dS)	Nz;sudo tc qdisc add dev eth0 root handle 10: htb default 1000�&sudo tc class del dev eth0 classid 10:�classIDzFsudo tc class add dev eth0 parent 10: classid 10:1000 htb rate 100mbitz1sudo tc class add dev eth0 parent 10: classid 10:z
 htb rate �	rateLimitzKsudo tc filter add dev eth0 parent 10: protocol ip prio 10 handle 1: cgroup)rrKrr
rNrLrrrr�s

$

z%ContainerManager.addTrafficControllercCs(dt|jd�}t�|�|��dS)NrOrP)rr
rrKrNrLrrrr�s
zContainerManager.removeLimits)NNNN)�__name__�
__module__�__qualname__r-r	r�staticmethodr&r:rBrrNrrrrrrr	s


r)�plogical.processUtilitiesr�	threadingr�plogical.aclr�plogical.CyberCPLogFileWriterrr�serverStatus.serverStatusUtilrr(r)�plogical.httpProcrrrrrrr�<module>s