/
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
xray
/
Upload Filee
HOME
# -*- 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