commit | 91799dbd7bde184f1c7db1525df9329e841512ad | [log] [tgz] |
---|---|---|
author | Tao Lin <lintao.lc@inspur.com> | Wed Jul 27 21:02:20 2022 +0800 |
committer | Patrick Williams <patrick@stwcx.xyz> | Tue Nov 01 16:16:08 2022 +0000 |
tree | 6419cb8a4cf5a815dbeaf01365a8ec224194380a | |
parent | 71b9c11676a08d7659c0d88a39c4de688d0feedd [diff] |
Update threshold to entity-manager Save path&interface when creating thresholds,and then set DBUS value corresponding to path&interface when setting thresholds; I have a requirement to set the threshold to restart without losing. In addition, I can see that the threshold can be saved in the file in the entity-manager, which can meet my requirements. Data flow: Old version: IPMI set threshold -> virtualsensors (DBUS) What I want to achieve: IPMI set threshold -> virtualsensors (DBUS) -> filesystem I found that it can be implemented as follows: IPMI set threshold -> virtual-sensors (DBUS) -> entitymanager -> filesystem Because the threshold setting in dbus-sensors is: IPMI set threshold -> dbus-sensors (DBUS) -> entitymanager -> filesystem Tested: The following print result shows this process: IPMI set threshold -> virtual sensors (DBUS) -> entitymanager root@NULL:~# busctl introspect xyz.openbmc_project.EntityManager /xyz/openbmc_project/inventory/system/nvme/NVMe_MAX/NVMe_MAX_Temp xyz.openbmc_project.Configuration.ModifiedMedian.Thresholds0 NAME TYPE SIGNATURE RESULT/VALUE FLAGS .Delete method - - - .Direction property s "greater than" emits-change writable .Name property s "upper critical" emits-change writable .Severity property d 1 emits-change writable .Value property d 116 emits-change writable root@NULL:~# ipmitool sensor list | grep NVM NVMe_MAX_Temp | na | degrees C | na | na | 1.000 | 6.000 | 111.000 | 116.000 | na root@NULL:~# ipmitool sensor thresh NVMe_MAX_Temp ucr 119 Locating sensor record 'NVMe_MAX_Temp'... Setting sensor "NVMe_MAX_Temp" Upper Critical threshold to 119.000 root@NULL:~# ipmitool sensor list | grep NVM NVMe_MAX_Temp | na | degrees C | na | na | 1.000 | 6.000 | 111.000 | 119.000 | na root@NULL:~# busctl introspect xyz.openbmc_project.EntityManager /xyz/openbmc_project/inventory/system/nvme/NVMe_MAX/NVMe_MAX_Temp xyz.openbmc_project.Configuration.ModifiedMedian.Thresholds0 NAME TYPE SIGNATURE RESULT/VALUE FLAGS .Delete method - - - .Direction property s "greater than" emits-change writable .Name property s "upper critical" emits-change writable .Severity property d 1 emits-change writable .Value property d 119 emits-change writable root@NULL:~# busctl introspect xyz.openbmc_project.EntityManager /xyz/openbmc_project/inventory/system/nvme/NVMe_MAX/NVMe_MAX_Temp xyz.openbmc_project.Configuration.ModifiedMedian.Thresholds0 NAME TYPE SIGNATURE RESULT/VALUE FLAGS .Delete method - - - .Direction property s "greater than" emits-change writable .Name property s "upper critical" emits-change writable .Severity property d 1 emits-change writable .Value property d 119 emits-change writable root@NULL:~# Signed-off-by: Tao Lin <lintao.lc@inspur.com> Change-Id: I0f5eeb06d0b3aaf4f5806bfa68672dedcb087f26
phosphor-virtual-sensor reads in virtual_sensor_config.json There are two types of data in this file:
See virtual_sensor_config.json in this repository for an example. Sensors added this way can use any expression that is accepted by exprtk.
For example:
{ "Desc": { "Config": "D-Bus", "Type": "ModifiedMedian" } }
Sensors added this way can only use a set of restricted calculations. At this stage the only type supported is modifiedMedian.
The virtual sensor configuration information needs to be added into the relevant hardware configuration file in entity-manager. This method of adding a virtual sensor allows a recipe that builds for different hardware configurations to have different virtual sensors for each configuration.
The virtual sensor configuration in entity manager follows a different format to the JSON in virtual_sensor_config.json (specified in entity-manager/schemas/VirtualSensor.json).