Skip to content

Commit 8f6c515

Browse files
authored
Reformat GPU data for HA and add unit test (#35)
* Reformat GPU data for HA and add unit test * Handle missing gpu keys * Fix reformat with black
1 parent 1a64bb8 commit 8f6c515

File tree

2 files changed

+40
-6
lines changed

2 files changed

+40
-6
lines changed

glances_api/__init__.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -183,11 +183,10 @@ async def get_ha_sensor_data(self) -> dict[str, Any]:
183183
if data := self.data.get("gpu"):
184184
sensor_data["gpu"] = {}
185185
for sensor in data:
186-
sensor_data["gpu"][f"GPU_{sensor['gpu_id']}__{sensor['name']}"] = {
187-
"name": sensor["name"],
188-
"temperature": sensor["temperature"],
189-
"mem": sensor["mem"],
190-
"proc": sensor["proc"],
191-
"fan_speed": sensor["fan_speed"] if "fan_speed" in sensor else 0,
186+
sensor_data["gpu"][f"{sensor['name']} (GPU {sensor['gpu_id']})"] = {
187+
"temperature": sensor.get("temperature", 0),
188+
"mem": sensor.get("mem", 0),
189+
"proc": sensor.get("proc", 0),
190+
"fan_speed": sensor.get("fan_speed", 0),
192191
}
193192
return sensor_data

tests/test_responses.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
"""Test the interaction with the Glances API."""
2+
23
from typing import Any
34

45
import pytest
@@ -130,6 +131,26 @@
130131
"key": "mnt_point",
131132
},
132133
],
134+
"gpu": [
135+
{
136+
"key": "gpu_id",
137+
"gpu_id": 0,
138+
"name": "NVIDIA GeForce RTX 4080",
139+
"mem": 13.333489176233513,
140+
"proc": 12,
141+
"temperature": 38,
142+
"fan_speed": 30,
143+
},
144+
{
145+
"key": "gpu_id",
146+
"gpu_id": 1,
147+
"name": "NVIDIA GeForce RTX 3080",
148+
"mem": 8.41064453125,
149+
"proc": 26,
150+
"temperature": 51,
151+
"fan_speed": 0,
152+
},
153+
],
133154
"mem": {
134155
"total": 3976318976,
135156
"available": 2878337024,
@@ -266,6 +287,20 @@
266287
"docker": {"docker_active": 2, "docker_cpu_use": 77.2, "docker_memory_use": 1149.6},
267288
"uptime": "3 days, 10:25:20",
268289
"percpu": {"0": {"cpu_use_percent": 22.1}, "1": {"cpu_use_percent": 17.2}},
290+
"gpu": {
291+
"NVIDIA GeForce RTX 4080 (GPU 0)": {
292+
"mem": 13.333489176233513,
293+
"proc": 12,
294+
"temperature": 38,
295+
"fan_speed": 30,
296+
},
297+
"NVIDIA GeForce RTX 3080 (GPU 1)": {
298+
"mem": 8.41064453125,
299+
"proc": 26,
300+
"temperature": 51,
301+
"fan_speed": 0,
302+
},
303+
},
269304
}
270305

271306

0 commit comments

Comments
 (0)