diff --git a/src/judas_server/backend/server.py b/src/judas_server/backend/server.py new file mode 100644 index 0000000..1011338 --- /dev/null +++ b/src/judas_server/backend/server.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +from __future__ import annotations + +from typing import Any + +import logging as lg +import random as rn +import threading +import time + + +class BackendServer: + def __init__(self) -> None: + self.logger: lg.Logger = lg.getLogger( + f"{__name__}.{self.__class__.__name__}" + ) + self.logger.debug("Initializing Server...") + + # TODO: add socket logic here + + self.clients: dict[str, dict[str, dict[str, Any]]] = { + "C_01": { + "one_time": { + "hostname": "mock-host", + "platform": "windows 11", + "cpu_info": "i7", + }, + "polled": {"cpu_usage": 0, "mem_usage": 0}, + "ondemand": {}, + } + } + + self.running: bool = False + + def start_polling(self) -> None: + self.running = True + + def _poll_loop(self) -> None: + while self.running: + for client in self.clients.values(): + client["polled"]["cpu"] = round(rn.uniform(0, 100), 1) + client["polled"]["ram"] = round(rn.uniform(0, 100), 1) + time.sleep(1) + + def get_client_data( + self, client_id: str + ) -> dict[str, dict[str, Any]] | None: + return self.clients.get(client_id, None)