%PDF- %PDF-
Direktori : /opt/alt/python37/lib/python3.7/site-packages/clwpos/__pycache__/ |
Current File : //opt/alt/python37/lib/python3.7/site-packages/clwpos/__pycache__/daemon.cpython-37.pyc |
B �4Lb i � @ sx d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl m Z mZmZm Z d dlmZ d dlmZ d dlmZmZ d dlmZ d dlmZ d dlmZmZmZmZ d d lm Z m!Z!m"Z"m#Z# d dl$m%Z% d d l&m'Z' d dl(m)Z) d dl*m+Z+ ed dddg�Z,edd� �Z-ejd�dd�Z.eed�dd��Z/d e0e ee0e0f d�dd�Z1G dd� de'�Z2dd� Z3dS )!� N)�Optional�Dict�Tuple�List)�contextmanager)� namedtuple)�Lock�Thread)�gettext)�cpusers)�get_process_pid�remove_pid_file�write_pid_file�is_litespeed_running)�is_user_redis_alive�kill_all_users_redises�reload_redis_for_user_thread� parse_redises)�WposDaemonBase)�WPOS_DAEMON_SOCKET_FILE)�WposDaemonLockError� User_data� redis_pid�lock�last_reload_timec c s t �d�} dV t �| � dS )z, Context manager for dropping umask r N)�os�umask)�prev� r �>/opt/alt/python37/lib/python3.7/site-packages/clwpos/daemon.py�_umask_0( s r )�returnc C s4 t � �$ t�tj�} | �t� | �� | S Q R X dS )zr Create world-writable socket in given sock_location or reuse existing one :return: socket object N)r �socketZAF_UNIXZbindr Zlisten)Zsockobjr r r �_create_socket2 s r# )r c c s4 | j dd�sttd�d��z | V W d| �� X dS )z= Non-blocking lock implementation for with statement F)Zblockingz/Can't acquire lock. May be it already acquired.)�messageN)�acquirer �_�release)r r r r �non_blocking_lock? s r( )�function�input_parametersc C sF |rdd� |� � D �ng }tjdd| f|�dd�}t�|j�� �d S )Nc S s g | ]\}}|� d |� ��qS )�=r )�.0�key�valuer r r � <listcomp>M s zwhmapi1.<locals>.<listcomp>z/usr/sbin/whmapi1z --output=jsonT)Zcapture_output�data)�items� subprocess�run�json�loads�stdout�decode)r) r* Zinput_parameters_as_list�resultr r r �whmapi1L s r9 c s~ e Zd ZdZdZdZdZdZdZdZ eeeee gZ egZdZd Z � fd d�Zeeed�d d�Zeed�dd�Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zd@ed!�d"d#�Zeed$�d%d&��Zeje eee!e" e!e ef d'�d(d)�Z#eje"ed*�d+d,�Z$eed-�d.d/�Z%eje"eed0�d1d2�Z&ejd3�d4d5�Z'eje"d6�d7d8�Z(ejd3�d9d:�Z)ejd;d'�d<d=�Z*d>d?� Z+� Z,S )A� WposDaemonzW AccelerateWP daemon main class. Socket operations, redis process control, etc z/var/lve/wpos_reload�reloadzget-redis-statuszget-litespeed-statusZphp_get_vhost_versionsZphp_get_installed_versions� � c s2 t � �� i | _g | _d | _d| _d | _d| _d S )Nr T)�super�__init__�_monitoring_users_dictZ_username_list_to_process�_socketZ_reload_uid�_socket_thread�_socket_thread_work)�self)� __class__r r r? k s zWposDaemon.__init__)�user_uid�is_store_last_reload_timer! c C s� y�| j �|�}|dkrd}n|j}t�|�j}t| j||�\}}|d dkrP|S |r�| jr^|sdd}nt � � }t |t� |d�| j |<