ok

Mini Shell

Direktori : /proc/thread-self/root/opt/cloudlinux/venv/lib/python3.11/site-packages/xray/
Upload File :
Current File : //proc/thread-self/root/opt/cloudlinux/venv/lib/python3.11/site-packages/xray/shared_library.py

# -*- coding: utf-8 -*-
# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2021 All Rights Reserv
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENSE.TXT
"""
This module contains X-ray objects that we pass
to other projects (such as SSA) for reuse
"""
import json
from typing import Optional

from xray.manager import initialize_manager
from xray.internal.exceptions import XRayError, XRayMissingDomain
from xray.internal.nginx_utils import NginxUserCache
from xray.internal.utils import read_sys_id
from xray.internal.types import DomainInfo


try:
    xray_manager = initialize_manager(read_sys_id())
except XRayError as e:
    xray_manager = None

# Passing an object to start autotracing
start_autotracing = xray_manager.start_autotracing if xray_manager else None


def tasks_list():
    """Returns list of current tasks"""
    try:
        return json.loads(xray_manager.tasks_list())['data']['result']
    except (json.JSONDecodeError, AttributeError, KeyError, XRayError):
        return list()


def domain_info(domain_name: str) -> Optional[DomainInfo]:
    """
    Passing an object to retrieve information about
    given domain from control panel environment
    """
    try:
        return xray_manager.get_domain_info(domain_name)
    except (AttributeError, XRayMissingDomain):
        # if there is no such domain name among the existing ones
        return None

Zerion Mini Shell 1.0