hjkhjkjhkhjkgjghjhgjhgjghjhghjghjhgjjnbvnvbnvk
bnmbnmbnhjkhjkhjkhjktyutyutyuytutyutyutyhgjgjghjgjghjguytutyry
/
opt
/
alt
/
python37
/
lib
/
python3.7
/
site-packages
/
xray
/
adviser
/
__pycache__
/
Upload FileeE
HOME
B �'Udi � @ s� d Z ddlZddlZddlZddlZddlZddlmZ ddlm Z ddl mZ ddlm Z ddlmZ dd lmZ e�d �ZG dd� d�ZdS ) zG This module contains a wrapper around `clwpos-user get` local utility � N)�Optional)�Feature)�is_panel_feature_supported)�CloudlinuxSummary� )� get_client)�NginxUserCacheZclwpos_utilc @ s� e Zd ZdZeedd�dd�Zeeed�dd��Ze e e d �d d��Ze ed �dd ��Zeee e d�dd�Zeee d�dd�Zeed �dd��Zee dd�dd��ZdS )�ClWposGetterz/usr/bin/clwpos-userN)�username�domain�returnc C sV | � |�rt�d� dS | �||�}t�dt|�� |rD| �|� nt�d||� dS )z8Construct and POST metadata to Smart Advice microservicez)ea-nginx detected, skipping metadata sendNzGot WPOS: %sz4Metadata for user %s with domain %s will not be sent)�nginx_cache_for_user�logger�info�construct_metadata�debug�str�send�warning)�selfr r � json_data� r �H/opt/alt/python37/lib/python3.7/site-packages/xray/adviser/clwpos_get.py� post_metadata s zClWposGetter.post_metadata)r r c C s t | �jS )z9 Check nginx cache status for given user )r � is_enabled)r r r r r + s z!ClWposGetter.nginx_cache_for_user)r c C s t tj�sdS dS )z0Special hack for executing user commands on Soloz%sudo -u %(username)s -s /bin/bash -cN)r r �CAGEFS)r r r r �wrapper2 s zClWposGetter.wrapperc C s( t tj�s| j� d�S d| j� d�S dS )zResolve command to executez scan --website %(website)sz%/sbin/cagefs_enter_user %(username)s N)r r r �util)r r r r �cmd8 s zClWposGetter.cmd)r � domainnamer c C s. t j�| j�sdS | jdk rH| j||d� �� }|�| j||d� � n| j||d� �� }ytj |ddd�}W n: t ttjfk r� } zt �d| j|� dS d}~X Y nX |jdkr�t �d| jtt|dd��tt|d d��� dS yt�|j�� �S tjk �r( t �d | jtt|dd��� dS X dS )z< External call of `clwpos-user get` utility N)r �websiteT)�capture_output�textzError running %s: %sr z9Metadata collection via %s failed. stdout: %s, stderr: %s�stdout�stderrz8Invalid JSON from %s for metadata collection. stdout: %s)�os�path�isfiler r �split�appendr � subprocess�run�OSError� ValueError�SubprocessErrorr �error� returncoder �getattr�json�loadsr# �strip�JSONDecodeError)r r r �_exec�result�er r r �utility@ s0 zClWposGetter.utilityc sD d}| � ||�� � dk r@||� fdd�� d �� D �| �� d�}|S )zX Ensure format accepted by Smart Advice POST requests/metadata endpoint Nc s. g | ]&\}}t d |� �� d �|g �d��qS )�/�issues)r&