From d3ccfa3731e71a9307807ee7631cb0729c237602 Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Mon, 11 May 2015 16:30:16 -0400 Subject: [PATCH] Flesh out and rework some sensor descriptions While implementing events, it suggests that the severity and deassertion of events warrants a distinct set of enumeration. Additionally, the structure made it clear that many of the sensor offsets and their sensor_type indicated strings were redundant with each other, and language was changed to eliminate that redundancy. Change-Id: I1c2f733c4ffb1e7ac2ad8b1004bd560487117b66 --- pyghmi/ipmi/private/constants.py | 821 +++++++++++++++++++++++++------ 1 file changed, 670 insertions(+), 151 deletions(-) diff --git a/pyghmi/ipmi/private/constants.py b/pyghmi/ipmi/private/constants.py index 4b0136f9..0d911bbf 100644 --- a/pyghmi/ipmi/private/constants.py +++ b/pyghmi/ipmi/private/constants.py @@ -47,7 +47,7 @@ sensor_type_codes = { 0xc: 'Memory', 0xd: 'Drive Bay', 0xe: 'POST Memory Resize', - 0xf: 'System Firmware Progress', + 0xf: 'System Firmware', 0x10: 'Event Log Disabled', 0x11: 'Watchdog', 0x12: 'System Event', @@ -74,7 +74,7 @@ sensor_type_codes = { 0x27: 'LAN', 0x28: 'Management Subsystem Health', 0x29: 'Battery', - 0x2a: 'Session Audit', + 0x2a: 'Session', 0x2b: 'Version Change', 0x2c: 'FRU State', } @@ -96,254 +96,368 @@ generic_type_offsets = { # and in the context of event log, it should be better discerned # from the pattern of prior events 0: { - 'desc': 'Lower Non-critical', # - going low', + 'desc': 'Lower non-critical', # - going low', 'severity': const.Health.Warning, + 'deassertion_desc': 'Lower Non-critical deasserted', + 'deassertion_severity': const.Health.Ok, }, 1: { - 'desc': 'Lower Non-critical', # - going high', + 'desc': 'Lower non-critical', # - going high', 'severity': const.Health.Warning, + 'deassertion_desc': 'Lower non-critical deasserted', + 'deassertion_severity': const.Health.Ok, }, 2: { 'desc': 'Lower Critical', # - going low', 'severity': const.Health.Critical, + 'deassertion_desc': 'Lower critical deasserted', + 'deassertion_severity': const.Health.Ok, }, 3: { 'desc': 'Lower Critical', # - going high', 'severity': const.Health.Critical, + 'deassertion_desc': 'Lower critical deasserted', + 'deassertion_severity': const.Health.Ok, }, 4: { - 'desc': 'Lower Non-recoverable', # - going low + 'desc': 'Lower non-recoverable', # - going low 'severity': const.Health.Failed, + 'deassertion_desc': 'Lower non-recoverable deasserted', + 'deassertion_severity': const.Health.Ok, }, 5: { - 'desc': 'Lower Non-recoverable', # - going high + 'desc': 'Lower non-recoverable', # - going high 'severity': const.Health.Failed, + 'deassertion_desc': 'Lower non-recoverable deasserted', + 'deassertion_severity': const.Health.Ok, }, 6: { - 'desc': 'Upper Non-critical', # - going low + 'desc': 'Upper non-critical', # - going low 'severity': const.Health.Warning, + 'deassertion_desc': 'Upper non-critical deasserted', + 'deassertion_severity': const.Health.Ok, }, 7: { - 'desc': 'Upper Non-critical', # - going high + 'desc': 'Upper non-critical', # - going high 'severity': const.Health.Warning, + 'deassertion_desc': 'Upper non-critical deasserted', + 'deassertion_severity': const.Health.Ok, }, 8: { - 'desc': 'Upper Critical', # - going low + 'desc': 'Upper critical', # - going low 'severity': const.Health.Critical, + 'deassertion_desc': 'Upper critical deasserted', + 'deassertion_severity': const.Health.Ok, }, 9: { - 'desc': 'Upper Critical', # - going high + 'desc': 'Upper critical', # - going high 'severity': const.Health.Critical, + 'deassertion_desc': 'Upper critical deasserted', + 'deassertion_severity': const.Health.Ok, }, 0xa: { 'desc': 'Upper non-recoverable', # - going low 'severity': const.Health.Failed, + 'deassertion_desc': 'Upper non-recoverable deasserted', + 'deassertion_severity': const.Health.Ok, }, 0xb: { 'desc': 'Upper non-recoverable', # - going high 'severity': const.Health.Failed, + 'deassertion_desc': 'Upper non-recoverable deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 2: { 0: { 'desc': 'Idle', 'severity': const.Health.Ok, + 'deassertion_desc': 'Idle deasserted', + 'deassertion_severity': const.Health.Ok, }, 1: { 'desc': 'Active', 'severity': const.Health.Ok, + 'deassertion_desc': 'Active deasserted', + 'deassertion_severity': const.Health.Ok, }, 2: { 'desc': 'Busy', 'severity': const.Health.Ok, + 'deassertion_desc': 'Busy deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 3: { 0: { 'desc': 'Deasserted', 'severity': const.Health.Ok, + 'deassertion_desc': 'Asserted', # this would be very peculiar + 'deassertion_severity': const.Health.Ok, }, 1: { 'desc': 'Asserted', 'severity': const.Health.Ok, + 'deassertion_desc': 'Deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 4: { 0: { - 'desc': 'Predictive Failure deasserted', + 'desc': 'Predictive failure deasserted', 'severity': const.Health.Ok, + 'deassertion_desc': 'Predictive failure', + 'deassertion_severity': const.Health.Warning, }, 1: { - 'desc': 'Predictive Failure', + 'desc': 'Predictive failure', 'severity': const.Health.Warning, + 'deassertion_desc': 'Predictive failure deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 5: { 0: { - 'desc': 'Limit Not Exceeded', + 'desc': 'Limit not exceeded', 'severity': const.Health.Ok, + 'deassertion_desc': 'Limit exceeded', + 'deassertion_severity': const.Health.Warning, }, 1: { - 'desc': 'Limit Exceeded', + 'desc': 'Limit exceeded', 'severity': const.Health.Warning, + 'deassertion_desc': 'Limit no longer exceeded', + 'deassertion_severity': const.Health.Ok, }, }, 6: { 0: { - 'desc': 'Performance Met', + 'desc': 'Performance met', 'severity': const.Health.Ok, + 'deassertion_desc': 'Performance lags', + 'deassertion_severity': const.Health.Warning, }, 1: { - 'desc': 'Perfermance Lags', + 'desc': 'Perfermance lags', 'severity': const.Health.Warning, + 'deassertion_desc': 'Performance no longer lags', + 'deassertion_severity': const.Health.Ok, }, }, 7: { 0: { 'desc': 'Ok', 'severity': const.Health.Ok, + 'deassertion_desc': 'Not ok', + 'deassertion_severity': const.Health.Warning, }, 1: { 'desc': 'Non-Critical', 'severity': const.Health.Warning, + 'deassertion_desc': 'Non-critical deasserted', + 'deassertion_severity': const.Health.Ok, }, 2: { 'desc': 'Critical', 'severity': const.Health.Critical, + 'deassertion_desc': 'Critical deasserted', + 'deassertion_severity': const.Health.Ok, }, 3: { 'desc': 'Non-recoverable', 'severity': const.Health.Failed, + 'deassertion_desc': 'Non-recoverable deasserted', + 'deassertion_severity': const.Health.Ok, }, 4: { - 'desc': 'Non-Critical', + 'desc': 'Non-critical', 'severity': const.Health.Warning, + 'deassertion_desc': 'Non-critical deasserted', + 'deassertion_severity': const.Health.Ok, }, 5: { 'desc': 'Critical', 'severity': const.Health.Critical, + 'deassertion_desc': 'Critical deasserted', + 'deassertion_severity': const.Health.Ok, }, 6: { 'desc': 'Non-recoverable', 'severity': const.Health.Failed, + 'deassertion_desc': 'Non-recoverable deasserted', + 'deassertion_severity': const.Health.Ok, }, 7: { 'desc': 'Monitor', 'severity': const.Health.Ok, + 'deassertion_desc': 'Monitor deasserted', + 'deassertion_severity': const.Health.Ok, }, 8: { 'desc': 'Informational', 'severity': const.Health.Ok, + 'deassertion_desc': 'Informational deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 8: { 0: { 'desc': 'Absent', 'severity': const.Health.Ok, + 'deassertion_desc': 'Present', + 'deassertion_severity': const.Health.Ok, }, 1: { 'desc': 'Present', 'severity': const.Health.Ok, + 'deassertion_desc': 'Absent', + 'deassertion_severity': const.Health.Ok, }, }, 9: { 0: { 'desc': 'Disabled', 'severity': const.Health.Ok, + 'deassertion_desc': 'Enabled', + 'deassertion_severity': const.Health.Ok, }, 1: { 'desc': 'Enabled', 'severity': const.Health.Ok, + 'deassertion_desc': 'Disabled', + 'deassertion_severity': const.Health.Ok, }, }, 0xa: { 0: { 'desc': 'Running', 'severity': const.Health.Ok, + 'deassertion_desc': 'Running deasserted', + 'deassertion_severity': const.Health.Ok, }, 1: { - 'desc': 'In Test', + 'desc': 'In test', 'severity': const.Health.Ok, + 'deassertion_desc': 'In test deasserted', + 'deassertion_severity': const.Health.Ok, }, 2: { 'desc': 'Power off', 'severity': const.Health.Ok, + 'deassertion_desc': 'Power off deasserted', + 'deassertion_severity': const.Health.Ok, }, 3: { 'desc': 'Online', 'severity': const.Health.Ok, + 'deassertion_desc': 'Online deasserted', + 'deassertion_severity': const.Health.Ok, }, 4: { 'desc': 'Offline', 'severity': const.Health.Critical, + 'deassertion_desc': 'Offline deasserted', + 'deassertion_severity': const.Health.Ok, }, 5: { 'desc': 'Off duty', 'severity': const.Health.Ok, + 'deassertion_desc': 'Off duty deasserted', + 'deassertion_severity': const.Health.Ok, }, 6: { 'desc': 'Degraded', 'severity': const.Health.Critical, + 'deassertion_desc': 'Degraded deasserted', + 'deassertion_severity': const.Health.Ok, }, 7: { - 'desc': 'Power Save', + 'desc': 'Power save', 'severity': const.Health.Ok, + 'deassertion_desc': 'Power save deasserted', + 'deassertion_severity': const.Health.Ok, }, 8: { - 'desc': 'Install Error', + 'desc': 'Install error', 'severity': const.Health.Critical, + 'deassertion_desc': 'Install error deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 0xb: { 0: { 'desc': 'Redundant', 'severity': const.Health.Ok, + 'deassertion_desc': 'Redundant lost', + 'deassertion_severity': const.Health.Ok, }, 1: { - 'desc': 'Not Redundant', + 'desc': 'Not redundant', # redundancy lost 'severity': const.Health.Warning, + 'deassertion_desc': 'Redondancy restored', + 'deassertion_severity': const.Health.Ok, }, 2: { 'desc': 'Redundancy degraded', 'severity': const.Health.Warning, + 'deassertion_desc': 'Redundancy restored', + 'deassertion_severity': const.Health.Ok, }, 3: { - 'desc': 'Not Redundant', - 'severity': const.Health.Ok, + 'desc': 'Not redundant', # down to non redundant + 'severity': const.Health.Warning, + 'deassertion_desc': 'Redundancy restored', + 'deassertion_severity': const.Health.Ok, }, 4: { - 'desc': 'Not Redundant', + 'desc': 'Not Redundant', # it has come back, but not redundant 'severity': const.Health.Warning, + 'deassertion_desc': 'Redundancy restored', + 'deassertion_severity': const.Health.Ok, }, 5: { - 'desc': 'Degraded', + 'desc': 'Degraded', # abnormal operation 'severity': const.Health.Critical, + 'deassertion_desc': 'Present', + 'deassertion_severity': const.Health.Ok, }, 6: { 'desc': 'Redundancy degraded', 'severity': const.Health.Warning, + 'deassertion_desc': 'Redundancy restored', + 'deassertion_severity': const.Health.Ok, }, 7: { 'desc': 'Redundancy degraded', 'severity': const.Health.Warning, + 'deassertion_desc': 'Redundancy restored', + 'deassertion_severity': const.Health.Ok, }, }, 0xc: { 0: { 'desc': 'ACPI D0', 'severity': const.Health.Ok, + 'deassertion_desc': 'ACPI D0 deasserted', + 'deassertion_severity': const.Health.Ok, }, 1: { 'desc': 'ACPI D1', 'severity': const.Health.Ok, + 'deassertion_desc': 'ACPI D1 deasserted', + 'deassertion_severity': const.Health.Ok, }, 2: { 'desc': 'ACPI D2', 'severity': const.Health.Ok, + 'deassertion_desc': 'ACPI D2 deasserted', + 'deassertion_severity': const.Health.Ok, }, 3: { 'desc': 'ACPI D3', 'severity': const.Health.Ok, + 'deassertion_desc': 'ACPI D3 deasserted', + 'deassertion_severity': const.Health.Ok, }, }, } @@ -351,913 +465,1318 @@ generic_type_offsets = { sensor_type_offsets = { # For the security sensors, we assume if armed, # the operator considers these to be critical situations + # Even though many of these would never reasonably be 'deasserted', provide + # some language that hypothetically would make sense if it were ever + # observed 5: { 0: { - 'desc': 'General Chassis Intrusion', + 'desc': 'General', 'severity': const.Health.Critical, + 'deassertion_desc': 'Deasserted', + 'deassertion_severity': const.Health.Ok, }, 1: { - 'desc': 'Drive Bay intrusion', + 'desc': 'Drive Bay', 'severity': const.Health.Critical, + 'deassertion_desc': 'Drive Bay deasserted', + 'deassertion_severity': const.Health.Ok, }, 2: { - 'desc': 'I/O Card area intrusion', + 'desc': 'I/O card area', 'severity': const.Health.Critical, + 'deassertion_desc': 'I/O card area deasserted', + 'deassertion_severity': const.Health.Ok, }, 3: { - 'desc': 'Processor area intrusion', + 'desc': 'Processor area', 'severity': const.Health.Critical, + 'deassertion_desc': 'Processor area deasserted', + 'deassertion_severity': const.Health.Ok, }, 4: { - 'desc': 'Lost LAN connection', + 'desc': 'Lost LAN', 'severity': const.Health.Critical, + 'deassertion_desc': 'LAN restored', + 'deassertion_severity': const.Health.Ok, }, 5: { 'desc': 'Unauthorized dock', 'severity': const.Health.Critical, + 'deassertion_desc': 'Unauthorized dock deasserted', + 'deassertion_severity': const.Health.Ok, }, 6: { - 'desc': 'Fan area intrusion', + 'desc': 'Fan area', 'severity': const.Health.Critical, + 'deassertion_desc': 'Fan area deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 6: { 0: { 'desc': 'Front Panel Lockout Violation attempt', 'severity': const.Health.Critical, + 'deassertion_desc': 'Front Panel Lockout deasserted', + 'deassertion_severity': const.Health.Ok, }, 1: { 'desc': 'Pre-boot password violation - user', 'severity': const.Health.Critical, + 'deassertion_severity': const.Health.Ok, + 'deassertion_desc': 'Boot Password violation deasserted', }, 2: { 'desc': 'Pre-boot password violation - setup', 'severity': const.Health.Critical, + 'deassertion_desc': 'Setup password violation deasserted', + 'deassertion_severity': const.Health.Ok, }, 3: { 'desc': 'Pre-boot password violation - netboot', 'severity': const.Health.Critical, + 'deassertion_desc': + 'Pre-boot password violation - netboot deasserted', + 'deassertion_severity': const.Health.Ok, }, 4: { 'desc': 'Pre-boot password violation', 'severity': const.Health.Critical, + 'deassertion_desc': 'Pre-boot password violation deasserted', + 'deassertion_severity': const.Health.Ok, }, 5: { 'desc': 'Out-of-band access password violation', 'severity': const.Health.Critical, + 'deassertion_desc': + 'Out-of-band access password violation deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 7: { 0: { - 'desc': 'Processor IERR', + 'desc': 'Internal Error', 'severity': const.Health.Failed, + 'deassertion_desc': 'Internal Error Recovered', + 'deassertion_severity': const.Health.Ok, }, 1: { - 'desc': 'Processor thermal trip', + 'desc': 'Thermal trip', 'severity': const.Health.Failed, + 'deassertion_desc': 'Thermal trip recovered', + 'deassertion_severity': const.Health.Ok, }, 2: { - 'desc': 'Processor FRB1/BIST failure', + 'desc': 'Self test failure', 'severity': const.Health.Failed, + 'deassertion_desc': 'Self test recovered', + 'deassertion_severity': const.Health.Ok, }, 3: { - 'desc': 'Processor FRB2/Hang in POST failure', + 'desc': 'Hang in POST', 'severity': const.Health.Failed, + 'deassertion_desc': 'Hang in POST recovered', + 'deassertion_severity': const.Health.Ok, + }, 4: { - 'desc': 'Processor FRB3/processor startup failure', + 'desc': 'Startup failure', 'severity': const.Health.Failed, + 'deassertion_desc': 'Startup recovered', + 'deassertion_severity': const.Health.Ok, }, 5: { - 'desc': 'Processor configuration error', + 'desc': 'Configuration error', 'severity': const.Health.Failed, + 'deassertion_desc': 'Configuration error recovered', + 'deassertion_severity': const.Health.Ok, }, 6: { 'desc': 'Uncorrectable cpu complex error', 'severity': const.Health.Failed, + 'deassertion_desc': 'Uncorrectable cpu complex error recovered', + 'deassertion_severity': const.Health.Ok, }, 7: { 'desc': 'Present', 'severity': const.Health.Ok, + 'deassertion_desc': 'Absent', + 'deassertion_severity': const.Health.Ok, }, 8: { 'desc': 'Disabled', 'severity': const.Health.Warning, + 'deassertion_desc': 'Enabled', + 'deassertion_severity': const.Health.Ok, }, 9: { - 'desc': 'Processor terminator presence detected', + 'desc': 'Terminator presence detected', 'severity': const.Health.Ok, + 'deassertion_desc': 'Terminator absent', + 'deassertion_severity': const.Health.Ok, }, 0xa: { - 'desc': 'Processor throttled', + 'desc': 'Throttled', 'severity': const.Health.Warning, + 'deassertion_desc': 'Unthrottled', + 'deassertion_severity': const.Health.Ok, }, 0xb: { 'desc': 'Uncorrectable machine check exception', 'severity': const.Health.Failed, + 'deassertion_desc': 'Uncorrectable machine check recovered', + 'deassertion_severity': const.Health.Ok, }, 0xc: { 'desc': 'Correctable machine check exception', 'severity': const.Health.Warning, + 'deassertion_desc': 'Correctable machine check recovered', + 'deassertion_severity': const.Health.Ok, }, }, 8: { # power supply 0: { 'desc': 'Present', 'severity': const.Health.Ok, + 'deassertion_desc': 'Absent', + 'deassertion_severity': const.Health.Ok, }, 1: { - 'desc': 'Power supply failure', + 'desc': 'Failure', 'severity': const.Health.Critical, + 'deassertion_desc': 'Recovered', + 'deassertion_severity': const.Health.Ok, + }, 2: { - 'desc': 'Power supply predictive failure', + 'desc': 'Predictive failure', 'severity': const.Health.Critical, + 'deassertion_desc': 'Predictive failure recovered', + 'deassertion_severity': const.Health.Ok, }, 3: { - 'desc': 'Power supply input lost', + 'desc': 'Input lost', 'severity': const.Health.Critical, + 'deassertion_desc': 'Input restored', + 'deassertion_severity': const.Health.Ok, }, 4: { - 'desc': 'Power supply input out of range or lost', + 'desc': 'Input out of range or lost', 'severity': const.Health.Critical, + 'deassertion_desc': 'Input in range', + 'deassertion_severity': const.Health.Ok, }, 5: { - 'desc': 'Power supply input out of range', + 'desc': 'Input out of range', 'severity': const.Health.Critical, + 'deassertion_desc': 'Input in range', + 'deassertion_severity': const.Health.Ok, }, 6: { # clarified by SEL/PET event data 3 - 'desc': 'Power supply configuration error', + 'desc': 'Configuration error', 'severity': const.Health.Warning, + 'deassertion_desc': 'Configuration error recovered', + 'deassertion_severity': const.Health.Ok, }, 7: { 'desc': 'Standby', 'severity': const.Health.Ok, + 'deassertion_desc': 'Active', + 'deassertion_severity': const.Health.Ok, }, }, 9: { # power unit 0: { 'desc': 'Power off', 'severity': const.Health.Ok, + 'deassertion_desc': 'Power on', + 'deassertion_severity': const.Health.Ok, }, 1: { 'desc': 'Power cycle', 'severity': const.Health.Ok, + 'deassertion_desc': 'Power cycle deasserted', + 'deassertion_severity': const.Health.Ok, }, 2: { 'desc': '240VA power down', 'severity': const.Health.Warning, + 'deassertion_desc': '240VA power down deasserted', + 'deassertion_severity': const.Health.Ok, }, 3: { 'desc': 'Interlock power down', 'severity': const.Health.Ok, + 'deassertion_desc': 'Interlock power down deasserted', + 'deassertion_severity': const.Health.Ok, }, 4: { 'desc': 'Power input lost', 'severity': const.Health.Warning, + 'deassertion_desc': 'Power input restored', + 'deassertion_severity': const.Health.Ok, }, 5: { 'desc': 'Soft power control failure', 'severity': const.Health.Failed, + 'deassertion_desc': 'Soft power control failure deasserted', + 'deassertion_severity': const.Health.Ok, }, 6: { 'desc': 'Power unit failure', 'severity': const.Health.Critical, + 'deassertion_desc': 'Power unit failure deasserted', + 'deassertion_severity': const.Health.Ok, }, 7: { - 'desc': 'power unit predictive failure', + 'desc': 'Power unit predictive failure', 'severity': const.Health.Warning, + 'deassertion_desc': 'Power unit predictive failure deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 0xc: { # memory 0: { - 'desc': 'Correctable memory error', + 'desc': 'Correctable error', 'severity': const.Health.Warning, + 'deassertion_desc': 'Correctable error deasserted', + 'deassertion_severity': const.Health.Ok, }, 1: { - 'desc': 'Uncorrectable memory error', + 'desc': 'Uncorrectable error', 'severity': const.Health.Failed, + 'deassertion_desc': 'Unorrectable error deasserted', + 'deassertion_severity': const.Health.Ok, }, 2: { - 'desc': 'Memory parity', + 'desc': 'Parity error', 'severity': const.Health.Warning, + 'deassertion_desc': 'Parity error deasserted', + 'deassertion_severity': const.Health.Ok, }, 3: { - 'desc': 'Memory scrub failed', + 'desc': 'Scrub failed', 'severity': const.Health.Critical, + 'deassertion_desc': 'Scrub failed deasserted', + 'deassertion_severity': const.Health.Ok, }, 4: { - 'desc': 'Memory device disabled', + 'desc': 'Device disabled', 'severity': const.Health.Warning, + 'deassertion_desc': 'Device enabled', + 'deassertion_severity': const.Health.Ok, }, 5: { 'desc': 'Correctable memory error logging limit reached', 'severity': const.Health.Critical, + 'deassertion_desc': 'Correctable memory error logging restored', + 'deassertion_severity': const.Health.Ok, }, 6: { 'desc': 'Present', 'severity': const.Health.Ok, + 'deassertion_desc': 'Absent', + 'deassertion_severity': const.Health.Ok, }, 7: { - 'desc': 'memory configuration error', + 'desc': 'Configuration error', 'severity': const.Health.Critical, + 'deassertion_desc': 'Configuration error deasserted', + 'deassertion_severity': const.Health.Ok, }, 8: { - 'desc': 'spare memory', # event data 3 available + 'desc': 'Spare', # event data 3 available 'severity': const.Health.Ok, + 'deassertion_desc': 'Spare deasserted', + 'deassertion_severity': const.Health.Ok, }, 9: { - 'desc': 'memory throttled', + 'desc': 'Throttled', 'severity': const.Health.Warning, + 'deassertion_desc': 'No longer throttled', + 'deassertion_severity': const.Health.Ok, }, 0xa: { - 'desc': 'critical memory overtemperature', + 'desc': 'Critical over temperature', 'severity': const.Health.Critical, + 'deassertion_desc': 'Critical over temperature deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 0xd: { # drive bay 0: { 'desc': 'Present', 'severity': const.Health.Ok, + 'deassertion_desc': 'Absent', + 'deassertion_severity': const.Health.Ok, }, 1: { 'desc': 'Drive fault', 'severity': const.Health.Critical, + 'deassertion_desc': 'Drive fault deasserted', + 'deassertion_severity': const.Health.Ok, }, 2: { 'desc': 'Predictive drive failure', 'severity': const.Health.Warning, + 'deassertion_desc': 'Predictive drive failure deasserted', + 'deassertion_severity': const.Health.Ok, }, 3: { 'desc': 'Hot spare drive', 'severity': const.Health.Ok, + 'deassertion_desc': 'Hot spare drive deasserted', + 'deassertion_severity': const.Health.Ok, }, 4: { 'desc': 'Drive consitency check in progress', 'severity': const.Health.Ok, + 'deassertion_desc': 'Drive consistency check complete', + 'deassertion_severity': const.Health.Ok, }, 5: { 'desc': 'Drive in critical array', 'severity': const.Health.Critical, + 'deassertion_desc': 'Drive in critical array deasserted', + 'deassertion_severity': const.Health.Ok, }, 6: { 'desc': 'Drive in failed array', 'severity': const.Health.Failed, + 'deassertion_desc': 'Drive in failed array deasserted', + 'deassertion_severity': const.Health.Ok, }, 7: { 'desc': 'Rebuild in progress', 'severity': const.Health.Ok, + 'deassertion_desc': 'Rebuild complete', + 'deassertion_severity': const.Health.Ok, }, 8: { 'desc': 'Rebuild aborted', 'severity': const.Health.Critical, + 'deassertion_desc': 'Rebuild abort deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 0xf: { 0: { - 'desc': 'System Firmware boot error', + 'desc': 'Boot error', 'severity': const.Health.Failed, + 'deassertion_desc': 'Boot error deasserted', + 'deassertion_severity': const.Health.Ok, }, 1: { - 'desc': 'System Firmware hang', + 'desc': 'Hang', 'severity': const.Health.Failed, + 'deassertion_desc': 'Hang deasserted', + 'deassertion_severity': const.Health.Ok, }, 2: { - 'desc': 'System Firmware Progress', + 'desc': 'Progress', 'severity': const.Health.Ok, + 'deassertion_desc': 'Progress deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 0x10: { # event log disabled 0: { - 'desc': 'Correctable Memory Error Logging Disabled', + 'desc': 'Correctable memory error logging disabled', 'severity': const.Health.Warning, + 'deassertion_desc': 'Correctable memory error logging enabled', + 'deassertion_severity': const.Health.Ok, }, 1: { 'desc': 'Specific event logging disabled', + 'deassertion_desc': 'Event logging enabled', 'severity': const.Health.Warning, + 'deassertion_severity': const.Health.Ok, }, 2: { - 'desc': 'Log Cleared', + 'desc': 'Log clear', 'severity': const.Health.Ok, + 'deassertion_desc': 'Log clear complete', + 'deassertion_severity': const.Health.Ok, }, 3: { - 'desc': 'Logging Disabled', + 'desc': 'Logging disabled', 'severity': const.Health.Warning, + 'deassertion_desc': 'Logging enabled', + 'deassertion_severity': const.Health.Ok, }, 4: { 'desc': 'Event log full', 'severity': const.Health.Warning, + 'deassertion_desc': 'Event log no longer full', + 'deassertion_severity': const.Health.Ok, }, 5: { 'desc': 'Event log nearly full', 'severity': const.Health.Warning, + 'deassertion_desc': 'Event log no longer nearly full', + 'deassertion_severity': const.Health.Ok, }, 6: { - 'desc': 'Correctable Machine Check Logging Disabled', + 'desc': 'Correctable machine check logging disabled', 'severity': const.Health.Warning, + 'deassertion_desc': 'Correctable machine check logging enabled', + 'deassertion_severity': const.Health.Ok, }, }, 0x12: { # system event 0: { 'desc': 'System reconfigured', 'severity': const.Health.Ok, + 'deassertion_desc': 'System reconfiguration deasserted', + 'deassertion_severity': const.Health.Ok, }, 1: { 'desc': 'OEM boot event', 'severity': const.Health.Ok, + 'deassertion_desc': 'OEM boot event deasserted', + 'deassertion_severity': const.Health.Ok, }, 2: { 'desc': 'Undetermined hardware failure', 'severity': const.Health.Failed, + 'deassertion_desc': 'Undetermined hardware failure deasserted', + 'deassertion_severity': const.Health.Ok, }, 3: { 'desc': 'Aux log entry', 'severity': const.Health.Ok, + 'deassertion_desc': 'Aux log entry deasserted', + 'deassertion_severity': const.Health.Ok, }, 4: { - 'desc': 'Event Response', + 'desc': 'Event response', 'severity': const.Health.Ok, + 'deassertion_desc': 'Event response deasserted', + 'deassertion_severity': const.Health.Ok, }, 5: { 'desc': 'Clock time change', 'severity': const.Health.Ok, + 'deassertion_desc': 'Clock time change deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 0x13: { # critical interrupt 0: { 'desc': 'Front panel diagnostic interrupt', 'severity': const.Health.Ok, + 'deassertion_desc': 'Front panel diagnostic interrupt deasserted', + 'deassertion_severity': const.Health.Ok, }, 1: { - 'desc': 'Bus Timeout', + 'desc': 'Bus timeout', 'severity': const.Health.Critical, + 'deassertion_desc': 'Bus timeout recovered', + 'deassertion_severity': const.Health.Ok, }, 2: { 'desc': 'I/O NMI', 'severity': const.Health.Critical, + 'deassertion_desc': 'I/O NMI deasserted', + 'deassertion_severity': const.Health.Ok, }, 3: { 'desc': 'Software NMI', 'severity': const.Health.Critical, + 'deassertion_desc': 'Software NMI deasserted', + 'deassertion_severity': const.Health.Ok, }, 4: { 'desc': 'PCI PERR', 'severity': const.Health.Failed, + 'deassertion_desc': 'PCI PERR deasserted', + 'deassertion_severity': const.Health.Ok, }, 5: { 'desc': 'PCI SERR', 'severity': const.Health.Failed, + 'deassertion_desc': 'PCI SERR deasserted', + 'deassertion_severity': const.Health.Ok, }, 6: { - 'desc': 'EISA Fail safe timeout', + 'desc': 'EISA fail safe timeout', 'severity': const.Health.Failed, + 'deassertion_desc': 'EISA fail safe timeout deasserted', + 'deassertion_severity': const.Health.Ok, }, 7: { - 'desc': 'Bus Correctable Error', + 'desc': 'Bus correctable error', 'severity': const.Health.Warning, + 'deassertion_desc': 'Bus correctable error deasserted', + 'deassertion_severity': const.Health.Ok, }, 8: { - 'desc': 'Bus Uncorrectable Error', + 'desc': 'Bus uncorrectable error', 'severity': const.Health.Failed, + 'deassertion_desc': 'Bus uncorrectable error deasserted', + 'deassertion_severity': const.Health.Ok, }, 9: { 'desc': 'Fatal NMI', 'severity': const.Health.Failed, + 'deassertion_desc': 'Fatal NMI deasserted', + 'deassertion_severity': const.Health.Ok, }, 0xa: { - 'desc': 'Bus Fatal Error', + 'desc': 'Bus fatal error', 'severity': const.Health.Failed, + 'deassertion_desc': 'Bus fatal error deasserted', + 'deassertion_severity': const.Health.Ok, }, 0xb: { - 'desc': 'Bus Degraded', + 'desc': 'Bus degraded', 'severity': const.Health.Warning, + 'deassertion_desc': 'Bus degraded deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 0x14: { # button/switch 0: { 'desc': 'Power button pressed', 'severity': const.Health.Ok, + 'deassertion_desc': 'Power button released', + 'deassertion_severity': const.Health.Ok, }, 1: { 'desc': 'Sleep button pressed', 'severity': const.Health.Ok, + 'deassertion_desc': 'Sleep button released', + 'deassertion_severity': const.Health.Ok, }, 2: { 'desc': 'Reset button pressed', 'severity': const.Health.Ok, + 'deassertion_desc': 'Reset button released', + 'deassertion_severity': const.Health.Ok, }, 3: { 'desc': 'FRU latch open', 'severity': const.Health.Ok, + 'deassertion_desc': 'FRU latch closed', + 'deassertion_severity': const.Health.Ok, }, 4: { 'desc': 'Service requested', 'severity': const.Health.Warning, + 'deassertion_desc': 'Service no longer requested', + 'deassertion_severity': const.Health.Ok, }, }, 0x19: { # chipset 0: { 'desc': 'Soft power control failure', 'severity': const.Health.Critical, + 'deassertion_desc': 'Soft power control failure deasserted', + 'deassertion_severity': const.Health.Ok, }, 1: { - 'desc': 'Thermal Trip', + 'desc': 'Thermal trip', 'severity': const.Health.Failed, + 'deassertion_desc': 'Thermal trip deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 0x1b: { # Cable/Interconnect 0: { 'desc': 'Connected', 'severity': const.Health.Ok, + 'deassertion_desc': 'Disconnected', + 'deassertion_severity': const.Health.Ok, }, 1: { 'desc': 'Connection error', 'severity': const.Health.Critical, + 'deassertion_desc': 'Connection error deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 0x1d: { # system boot initiated 0: { 'desc': 'Power up', 'severity': const.Health.Ok, + 'deassertion_desc': 'Power up deasserted', + 'deassertion_severity': const.Health.Ok, }, 1: { - 'desc': 'Hard Reset', + 'desc': 'Hard reset', 'severity': const.Health.Ok, + 'deassertion_desc': 'Hard reset deasserted', + 'deassertion_severity': const.Health.Ok, }, 2: { - 'desc': 'Warm Reset', + 'desc': 'Warm reset', 'severity': const.Health.Ok, + 'deassertion_desc': 'Warm reset deasserted', + 'deassertion_severity': const.Health.Ok, }, 3: { - 'desc': 'PXE Boot', + 'desc': 'PXE boot', 'severity': const.Health.Ok, + 'deassertion_desc': 'PXE boot deasserted', + 'deassertion_severity': const.Health.Ok, }, 4: { 'desc': 'Autoboot to diagnostic', 'severity': const.Health.Warning, + 'deassertion_desc': 'Autoboot to diagnostic deasserted', + 'deassertion_severity': const.Health.Ok, }, 5: { 'desc': 'OS hard reset', 'severity': const.Health.Ok, + 'deassertion_desc': 'OS hard reset deasserted', + 'deassertion_severity': const.Health.Ok, }, 6: { 'desc': 'OS warm reset', 'severity': const.Health.Ok, + 'deassertion_desc': 'OS warm reset deasserted', + 'deassertion_severity': const.Health.Ok, }, 7: { 'desc': 'System restart', 'severity': const.Health.Ok, + 'deassertion_desc': 'System restart deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 0x1e: { # boot error 0: { 'desc': 'No bootable media', 'severity': const.Health.Failed, + 'deassertion_desc': 'No bootable media deasserted', + 'deassertion_severity': const.Health.Ok, }, 1: { 'desc': 'Unbootable removable media', 'severity': const.Health.Failed, + 'deassertion_desc': 'Unbootable removable media deasserted', + 'deassertion_severity': const.Health.Ok, }, 2: { - 'desc': 'PXE Failure', + 'desc': 'PXE failure', 'severity': const.Health.Failed, + 'deassertion_desc': 'PXE failure deasserted', + 'deassertion_severity': const.Health.Ok, + }, 3: { 'desc': 'Invalid boot sector', 'severity': const.Health.Failed, + 'deassertion_desc': 'Invalid boot sector deasserted', + 'deassertion_severity': const.Health.Ok, }, 4: { 'desc': 'Interactive boot timeout', 'severity': const.Health.Failed, + 'deassertion_desc': 'Interactive boot timeout deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 0x1f: { # OS boot 0: { 'desc': 'A: boot completed', 'severity': const.Health.Ok, + 'deassertion_desc': 'Unbootable removable media deasserted', + 'deassertion_severity': const.Health.Ok, }, 1: { 'desc': 'Hard drive boot completed', 'severity': const.Health.Ok, + 'deassertion_desc': 'Hard drive boot completed not failed', + 'deassertion_severity': const.Health.Ok, }, 2: { 'desc': 'Network boot completed', 'severity': const.Health.Ok, + 'deassertion_desc': 'Network boot completetion deasserted', + 'deassertion_severity': const.Health.Ok, }, 3: { 'desc': 'Diagnostic boot completed', 'severity': const.Health.Ok, + 'deassertion_desc': 'Diagnostic boot deasserted', + 'deassertion_severity': const.Health.Ok, }, 4: { 'desc': 'CD boot completed', 'severity': const.Health.Ok, + 'deassertion_desc': 'CD boot completetion deasserted', + 'deassertion_severity': const.Health.Ok, }, 5: { 'desc': 'ROM boot completed', 'severity': const.Health.Ok, + 'deassertion_desc': 'ROM boot completion deasserted', + 'deassertion_severity': const.Health.Ok, }, 6: { 'desc': 'Boot completed', 'severity': const.Health.Ok, + 'deassertion_desc': 'Boot completion deasserted', + 'deassertion_severity': const.Health.Ok, }, 7: { 'desc': 'OS deployment started', 'severity': const.Health.Ok, + 'deassertion_desc': 'OS deployment deasserted', + 'deassertion_severity': const.Health.Ok, }, 8: { 'desc': 'OS deployment completed', 'severity': const.Health.Ok, + 'deassertion_desc': 'OS deployment completion deasserted', + 'deassertion_severity': const.Health.Ok, }, 9: { 'desc': 'OS deployment aborted', 'severity': const.Health.Ok, + 'deassertion_desc': 'OS deployment abortion deasserted', + 'deassertion_severity': const.Health.Ok, }, 0xa: { 'desc': 'OS deployment failed', 'severity': const.Health.Failed, + 'deassertion_desc': 'OS deployment failure deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 0x20: { # OS Stop 0: { 'desc': 'OS boot stop', 'severity': const.Health.Failed, + 'deassertion_desc': 'OS boot stop deasserted', + 'deassertion_severity': const.Health.Ok, }, 1: { - 'desc': 'OS Crash', + 'desc': 'OS crash', 'severity': const.Health.Failed, + 'deassertion_desc': 'OS crash deasserted', + 'deassertion_severity': const.Health.Ok, }, 2: { - 'desc': 'OS Cleanly Halted', + 'desc': 'OS cleanly halted', 'severity': const.Health.Ok, + 'deassertion_desc': 'OS clean halt deasserted', + 'deassertion_severity': const.Health.Ok, }, 3: { - 'desc': 'OS Cleanly shutdown', + 'desc': 'OS cleanly shutdown', 'severity': const.Health.Ok, + 'deassertion_desc': 'OS clean shutdown deasserted', + 'deassertion_severity': const.Health.Ok, }, 4: { 'desc': 'Event driven soft shutdown', 'severity': const.Health.Warning, + 'deassertion_desc': 'Event driven soft shutdown deasserted', + 'deassertion_severity': const.Health.Ok, }, 5: { 'desc': 'Event driven soft shutdown failed', 'severity': const.Health.Warning, + 'deassertion_desc': + 'Event driven soft shutdown failure deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 0x21: { # slot/connector 0x0: { 'desc': 'Fault', 'severity': const.Health.Critical, + 'deassertion_desc': 'Fault recovered', + 'deassertion_severity': const.Health.Ok, }, 0x1: { 'desc': 'Identify', 'severity': const.Health.Ok, + 'deassertion_desc': 'Identify deasserted', + 'deassertion_severity': const.Health.Ok, }, 0x2: { - 'desc': 'Slot/Connector installed', + 'desc': 'Slot/connector installed', 'severity': const.Health.Ok, + 'deassertion_desc': 'Slot/connector removed', + 'deassertion_severity': const.Health.Ok, }, 0x3: { 'desc': 'Slot/connector ready for install', 'severity': const.Health.Ok, + 'deassertion_desc': 'Slot/connector no longer ready for install', + 'deassertion_severity': const.Health.Ok, }, 0x4: { 'desc': 'Slot/connector ready for removal', 'severity': const.Health.Ok, + 'deassertion_desc': 'Slot/connector no longer ready for removal', + 'deassertion_severity': const.Health.Ok, }, 0x5: { 'desc': 'Slot powered down', 'severity': const.Health.Ok, + 'deassertion_desc': 'Slot powered up', + 'deassertion_severity': const.Health.Ok, }, 0x6: { 'desc': 'Slot/connector device removal requested', 'severity': const.Health.Warning, + 'deassertion_desc': + 'Slot/connector device removal no longer requested', + 'deassertion_severity': const.Health.Ok, }, 0x7: { - 'desc': 'Slot/connector Interlock', + 'desc': 'Slot/connector interlock', 'severity': const.Health.Ok, + 'deassertion_desc': 'Slot/connector interlock deasserted', + 'deassertion_severity': const.Health.Ok, }, 0x8: { 'desc': 'Slot/connector disabled', 'severity': const.Health.Warning, + 'deassertion_desc': 'Slot/connector enabled', + 'deassertion_severity': const.Health.Ok, }, 0x9: { 'desc': 'Slot holds spare device', 'severity': const.Health.Ok, + 'deassertion_desc': 'Slot no longer holds spare device', + 'deassertion_severity': const.Health.Ok, }, }, 0x22: { # system acpi power state 0x0: { 'desc': 'Online', 'severity': const.Health.Ok, + 'deassertion_desc': 'Online deasserted', + 'deassertion_severity': const.Health.Ok, }, 0x1: { - 'desc': 'S1 Sleep', + 'desc': 'S1 sleep', 'severity': const.Health.Ok, + 'deassertion_desc': 'S1 sleep deasserted', + 'deassertion_severity': const.Health.Ok, }, 0x2: { - 'desc': 'S2 Sleep', + 'desc': 'S2 sleep', 'severity': const.Health.Ok, + 'deassertion_desc': 'S2 sleep deasserted', + 'deassertion_severity': const.Health.Ok, }, 0x3: { 'desc': 'Sleep', 'severity': const.Health.Ok, + 'deassertion_desc': 'Sleep deasserted', + 'deassertion_severity': const.Health.Ok, }, 0x4: { 'desc': 'Hibernated', 'severity': const.Health.Ok, + 'deassertion_desc': 'Hibernation deasserted', + 'deassertion_severity': const.Health.Ok, }, 0x5: { 'desc': 'Off', 'severity': const.Health.Ok, + 'deassertion_desc': 'Off deasserted', + 'deassertion_severity': const.Health.Ok, }, 0x6: { 'desc': 'Hibernated or Off', 'severity': const.Health.Ok, + 'deassertion_desc': 'Hibernateor off deasserted', + 'deassertion_severity': const.Health.Ok, }, 0x7: { - 'desc': 'Mechanically Off', + 'desc': 'Mechanically off', 'severity': const.Health.Ok, + 'deassertion_desc': 'Mechanically on', + 'deassertion_severity': const.Health.Ok, }, 0x8: { 'desc': 'Sleep', 'severity': const.Health.Ok, + 'deassertion_desc': 'Sleep deasserted', + 'deassertion_severity': const.Health.Ok, }, 0x9: { - 'desc': 'G1 Sleep', + 'desc': 'G1 sleep', 'severity': const.Health.Ok, + 'deassertion_desc': 'G1 sleep deasserted', + 'deassertion_severity': const.Health.Ok, }, 0xa: { 'desc': 'Shutdown', 'severity': const.Health.Ok, + 'deassertion_desc': 'Shutdown deasserted', + 'deassertion_severity': const.Health.Ok, }, 0xb: { 'desc': 'On', 'severity': const.Health.Ok, + 'deassertion_desc': 'Off', + 'deassertion_severity': const.Health.Ok, }, 0xc: { 'desc': 'Off', 'severity': const.Health.Ok, + 'deassertion_desc': 'On', + 'deassertion_severity': const.Health.Ok, }, 0xe: { 'desc': 'Unknown', 'severity': const.Health.Ok, + 'deassertion_desc': 'Unknown deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 0x23: { # watchdog 0x0: { 'desc': 'Watchdog expired', 'severity': const.Health.Critical, + 'deassertion_desc': 'Watchdog expiry deasserted', + 'deassertion_severity': const.Health.Ok, }, 0x1: { 'desc': 'Watchdog hard reset', 'severity': const.Health.Failed, + 'deassertion_desc': 'Watchdog hard reset deasserted', + 'deassertion_severity': const.Health.Ok, }, 0x2: { - 'desc': 'Watchdog Power down', + 'desc': 'Watchdog power down', 'severity': const.Health.Failed, + 'deassertion_desc': 'Watchdog power down deasserted', + 'deassertion_severity': const.Health.Ok, }, 0x3: { - 'desc': 'Watchdog Power Cycle', + 'desc': 'Watchdog power cycle', 'severity': const.Health.Failed, + 'deassertion_desc': 'Watchdog power cycle deasserted', + 'deassertion_severity': const.Health.Ok, }, 0x8: { - 'desc': 'Watchdog Interrupt', + 'desc': 'Watchdog interrupt', 'severity': const.Health.Ok, + 'deassertion_desc': 'Watchdog interrupt deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 0x24: { # platform event 0x0: { 'desc': 'Platform generated page', 'severity': const.Health.Ok, + 'deassertion_desc': 'Platform generated page deasserted', + 'deassertion_severity': const.Health.Ok, }, 0x1: { - 'desc': 'Platform generated Network alert', + 'desc': 'Platform generated network alert', 'severity': const.Health.Ok, + 'deassertion_desc': 'Platform generated network alert deasserted', + 'deassertion_severity': const.Health.Ok, }, 0x2: { - 'desc': 'Platform generated Network alert, PET format', + 'desc': 'Platform generated PET alert', 'severity': const.Health.Ok, + 'deassertion_desc': 'Platform generated PET alert deasserted', + 'deassertion_severity': const.Health.Ok, }, 0x3: { - 'desc': 'Platform generated Network alert, OEM SNMP format', + 'desc': 'Platform generated OEM SNMP Alert', 'severity': const.Health.Ok, + 'deassertion_desc': 'Platform generated OEM SNMP Alert deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 0x25: { # entity presence 0: { 'desc': 'Present', 'severity': const.Health.Ok, + 'deassertion_desc': 'Absent', + 'deassertion_severity': const.Health.Ok, }, 1: { 'desc': 'Absent', 'severity': const.Health.Ok, + 'deassertion_desc': 'Present', + 'deassertion_severity': const.Health.Ok, }, 2: { 'desc': 'Disabled', 'severity': const.Health.Ok, + 'deassertion_desc': 'Enabled', + 'deassertion_severity': const.Health.Ok, }, }, 0x27: { # LAN heartbeat 0: { 'desc': 'Heartbeat lost', 'severity': const.Health.Warning, + 'deassertion_desc': 'Heartbeat recovered', + 'deassertion_severity': const.Health.Ok, }, 1: { 'desc': 'Heartbeat', 'severity': const.Health.Ok, + 'deassertion_desc': 'Heartbeat lost', + 'deassertion_severity': const.Health.Warning, }, }, 0x28: { # management subsystem health 0: { 'desc': 'Sensor access degraded or unavailable', 'severity': const.Health.Warning, + 'deassertion_desc': 'Sensor access restored', + 'deassertion_severity': const.Health.Ok, }, 1: { 'desc': 'Controller access degraded or unavailable', 'severity': const.Health.Warning, + 'deassertion_desc': 'Controller access restored', + 'deassertion_severity': const.Health.Ok, }, 2: { 'desc': 'Controller Offline', 'severity': const.Health.Warning, + 'deassertion_desc': 'Controller online', + 'deassertion_severity': const.Health.Ok, }, 3: { 'desc': 'Controller Offline', 'severity': const.Health.Warning, + 'deassertion_desc': 'Controller online', + 'deassertion_severity': const.Health.Ok, }, 4: { 'desc': 'Sensor Error', 'severity': const.Health.Warning, + 'deassertion_desc': 'Sensor recovered', + 'deassertion_severity': const.Health.Ok, }, 5: { 'desc': 'FRU Failure', 'severity': const.Health.Warning, + 'deassertion_desc': 'FRU recovered', + 'deassertion_severity': const.Health.Ok, }, }, 0x29: { # battery 0: { - 'desc': 'Battery Low', + 'desc': 'Low', 'severity': const.Health.Warning, + 'deassertion_desc': 'Battery no longer low', + 'deassertion_severity': const.Health.Ok, }, 1: { - 'desc': 'Battery Failed', + 'desc': 'Failed', # Critical here because typical battery failure # does not indicate a 'failed' runtime 'severity': const.Health.Critical, + 'deassertion_desc': 'Recovered', + 'deassertion_severity': const.Health.Ok }, 2: { - 'desc': 'Battery Present', + 'desc': 'Present', 'severity': const.Health.Ok, + 'deassertion_desc': 'Absent', + 'deassertion_severity': const.Health.Ok, }, }, 0x2a: { # session audit 0: { - 'desc': 'Session activated', + 'desc': 'Activated', 'severity': const.Health.Ok, + 'deassertion_desc': 'Deactivated', + 'deassertion_severity': const.Health.Ok, }, 1: { - 'desc': 'Session deactivated', + 'desc': 'Deactivated', 'severity': const.Health.Ok, + 'deassertion_desc': 'Activated', + 'deassertion_severity': const.Health.Ok, }, 2: { - 'desc': 'Invalid username or password', + 'desc': 'Invalid username/password', 'severity': const.Health.Warning, + 'deassertion_desc': 'Valid username/password', + 'deassertion_severity': const.Health.Ok, }, 3: { 'desc': 'Account disabled due to failure count', 'severity': const.Health.Critical, + 'deassertion_desc': 'Account reenabled', + 'deassertion_severity': const.Health.Ok, }, }, 0x2b: { # Version Change 0: { 'desc': 'Hardware change detected', 'severity': const.Health.Ok, + 'deassertion_desc': 'Hardware change deasserted', + 'deassertion_severity': const.Health.Ok, }, 1: { 'desc': 'Firmware or software change detected', 'severity': const.Health.Ok, + 'deassertion_desc': 'Firmware or software change deasserted', + 'deassertion_severity': const.Health.Ok, }, 2: { 'desc': 'Hardware incompatibility detected', 'severity': const.Health.Critical, + 'deassertion_desc': 'Hardware incompatibility deasserted', + 'deassertion_severity': const.Health.Ok, }, 3: { 'desc': 'Firmware/software incompatibility detected', 'severity': const.Health.Critical, + 'deassertion_desc': 'Firmware/software incompatibility deasserted', + 'deassertion_severity': const.Health.Ok, }, 4: { 'desc': 'Invalid/Unsupported hardware revision', 'severity': const.Health.Critical, + 'deassertion_desc': + 'Invalid/unsupported hardware revision deasserted', + 'deassertion_severity': const.Health.Ok, }, 5: { - 'desc': 'Invalid/Unsupported firmware/software version', + 'desc': 'Invalid/unsupported firmware/software version', 'severity': const.Health.Critical, + 'deassertion_desc': + 'Invalid/unsupported firmware/software version', + 'deassertion_severity': const.Health.Ok, }, 6: { - 'desc': 'Successful Hardware Change', + 'desc': 'Successful hardware change', 'severity': const.Health.Ok, + 'deassertion_desc': 'Successful hardware change deasserted', + 'deassertion_severity': const.Health.Ok, }, 7: { - 'desc': 'Successful Software/Firmware Change', + 'desc': 'Successful software/firmware change', 'severity': const.Health.Ok, + 'deassertion_desc': + 'Succussful software/firmware change deasserted', + 'deassertion_severity': const.Health.Ok, }, }, 0x2c: { # FRU state 0: { 'desc': 'Not Installed', 'severity': const.Health.Ok, + 'deassertion_desc': 'Installed', + 'deassertion_severity': const.Health.Ok, }, 1: { 'desc': 'Inactive', 'severity': const.Health.Ok, + 'deassertion_desc': 'Inactive deasserted', + 'deassertion_severity': const.Health.Ok, }, 2: { - 'desc': 'Activation Requested', + 'desc': 'Activation requested', 'severity': const.Health.Ok, + 'deassertion_desc': 'Activation request deasserted', + 'deassertion_severity': const.Health.Ok, }, 3: { 'desc': 'Activation in progress', 'severity': const.Health.Ok, + 'deassertion_desc': 'Activation no longer in progress', + 'deassertion_severity': const.Health.Ok, }, 4: { 'desc': 'Active', 'severity': const.Health.Ok, + 'deassertion_desc': 'Inactive', + 'deassertion_severity': const.Health.Ok, }, 5: { 'desc': 'Deactivation requested', 'severity': const.Health.Ok, + 'deassertion_desc': 'Deactivation request deasserted', + 'deassertion_severity': const.Health.Ok, }, 6: { 'desc': 'Deactivation in progress', 'severity': const.Health.Ok, + 'deassertion_desc': 'Deactivation no longer in progress', + 'deassertion_severity': const.Health.Ok, }, 7: { - 'desc': 'Communication Lost', + 'desc': 'Communication lost', 'severity': const.Health.Warning, + 'deassertion_desc': 'Communication restored', + 'deassertion_severity': const.Health.Ok, }, }, } # entity ids from table 43-13 entity id codes entity_ids = { - 0x0: 'unspecified', - 0x1: 'other', - 0x2: 'unknown', - 0x3: 'processor', - 0x4: 'disk or disk bay', - 0x5: 'peripheral bay', - 0x6: 'system management module', - 0x7: 'system board', - 0x8: 'memory module', - 0x9: 'processor module', - 0xa: 'power supply', - 0xb: 'add-in card', - 0xc: 'front panel board', - 0xd: 'back panel board', - 0xe: 'power system board', - 0xf: 'drive backplane', - 0x10: 'system internal expansion board', - 0x11: 'other system board', - 0x12: 'processor board', - 0x13: 'power unit / power domain', - 0x14: 'power module / DC-to-DC converter', - 0x15: 'power management /power distribution board', - 0x16: 'chassis back panel board', - 0x17: 'system chassis', - 0x18: 'sub-chassis', - 0x19: 'other chassis board', - 0x1a: 'disk drive bay', - 0x1b: 'peripheral bay', - 0x1c: 'device bay', - 0x1d: 'fan/cooling device', - 0x1e: 'cooling unit / cooling domain', - 0x1f: 'cable / interconnect', - 0x20: 'memory device', - 0x21: 'system management software', - 0x22: 'system firmware', - 0x23: 'operating system', - 0x24: 'system bus', - 0x25: 'group', - 0x26: 'remote management communication device', - 0x27: 'external environment', - 0x28: 'battery', - 0x29: 'processing blade', - 0x2a: 'connectivity switch', - 0x2b: 'processor/memory module', + 0x0: 'Unspecified', + 0x1: 'Other', + 0x2: 'Unknown', + 0x3: 'Processor', + 0x4: 'Disk or disk bay', + 0x5: 'Peripheral bay', + 0x6: 'System management module', + 0x7: 'System board', + 0x8: 'Memory module', + 0x9: 'Processor module', + 0xa: 'Power supply', + 0xb: 'Add-in card', + 0xc: 'Front panel board', + 0xd: 'Back panel board', + 0xe: 'Power system board', + 0xf: 'Drive backplane', + 0x10: 'System internal expansion board', + 0x11: 'Other system board', + 0x12: 'Processor board', + 0x13: 'Power unit / power domain', + 0x14: 'Power module / DC-to-DC converter', + 0x15: 'Power management /power distribution board', + 0x16: 'Chassis back panel board', + 0x17: 'System chassis', + 0x18: 'Sub-chassis', + 0x19: 'Other chassis board', + 0x1a: 'Disk drive bay', + 0x1b: 'Peripheral bay', + 0x1c: 'Device bay', + 0x1d: 'Fan/cooling device', + 0x1e: 'Cooling unit / cooling domain', + 0x1f: 'Cable / interconnect', + 0x20: 'Memory device', + 0x21: 'System management software', + 0x22: 'System firmware', + 0x23: 'Operating system', + 0x24: 'System bus', + 0x25: 'Group', + 0x26: 'Remote management communication device', + 0x27: 'External environment', + 0x28: 'Battery', + 0x29: 'Processing blade', + 0x2a: 'Connectivity switch', + 0x2b: 'Processor/memory module', 0x2c: 'I/O module', 0x2d: 'Processor I/O module', - 0x2e: 'management controller firmware', + 0x2e: 'Management controller firmware', 0x2f: 'IPMI channel', 0x30: 'PCI Bus', 0x31: 'PCIe Bus', 0x32: 'SCSI Bus', 0x33: 'SATA/SAS Bus', - 0x34: 'processor / front-side bus', - 0x35: 'real time clock', - 0x37: 'air inlet', - 0x40: 'air inlet', - 0x41: 'processor', - 0x42: 'system board', + 0x34: 'Processor / front-side bus', + 0x35: 'Real time clock', + 0x37: 'Air inlet', + 0x40: 'Air inlet', + 0x41: 'Processor', + 0x42: 'System board', }