From 07e4823f966b973e2d8632b65612c064a9c74d02 Mon Sep 17 00:00:00 2001 From: nicolargo Date: Sun, 19 Jan 2025 19:37:13 +0100 Subject: [PATCH] Work in progress on CPU Plugin --- glances/data_class.py | 17 +++++++++++++++++ glances/plugins/cpu/data_class.py | 26 ++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 glances/data_class.py create mode 100644 glances/plugins/cpu/data_class.py diff --git a/glances/data_class.py b/glances/data_class.py new file mode 100644 index 00000000..88d20b47 --- /dev/null +++ b/glances/data_class.py @@ -0,0 +1,17 @@ +from typing import Optional + +from pydantic import BaseModel + + +class GlancesStatsModel(BaseModel): + name: Optional[str] = None + description: Optional[str] = None + time_since_update: Optional[int] = None + + +# from pydantic import conlist + + +# class Foo(BaseModel): +# # these were named min_length and max_length in Pydantic v1.10 +# fixed_size_list_parameter: conlist(float, min_length=4, max_length=4) diff --git a/glances/plugins/cpu/data_class.py b/glances/plugins/cpu/data_class.py new file mode 100644 index 00000000..9bc5b92a --- /dev/null +++ b/glances/plugins/cpu/data_class.py @@ -0,0 +1,26 @@ +from typing import Optional + +from glances.data_class import GlancesStatsModel + + +class Stats(GlancesStatsModel): + total: Optional[float] = None + system: Optional[float] = None + user: Optional[float] = None + iowait: Optional[float] = None + dpc: Optional[float] = None + idle: Optional[float] = None + irq: Optional[float] = None + nice: Optional[float] = None + steal: Optional[float] = None + guest: Optional[float] = None + ctx_switches: Optional[int] = None + interrupt: Optional[int] = None + soft_interrupts: Optional[int] = None + syscalls: Optional[int] = None + cpucore: Optional[int] = None + + # Do no work... + def __post_init__(self): + self.name = 'cpu' + self.description = 'CPU stats'