Project

General

Profile

Actions

Bug #14720

closed

fac_prov_ipmi: missing thresholds should not be considered error

Added by Yuri Pankov over 1 year ago. Updated over 1 year ago.

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

100%

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

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 over 1 year ago

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

Updated by Electric Monk over 1 year ago

  • Gerrit CR set to 2167
Actions #3

Updated by Yuri Pankov over 1 year ago

  • Status changed from In Progress to Pending RTI
Actions #4

Updated by Yuri Pankov over 1 year ago

  • Status changed from Pending RTI to Resolved
  • % Done changed from 90 to 100
commit 22e991d5bb9d07bf7dd2a65bc080922753a3100b
Author: Yuri Pankov <ypankov@tintri.com>
Date:   Tue May 31 22:28:18 2022 +0300

    14720 fac_prov_ipmi: missing thresholds should not be considered error
    Reviewed by: Alexander Eremin <aeremin@tintri.com>
    Reviewed by: Andrew Giles <agiles@tintri.com>
    Reviewed by: Ben Jameson <bjameson@tintri.com>
    Reviewed by: Toomas Soome <tsoome@me.com>
    Approved by: Gordon Ross <gordon.w.ross@gmail.com>
Actions

Also available in: Atom PDF