Project

General

Profile

Actions

Bug #14720

open

fac_prov_ipmi: missing thresholds should not be considered error

Added by Yuri Pankov 2 months ago. Updated 2 months ago.

Status:
In Progress
Priority:
Normal
Assignee:
Category:
lib - userland libraries
Start date:
Due date:
% Done:

90%

Estimated time:
Difficulty:
Bite-size
Tags:
Gerrit CR:

Description

There are full sensors that do not report thresholds, and fac_prov_ipmi should NOT consider this an error, and should continue enumerating sensors for the entity, otherwise we are missing a lot of sensors that we need in the topo. The real life example here are the HPE and Dell platforms.

With this fixed, I e.g. get the full list of sensors for Power Supply 1 (instead of just the first one):

hc://:product-id=ProLiant-DL380-Gen10:server-id=FC-HPDL380G10-83:chassis-id=/chassis=0/psu=0
        Present: true
        Unusable: false
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=ProLiant-DL380-Gen10:server-id=FC-HPDL380G10-83:chassis-id=/chassis=0/psu=0
    label             string    PSU 0
    FRU               fmri      hc://:product-id=ProLiant-DL380-Gen10:server-id=FC-HPDL380G10-83:chassis-id=/chassis=0/psu=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    ProLiant-DL380-Gen10
    chassis-id        string    
    server-id         string    FC-HPDL380G10-83
  group: ipmi                           version: 1   stability: Private/Private
    entity-id         uint32    0xa
    entity-instance   uint32    0x1

hc://:product-id=ProLiant-DL380-Gen10:server-id=FC-HPDL380G10-83:chassis-id=/chassis=0/psu=0?sensor=54-P.S 1 Inlet
        Present: true
        Unusable: false
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=ProLiant-DL380-Gen10:server-id=FC-HPDL380G10-83:chassis-id=/chassis=0/psu=0?sensor=54-P.S 1 Inlet
  group: authority                      version: 1   stability: Private/Private
    product-id        string    ProLiant-DL380-Gen10
    chassis-id        string    
    server-id         string    FC-HPDL380G10-83
  group: facility                       version: 1   stability: Private/Private
    entity_ref        string[]  [ "54-P/S 1 Inlet" ]
    sensor-class      string    threshold
    type              uint32    0x101 (THRESHOLD_STATE)
    state             uint32    0x0 (NO_STATES_ASSERTED)
    reading           double    32.000000
    units             uint32    0x1 (DEGREES_C)

hc://:product-id=ProLiant-DL380-Gen10:server-id=FC-HPDL380G10-83:chassis-id=/chassis=0/psu=0?sensor=56-P.S 1
        Present: true
        Unusable: false
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=ProLiant-DL380-Gen10:server-id=FC-HPDL380G10-83:chassis-id=/chassis=0/psu=0?sensor=56-P.S 1
  group: authority                      version: 1   stability: Private/Private
    product-id        string    ProLiant-DL380-Gen10
    chassis-id        string    
    server-id         string    FC-HPDL380G10-83
  group: facility                       version: 1   stability: Private/Private
    entity_ref        string[]  [ "56-P/S 1" ]
    sensor-class      string    threshold
    type              uint32    0x101 (THRESHOLD_STATE)
    state             uint32    0x0 (NO_STATES_ASSERTED)
    reading           double    40.000000
    units             uint32    0x1 (DEGREES_C)

hc://:product-id=ProLiant-DL380-Gen10:server-id=FC-HPDL380G10-83:chassis-id=/chassis=0/psu=0?sensor=Power Supply 1
        Present: true
        Unusable: false
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=ProLiant-DL380-Gen10:server-id=FC-HPDL380G10-83:chassis-id=/chassis=0/psu=0?sensor=Power Supply 1
  group: authority                      version: 1   stability: Private/Private
    product-id        string    ProLiant-DL380-Gen10
    chassis-id        string    
    server-id         string    FC-HPDL380G10-83
  group: facility                       version: 1   stability: Private/Private
    entity_ref        string[]  [ "Power Supply 1" ]
    sensor-class      string    discrete
    type              uint32    0x8 (POWER_SUPPLY)
    state             uint32    0x1 (PRESENT)

hc://:product-id=ProLiant-DL380-Gen10:server-id=FC-HPDL380G10-83:chassis-id=/chassis=0/psu=0?sensor=PS 1 Input
        Present: true
        Unusable: false
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=ProLiant-DL380-Gen10:server-id=FC-HPDL380G10-83:chassis-id=/chassis=0/psu=0?sensor=PS 1 Input
  group: authority                      version: 1   stability: Private/Private
    product-id        string    ProLiant-DL380-Gen10
    chassis-id        string    
    server-id         string    FC-HPDL380G10-83
  group: facility                       version: 1   stability: Private/Private
    entity_ref        string[]  [ "PS 1 Input" ]
    sensor-class      string    threshold
    type              uint32    0x101 (THRESHOLD_STATE)
    state             uint32    0x0 (NO_STATES_ASSERTED)
    reading           double    100.000000
    units             uint32    0x6 (WATTS)

