hardware: add new sensors to alarm-inventory

After previous commits we saw failures on live boxes that nonoperational
alarm is not registered in alarm-inventory for some components.
And indeed. We fill alarm-inventory right after the Hardware classes
are constructed. However, when the pluggable components are not present
at that time, then its thresholds would not get passed to IETFHardware.
And we read active sensors based on the keys of sensor XPath to
Thresholds mapping.

The simple solution was to load all the active sensors and their
thresholds with every HW state poll. Then, we'd sync the
alarm-inventory with the current state of the active sensors. However,
this could not work. If the sensor is unplugged, we'd delete all
alarm-inventory entries for this sensor but then we can't publish the
missing sensor alarm.

Therefore, let's do it like in health tracking alarms for systemd
services: Publish new alarm-inventory entries but do not delete them.

Change-Id: I8a9b85e3b11f3ea4d66a48241d39b808a8b5dffa
10 files changed
tree: dc2b7e93bee972ff588e6c883e26831e0188dfff
  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.