@@ -39,6 +39,19 @@ class NvmeCollector(InBandDataCollector[NvmeDataModel, None]):
3939 """Collect NVMe details from the system."""
4040
4141 DATA_MODEL = NvmeDataModel
42+ CMD_LINUX = {
43+ "smart_log" : "nvme smart-log {dev}" ,
44+ "error_log" : "nvme error-log {dev} --log-entries=256" ,
45+ "id_ctrl" : "nvme id-ctrl {dev}" ,
46+ "id_ns" : "nvme id-ns {dev}{ns}" ,
47+ "fw_log" : "nvme fw-log {dev}" ,
48+ "self_test_log" : "nvme self-test-log {dev}" ,
49+ "get_log" : "nvme get-log {dev} --log-id=6 --log-len=512" ,
50+ "telemetry_log" : "nvme telemetry-log {dev} --output-file={dev}_{f_name}" ,
51+ }
52+ CMD_TEMPLATES = list (CMD_LINUX .values ())
53+
54+ TELEMETRY_FILENAME = "telemetry_log.bin"
4255
4356 def collect_data (
4457 self ,
@@ -71,25 +84,20 @@ def collect_data(
7184 return self .result , None
7285
7386 all_device_data = {}
74- f_name = "telemetry_log.bin"
87+ f_name = self . TELEMETRY_FILENAME
7588
7689 for dev in nvme_devices :
7790 device_data = {}
78- CMD = {
79- "smart_log" : f"nvme smart-log { dev } " ,
80- "error_log" : f"nvme error-log { dev } --log-entries=256" ,
81- "id_ctrl" : f"nvme id-ctrl { dev } " ,
82- "id_ns" : f"nvme id-ns { dev } n1" ,
83- "fw_log" : f"nvme fw-log { dev } " ,
84- "self_test_log" : f"nvme self-test-log { dev } " ,
85- "get_log" : f"nvme get-log { dev } --log-id=6 --log-len=512" ,
86- "telemetry_log" : f"nvme telemetry-log { dev } --output-file={ dev } _{ f_name } " ,
91+ ns_suffix = "n1"
92+ cmd_map = {
93+ k : v .format (dev = dev , ns = ns_suffix , f_name = f_name ) for k , v in self .CMD_LINUX .items ()
8794 }
8895
89- for key , cmd in CMD .items ():
96+ for key , cmd in cmd_map .items ():
9097 res = self ._run_sut_cmd (cmd , sudo = True )
9198 if "--output-file" in cmd :
9299 _ = self ._read_sut_file (filename = f"{ dev } _{ f_name } " , encoding = None )
100+
93101 if res .exit_code == 0 :
94102 device_data [key ] = res .stdout
95103 else :
@@ -128,6 +136,7 @@ def collect_data(
128136 self .result .status = ExecutionStatus .OK
129137 return self .result , nvme_data
130138 else :
139+
131140 self ._log_event (
132141 category = EventCategory .SW_DRIVER ,
133142 description = "Failed to collect any NVMe data" ,
0 commit comments