diff options
author | Matt Spinler <spinler@us.ibm.com> | 2017-09-28 13:13:08 -0500 |
---|---|---|
committer | Matt Spinler <spinler@us.ibm.com> | 2017-10-11 09:25:04 -0500 |
commit | c39e859b44c7d9152c76462ab4848060c840ab29 (patch) | |
tree | 00cd5f026646677c4275e854183633e83ed341be /monitor/fan.cpp | |
parent | 35108a774758099abb80299c8732b830418fa2ad (diff) | |
download | phosphor-fan-presence-c39e859b44c7d9152c76462ab4848060c840ab29.tar.gz phosphor-fan-presence-c39e859b44c7d9152c76462ab4848060c840ab29.zip |
monitor: Start checking tach trust
The Fan class now uses the trust::Manager class
to ask if a sensor value is trusted before analyzing
its value against the upper and lower limits.
Change-Id: I81dd468877873ba84753d76395b4a59129824c0b
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Diffstat (limited to 'monitor/fan.cpp')
-rw-r--r-- | monitor/fan.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/monitor/fan.cpp b/monitor/fan.cpp index a2e0386..ba0744a 100644 --- a/monitor/fan.cpp +++ b/monitor/fan.cpp @@ -39,11 +39,13 @@ constexpr auto OPERATIONAL_STATUS_INTF = Fan::Fan(Mode mode, sdbusplus::bus::bus& bus, phosphor::fan::event::EventPtr& events, + std::unique_ptr<trust::Manager>& trust, const FanDefinition& def) : _bus(bus), _name(std::get<fanNameField>(def)), _deviation(std::get<fanDeviationField>(def)), - _numSensorFailsForNonFunc(std::get<numSensorFailsForNonfuncField>(def)) + _numSensorFailsForNonFunc(std::get<numSensorFailsForNonfuncField>(def)), + _trustManager(trust) { //Start from a known state of functional updateInventory(true); @@ -64,6 +66,8 @@ Fan::Fan(Mode mode, std::get<hasTargetField>(s), std::get<timeoutField>(def), events)); + + _trustManager->registerSensor(_sensors.back()); } catch (InvalidSensorError& e) { @@ -89,6 +93,14 @@ void Fan::tachChanged() void Fan::tachChanged(TachSensor& sensor) { + if (_trustManager->active()) + { + if (!_trustManager->checkTrust(sensor)) + { + return; + } + } + auto running = sensor.timerRunning(); //If this sensor is out of range at this moment, start |