This information is provided by the envCPUsTable (cpuGroup 3), indexed by envCpuBoard and envCpuSlot:
status_mapping(N,
[[envCPUState, Board, CpuSlot] = IntState],
[nodeAlarm(N, physModule(N, M), Severity, Reason,
physModule(N, M), '', OpStatus)]
) :-
% case of asx1000: select CPUs on same board as agent
( ( switchModel(N, asx1000) ; switchModel(N, asx1200) ) ->
physBoard(N, Board, _BType) % only if board already in database
; true
), !,
concat_atom(['CPU', CpuSlot], M),
% some enumerated states not defined in INMS, but useful as 'reason':
s2enum(envCPUState, State, IntState),
(
IntState == 1 ->
OpStatus = up,
Reason = agentPolled,
Severity = 'Normal'
;
OpStatus = down,
concat_atom(['State of CPU is ', State], Reason),
(scpConfig(N, Board, CpuSlot, CpuSlot, alone) ->
Severity = 'Critical' % stand-alone SCP is down
; Severity = 'Warning') % Fore: should second CPU on board be up ?
).