Skip to content

Commit 8990a89

Browse files
committed
updates
1 parent 42d526c commit 8990a89

File tree

3 files changed

+29
-14
lines changed

3 files changed

+29
-14
lines changed

nodescraper/plugins/inband/nvme/nvme_collector.py

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
# SOFTWARE.
2424
#
2525
###############################################################################
26+
from pydantic import ValidationError
2627

2728
from nodescraper.base import InBandDataCollector
2829
from nodescraper.enums import EventCategory, EventPriority, ExecutionStatus, OSFamily
@@ -61,34 +62,46 @@ def collect_data(
6162
"nvme smart-log /dev/nvme0",
6263
"nvme error-log /dev/nvme0 --log-entries=256",
6364
"nvme id-ctrl /dev/nvme0",
64-
"nvme id-ns /dev/nvme0",
65+
"nvme id-ns /dev/nvme0n1",
6566
"nvme fw-log /dev/nvme0",
6667
"nvme self-test-log /dev/nvme0",
67-
"nvme telemetry-log /dev/nvme0",
68+
"nvme get-log /dev/nvme0 --log-id=6 --log-len=512",
6869
]
6970

7071
for cmd in commands:
71-
res = self._run_sut_cmd(cmd)
72+
res = self._run_sut_cmd(cmd, sudo=True)
7273
if res.exit_code == 0:
7374
data[cmd] = res.stdout
7475
else:
7576
self._log_event(
7677
category=EventCategory.SW_DRIVER,
77-
description="Failed to execute NVMe command",
78+
description=f"Failed to execute NVMe command: '{cmd}'",
7879
data={"command": cmd, "exit_code": res.exit_code},
7980
priority=EventPriority.ERROR,
8081
console_log=True,
8182
)
8283

84+
nvme_data = None
8385
if data:
84-
nvme_data = NvmeDataModel(nvme_data=data)
85-
self._log_event(
86-
category=EventCategory.SW_DRIVER,
87-
description="Collected NVMe data",
88-
data=nvme_data.model_dump(),
89-
priority=EventPriority.INFO,
90-
)
91-
self.result.message = "NVMe data successfully collected"
86+
try:
87+
nvme_data = NvmeDataModel(nvme_data=data)
88+
except ValidationError as e:
89+
self._log_event(
90+
category=EventCategory.SW_DRIVER,
91+
description="Validation error while building NvmeDataModel",
92+
data={"error": str(e)},
93+
priority=EventPriority.CRITICAL,
94+
)
95+
self.result.message = "NVMe data invalid format"
96+
self.result.status = ExecutionStatus.ERROR
97+
# nvme_data = NvmeDataModel(nvme_data=data)
98+
# self._log_event(
99+
# category=EventCategory.SW_DRIVER,
100+
# description="Collected NVMe data",
101+
# data=nvme_data.model_dump(),
102+
# priority=EventPriority.INFO,
103+
# )
104+
# self.result.message = "NVMe data successfully collected"
92105
else:
93106
nvme_data = None
94107
self._log_event(

nodescraper/plugins/inband/nvme/nvme_plugin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
from .nvmedata import NvmeDataModel
3030

3131

32-
class NvmePlugin(InBandDataPlugin[NvmeDataModel, None]):
32+
class NvmePlugin(InBandDataPlugin[NvmeDataModel, None, None]):
3333
"""Plugin for collection and analysis of nvme data"""
3434

3535
DATA_MODEL = NvmeDataModel

nodescraper/plugins/inband/nvme/nvmedata.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,10 @@
2323
# SOFTWARE.
2424
#
2525
###############################################################################
26+
from typing import Any
27+
2628
from nodescraper.models import DataModel
2729

2830

2931
class NvmeDataModel(DataModel):
30-
data: dict
32+
data: dict[str, Any]

0 commit comments

Comments
 (0)