Current File : //opt/imunify360/venv/lib64/python3.11/site-packages/defence360agent/subsys/persistent_state.py |
import json
from logging import getLogger
from pathlib import Path
logger = getLogger(__name__)
BASE_DIR = Path("/var/imunify360")
PERSISTENT_STATE_DIR = BASE_DIR / ".persistent_state"
def save_state(class_name: str, values: dict):
"""Save state to a file in .persistent_state folder."""
folder_path = PERSISTENT_STATE_DIR
try:
folder_path.mkdir(parents=True, exist_ok=True)
file_path = folder_path / f"{class_name}.state"
json.dump(values, file_path.open("w"))
except (AttributeError, OSError) as e:
logger.error("Failed to save state: %s %s", class_name, e)
def load_state(class_name) -> dict:
"""Load state from a file in .persistent_state folder."""
folder_path = PERSISTENT_STATE_DIR
file_path = folder_path / f"{class_name}.state"
if file_path.exists():
try:
return json.load(file_path.open("r"))
except (json.JSONDecodeError, OSError, UnicodeDecodeError) as e:
logger.error("Failed to load state: %s %s", class_name, e)
return dict()