File: //usr/local/CyberCP/serverStatus/__pycache__/serverStatusUtil.cpython-310.pyc
o
�h�L � @ s� d dl Z d dlZd dlZej�d� d dlZe j�dd� e�� d dl Z d dl
Z
d dlZd dlZd dl
mZ d dlmZ d dlmZ d dlmZ d dlmZ d d lmZ d d
lmZ d dlZd dlZd dlZG dd� dej �Z!d
d� Z"e#dkr}e"� dS dS )� Nz/usr/local/CyberCP�DJANGO_SETTINGS_MODULEzCyberCP.settings)�ProcessUtilities)�Websites)�virtualHostUtilities)�sslUtilities)�vhost)�ignore_patternsc @ s� e Zd ZdZdZdd� Zdd� Zedd� �Zed d
� �Z edd� �Z
ed
d� �Zedd� �Zedd� �Z
edd� �Zedd� �Zedd� �Zedd� �ZdS )�ServerStatusUtilz!/home/cyberpanel/switchLSWSStatus�/usr/local/lsws/c C s t j�| � || _d S �N)�multi�Thread�__init__�key)�selfr � r �3/usr/local/CyberCP/serverStatus/serverStatusUtil.pyr s
zServerStatusUtil.__init__c C s | � | j� d S r )�switchTOLSWSr )r r r r �run! s zServerStatusUtil.runc
C sx z t j�tj�rtj�| � tj | ||dd�}|dkrW dS W dS t
y; } ztj�t|�� W Y d }~dS d }~ww )NT)�stdout�stderr�shell� r )�os�path�existsr � debugPath�logging�CyberCPLogFileWriter�writeToFile�
subprocess�call�
BaseException�str)�command�
statusFile�res�msgr r r �executioner$ s ��zServerStatusUtil.executionerc
C s� z[d} t jj| ddid�}t jj|dd��}|�� �d�}W d � n1 s'w Y d }t�||�}|rPt|d
d� d�d
}t j
�tj
d|� d�d� |W S t j
�tj
dd� W dS ty} } zt j
�tj
dt|�� d�d� W Y d}~dS d}~ww )zAFetch the latest LSWS Enterprise version from LiteSpeed's websitezDhttps://www.litespeedtech.com/products/litespeed-web-server/downloadz
User-AgentzMozilla/5.0)�headers�
)�timeoutzutf-8Nzlsws-(\d+\.\d+\.\d+)-entc S s dd� | � d�D �S )Nc S s g | ]}t |��qS r )�int)�.0�xr r r �
<listcomp>C � zKServerStatusUtil.getLatestLSWSVersion.<locals>.<lambda>.<locals>.<listcomp>�.)�split)�vr r r �<lambda>C r0 z7ServerStatusUtil.getLatestLSWSVersion.<locals>.<lambda>)r ���z&Found latest LSWS Enterprise version: �
r z7Could not find version pattern in HTML, using fallback
z%Failed to fetch latest LSWS version: z, using fallback
z6.3.4)�urllib�request�Request�urlopen�read�decode�re�findall�sortedr r �statusWriterr �lswsInstallStatusPath� Exceptionr# )�url�req�response�html�version_pattern�versions�latest_version�er r r �getLatestLSWSVersion3 s2 �
�
��
���z%ServerStatusUtil.getLatestLSWSVersionc
C s� �zOt �� }z
d}t�||� W n Y z
d}t�||� W n Y z
d}t�||� W n Y ddlm} t�� }|�� rHd|� d�}nd|� d�}t�||�dkrYW dS t j� d �rdt
�d
� t j� d|� d��rwt
�d|� d�� |�� r�d
|� d�}nd
|� d�}t�||�dkr�W dS | dkr�d|� d�}t�||�dkr�W dS ntd|� d�d�}|�
| � |�� t
�dd|� d�� t
�dd|� d�� t �d|� d�� d}t�||�dkr�W dS d}t�||�dkr�W dS d}t�||�dkr�W dS t �|� d}t
�d|� t
�d|� t
�d|� zd| }t�t�|�� W n Y z
t �d|� �� W n Y g d�}|D ]
} d | }t�||� �q@W d!S t�yl }
ztj�t|
�� W Y d }
~
dS d }
~
ww )"Nzgroupadd nobodyzusermod -a -G nobody nobodyzsystemctl stop lswsr )�
ACLManagerz5wget https://www.litespeedtech.com/packages/6.0/lsws-z-ent-aarch64-linux.tar.gzz-ent-x86_64-linux.tar.gzz/usr/local/CyberCP/lsws-6.0/z/usr/local/CyberCP/lsws-6.0z/usr/local/CyberCP/lsws-�/z
tar zxf lsws-z/-ent-aarch64-linux.tar.gz -C /usr/local/CyberCPz.-ent-x86_64-linux.tar.gz -C /usr/local/CyberCP�trialz2wget -q --output-document=/usr/local/CyberCP/lsws-z>/trial.key http://license.litespeedtech.com/reseller/trial.keyz
/serial.no�wz4/usr/local/CyberCP/serverStatus/litespeed/install.shz6/usr/local/CyberCP/serverStatus/litespeed/functions.shzchmod +x install.shzchmod +x functions.shz./install.shz/usr/local/lsws/conf/z:/usr/local/CyberCP/serverStatus/litespeed/httpd_config.xmlz5/usr/local/CyberCP/serverStatus/litespeed/modsec.confz4/usr/local/CyberCP/serverStatus/litespeed/httpd.conf�chown -R lsadm:lsadm )z%/usr/local/lsws/conf/httpd_config.xmlz /usr/local/lsws/conf/modsec.confz/usr/local/lsws/conf/httpd.confzchmod 644 %sr )r �getcwdr r( �plogical.aclrL rK �ISARMr r �shutil�rmtree�open�
writelines�close�copy�chdirr r! �shlexr2 �rmdirr"