Monitoring Intel VROC with rstcli

@beli3005 looks like there is a bug in the parse function of rstcli check plugin.

 95 def parse_rstcli(info):
 96     if info == [["rstcli not found"]]:
 97         return {}
 98 
 99     rstcli_sections = parse_rstcli_sections(info)
100     if rstcli_sections is None:
101         return {}
102 
103     volumes = {}
104     for section in rstcli_sections:
105         if section[0] == "VOLUME INFORMATION":
106             volumes.update(parse_rstcli_volumes(section[1]))
107         elif section[0].startswith("DISKS IN VOLUME"):
108             volume = section[0].split(":")[1].strip()
109             volumes[volume]["Disks"] = parse_rstcli_disks(section[1])
110         else:
111             raise MKGeneralException("invalid section in rstcli output: %s" % section[0])
112 
113     return volumes

line 106

106             volumes = parse_rstcli_volumes(section[1])

needs to be changed to

106             volumes.update(parse_rstcli_volumes(section[1]))

after tis change the check will discover three volumes with two disks each

RAID Disk SSD-NVME/1-0-0-0 Normal (unit: SSD-NVME, size: 3576.98 GB, type: NVMe*, model: Micron_7300_XXXXXX, serial: 20999D9C999A)
RAID Disk SSD-NVME/1-0-1-0 Normal (unit: SSD-NVME, size: 3576.98 GB, type: NVMe*, model: Micron_7300_XXXXXXTDF, serial: 20992D9C99XX)
RAID Disk SSD-SATA/0-0-0-0 Normal (unit: SSD-SATA, size: 3576.98 GB, type: SATA, model: SAMSUNG MZ99999999-00A07, serial: S6ER99999996)
RAID Disk SSD-SATA/0-1-0-0 Normal (unit: SSD-SATA, size: 3576.98 GB, type: SATA, model: SAMSUNG MZ79999999999-00A07, serial: S6ER999999949)
RAID Disk System/0-0-0-0 Normal (unit: System, size: 3576.98 GB, type: SATA, model: SAMSUNG MZ799999999999BLT-00A07, serial: S6E9999999999996)
RAID Disk System/0-1-0-0 Normal (unit: System, size: 3576.98 GB, type: SATA, model: SAMSUNG MZ9999999T-00A07, serial: S6E999999999)
RAID Volume SSD-NVME RAID 1, 2 disks (3398.13 GB), state Normal
RAID Volume SSD-SATA RAID 1, 2 disks (3276.97 GB), state Normal
RAID Volume System   RAID 1, 2 disks (300.00 GB), state Normal

4 Likes