File: //opt/imunify360/venv/lib64/python3.11/site-packages/defence360agent/subsys/panels/hosting_panel.py
from defence360agent.application.determine_hosting_panel import (
get_hosting_panel,
)
from defence360agent.subsys.panels.base import AbstractPanel
from defence360agent.utils import importer
def _default_panel_root() -> str:
"""Use im360 panel classes when the im360 package is installed."""
if importer.exists("im360"):
return "im360"
return "defence360agent"
_panel_root = _default_panel_root()
panel = None
def set_panel_root(root_module: str) -> None:
global _panel_root, panel
_panel_root = root_module
panel = None # reset so next HostingPanel() call uses new root
def HostingPanel(check_for_changes=False) -> AbstractPanel:
"""
Return the hosting panel singleton.
Panels are loaded from ``_panel_root`` which auto-detects the correct
package (``im360`` when installed, ``defence360agent`` otherwise).
Can be overridden via ``set_panel_root``.
"""
global panel
if panel is None or check_for_changes:
panel = get_hosting_panel(_panel_root)
return panel