feat(backend/server.py): add placeholder backend
This commit is contained in:
48
src/judas_server/backend/server.py
Normal file
48
src/judas_server/backend/server.py
Normal file
@@ -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)
|
||||||
Reference in New Issue
Block a user