hc://:product-id=ProLiant-DL380-Gen10:server-id=FC-HPDL380G10-83:chassis-id=/chassis=0/psu=0?sensor=PS 1 Output
        Present: true
        Unusable: false
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=ProLiant-DL380-Gen10:server-id=FC-HPDL380G10-83:chassis-id=/chassis=0/psu=0?sensor=PS 1 Output
  group: authority                      version: 1   stability: Private/Private
    product-id        string    ProLiant-DL380-Gen10
    chassis-id        string    
    server-id         string    FC-HPDL380G10-83
  group: facility                       version: 1   stability: Private/Private
    entity_ref        string[]  [ "PS 1 Output" ]
    sensor-class      string    threshold
    type              uint32    0x101 (THRESHOLD_STATE)
    state             uint32    0x0 (NO_STATES_ASSERTED)
    reading           double    95.000000
    units             uint32    0x6 (WATTS)

hc://:product-id=ProLiant-DL380-Gen10:server-id=FC-HPDL380G10-83:chassis-id=/chassis=0/psu=0?sensor=PS_Volt_Out_01
        Present: true
        Unusable: false
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=ProLiant-DL380-Gen10:server-id=FC-HPDL380G10-83:chassis-id=/chassis=0/psu=0?sensor=PS_Volt_Out_01
  group: authority                      version: 1   stability: Private/Private
    product-id        string    ProLiant-DL380-Gen10
    chassis-id        string    
    server-id         string    FC-HPDL380G10-83
  group: facility                       version: 1   stability: Private/Private
    entity_ref        string[]  [ "PS_Volt_Out_01" ]
    sensor-class      string    threshold
    type              uint32    0x101 (THRESHOLD_STATE)
    state             uint32    0x0 (NO_STATES_ASSERTED)
    reading           double    12.000000
    units             uint32    0x4 (VOLTS)

hc://:product-id=ProLiant-DL380-Gen10:server-id=FC-HPDL380G10-83:chassis-id=/chassis=0/psu=0?sensor=PS_Volt_In_01
        Present: true
        Unusable: false
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=ProLiant-DL380-Gen10:server-id=FC-HPDL380G10-83:chassis-id=/chassis=0/psu=0?sensor=PS_Volt_In_01
  group: authority                      version: 1   stability: Private/Private
    product-id        string    ProLiant-DL380-Gen10
    chassis-id        string    
    server-id         string    FC-HPDL380G10-83
  group: facility                       version: 1   stability: Private/Private
    entity_ref        string[]  [ "PS_Volt_In_01" ]
    sensor-class      string    threshold
    type              uint32    0x101 (THRESHOLD_STATE)
    state             uint32    0x0 (NO_STATES_ASSERTED)
    reading           double    204.000000
    units             uint32    0x4 (VOLTS)

hc://:product-id=ProLiant-DL380-Gen10:server-id=FC-HPDL380G10-83:chassis-id=/chassis=0/psu=0?sensor=PS_Curr_Out_01
        Present: true
        Unusable: false
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=ProLiant-DL380-Gen10:server-id=FC-HPDL380G10-83:chassis-id=/chassis=0/psu=0?sensor=PS_Curr_Out_01
  group: authority                      version: 1   stability: Private/Private
    product-id        string    ProLiant-DL380-Gen10
    chassis-id        string    
    server-id         string    FC-HPDL380G10-83
  group: facility                       version: 1   stability: Private/Private
    entity_ref        string[]  [ "PS_Curr_Out_01" ]
    sensor-class      string    threshold
    type              uint32    0x101 (THRESHOLD_STATE)
    state             uint32    0x0 (NO_STATES_ASSERTED)
    reading           double    7.900000
    units             uint32    0x5 (AMPS)

hc://:product-id=ProLiant-DL380-Gen10:server-id=FC-HPDL380G10-83:chassis-id=/chassis=0/psu=0?sensor=PS_Curr_In_01
        Present: true
        Unusable: false
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=ProLiant-DL380-Gen10:server-id=FC-HPDL380G10-83:chassis-id=/chassis=0/psu=0?sensor=PS_Curr_In_01
  group: authority                      version: 1   stability: Private/Private
    product-id        string    ProLiant-DL380-Gen10
    chassis-id        string    
    server-id         string    FC-HPDL380G10-83
  group: facility                       version: 1   stability: Private/Private
    entity_ref        string[]  [ "PS_Curr_In_01" ]
    sensor-class      string    threshold
    type              uint32    0x101 (THRESHOLD_STATE)
    state             uint32    0x0 (NO_STATES_ASSERTED)
    reading           double    0.500000
    units             uint32    0x5 (AMPS)

I have also check with ipmitool on linux that it reports the same sensors without thresholds returning the same 0xc1 (invalid command) completion code.


Related issues

Related to illumos gate - Feature #9502: expose thresholds as properties on sensor facility nodesClosedRob Johnston2018-04-25

Actions
Actions #1

Updated by Yuri Pankov 2 months ago

  • Related to Feature #9502: expose thresholds as properties on sensor facility nodes added
Actions #2

Updated by Electric Monk 2 months ago

  • Gerrit CR set to 2167
Actions

Also available in: Atom PDF