commit | 92b14e4ff734092e2c490961a23a1f85aa61a4b3 | [log] [tgz] |
---|---|---|
author | Tomáš Pecka <tomas.pecka@fit.cvut.cz> | Wed Jan 27 17:33:11 2021 +0100 |
committer | Tomáš Pecka <tomas.pecka@cesnet.cz> | Mon Feb 08 20:47:04 2021 +0100 |
tree | f1acfc3980aff05cbed5e9dc2e23d4a412d8296c | |
parent | d51d4cbb866342113f4cc6dc753178e607918a48 [diff] |
system: implement firmware status in czechlight-system This patch implements filling the data in the czechlight-system:firmware/firmware-slot list. The list is supposed to hold the basic information about the current firmware slot OS version and boot status. All the data are provided by RAUC. Because RAUC provides the slot data vis D-Bus only when explicitly asked by GetSlotStatus function over and there are no signals (or signals about property changes), we have to actually call the function to retrieve the data. However, there is one catch. RAUC will not provide us with the data when there is another operation in progress (i.e., when somebody invoked installation). Therefore, we cache the data and we provide the caller with the cached data whenever we can't fetch fresh data. There is, however, another catch. The data can change any time, not only after installation of new bundle. They can also change whenever somebody marks a slot bad/good. We can't capture that change unless we are querying the RAUC periodically, which we do not want to. Let's say, somebody marks the slot bad and then run an installation. During the installation he/she asks for the slot data. However, RAUC won't let us fetch the data (because it is fully devoted to the installation process), so we would return the old data, where the slot is still good. So, at least, we update the cache also before and after any installation, because that is the only long-running operation in RAUC. Change-Id: I890bf6813f15f9629a0c6acd516216e88d6cd986
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.
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.
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.
For a full list, consult the yang/
directory in this repository.