power: prevent spurious alarms about "missing devices" during init

When the background thread is "too slow" to initialize the I2C devices,
the main thread might run faster and request hwmon data before the
driver got a chance to bind to the device. When that happens, it looks
as if the HW device was missing (or that there's some I2C communication
error), like this:

 coherent-a-d-DQ000V9U ~ # velia-list-alarms
    Resource              Severity  Detail                                                            Last raised                          Status
 ✕  ne:pdu                critical  I2C read failure for PDU. Could not get hardware sensor details.  2024-10-10T19:15:23.292255297+00:00  cleared
 ✕  ne:psu1               critical  PSU is unplugged.                                                 2024-10-10T19:15:23.364300978+00:00  cleared
 ✕  ne:psu2               critical  PSU is unplugged.                                                 2024-10-10T19:15:23.446781485+00:00  cleared

This is really just a nuisance alarm, so make sure that it doesn't
happen during the initial service start.

Change-Id: Ia61dfe618ce1b44b49195d1eb272eee94a155bb6
2 files changed
tree: a8c9ab2fb0c171c21dbbdb29fb945eada7af1aea
  1. .clang-format
  2. .gitmodules
  3. .zuul.yaml
  4. CMakeLists.txt
  5. Doxyfile.in
  6. LICENSE
  7. LICENSE.md
  8. README.md
  9. ci/
  10. cmake/
  11. docs/
  12. src/
  13. tests/
  14. yang/
README.md

YANG System management for embedded devices running Linux

Together with sysrepo, this software provides "general system management" of embedded devices. The target platform is anything that runs Linux with systemd. This runs in production on CzechLight SDN DWDM devices.

Health tracking

This component tracks the overal health state of the system, including various sensors, or the state of systemd units. As an operator-friendly LED at the front panel of the appliance shows the aggregated health state.

System management

Firmware can be updated via RAUC, and various aspects of the system's configuration can be adjusted. This includes a firewall, basic network settings, and authentication management.

Supported YANG models

For a full list, consult the yang/ directory in this repository.

Installation

For building, one needs:

The build process uses CMake. A quick-and-dirty build with no fancy options can be as simple as mkdir build && cd build && cmake .. && make && make install.