����JFIF��x�x����'
| Server IP : 78.140.185.180 / Your IP : 216.73.216.132 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 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)