diff --git a/checkpoint_soft_raid.mkp b/checkpoint_soft_raid.mkp index 29497dc04883b520198b3a93a90b8932d8a14a85..ade24da85a2b59d905cf4c2ec25188fb45f391a9 100644 Binary files a/checkpoint_soft_raid.mkp and b/checkpoint_soft_raid.mkp differ diff --git a/checks/checkpoint_soft_raid b/checks/checkpoint_soft_raid index 40eca2346c62e045d754d8debc3f87930245f067..2844c5cc38b6d7ef59faca118a5d7dffc0b3674d 100644 --- a/checks/checkpoint_soft_raid +++ b/checks/checkpoint_soft_raid @@ -238,14 +238,19 @@ def check_checkpoint_soft_raid(item, params, parse): longoutput += 'Flags: %s' % getflags(volume.get('volumeflags'), raidvolumeflags) # disk infos + disks_in_array = 0 + disks_online = 0 + disks_ignored = 0 for disk in disks: diskid = disk.get('diskid') if not str(diskid) in ignore_disks: + disks_in_array += 1 syncstate = disk.get('disksyncstate') if disk.get('diskstate') != 0: yield 2, 'Disk ID: %d state: %s' % (diskid, raiddiskstate.get(disk.get('diskstate'))) else: - yield 0, 'Disk ID %d state %s' % (diskid, raiddiskstate.get(disk.get('diskstate'))) + # yield 0, 'Disk ID %d state %s' % (diskid, raiddiskstate.get(disk.get('diskstate'))) + disks_online += 1 longoutput += '\n%s disk (id %d): ' % (raiddiskid.get(diskid), diskid) longoutput += 'State: %s, ' % raiddiskstate.get(disk.get('diskstate')) @@ -258,10 +263,20 @@ def check_checkpoint_soft_raid(item, params, parse): longoutput += 'Flags: %s' % getflags(disk.get('diskflags'), raiddiskflags) # perfdata.append(('disk_id_%d' % diskid, syncstate, None, None, 0, 100)) + else: + disks_ignored += 1 # remove last ', ' # infotext = infotext[:-2] + if disks_in_array == disks_online: + yield 0, '%d/%d Disks online' % (disks_online, disks_in_array) + else: + yield 2, '%d/%d Disks online' % (disks_online, disks_in_array) + + if disks_ignored > 0: + yield 0, '%d Disks ignored' % disks_ignored + yield 0, infotext + longoutput # , perfdata