????JFIF??x?x????'
| Server IP : 104.21.30.238 / Your IP : 216.73.216.87 Web Server : LiteSpeed System : Linux premium151.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : tempvsty ( 647) PHP Version : 8.0.30 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/cl_website_collector/ |
Upload File : |
# -*- coding: utf-8 -*-
#
# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2024 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENSE.TXT
import os
from copy import deepcopy
import requests
class FeatureManagerApiException(Exception):
pass
class FeatureManager:
"""
Communicates with FeatureManager API to get feature settings based on server metadata
"""
def __init__(self, app_logger):
self.api_url = self.base_url() + "/feature_manager/feature_settings"
self.app_logger = app_logger
@staticmethod
def base_url() -> str:
base_url = "https://x-ray-advice.cloudlinux.com"
if os.path.exists("/opt/cloudlinux/staging_mode"):
base_url = "https://x-ray-staging.cloudlinux.com"
return base_url
def request(self, payload):
response = requests.get(self.api_url, json=payload, timeout=20)
self.app_logger.info(f"FeatureManager request to {self.api_url} "
f"with payload {payload} "
f"returned {response.status_code}")
if response.status_code != 200:
raise FeatureManagerApiException(f"FeatureManager API returned {response.status_code}")
return response.json()
def get_decision(self, server_metadata, reason):
payload = deepcopy(server_metadata)
payload["reason"] = reason
return self.request(payload)