monitor: Add fan_frus_with_nonfunc_rotors cause

Create a new power off rule to power off when a specific number of fan
FRUs have nonfunctional rotors.  With this rule failing rotors can be
treated differently when they are spread across fans FRUS than when they
are within the same fan FRU.

For example, if both rotors of a 2 rotor fan fail the system can stay
up, but if 2 rotors in separate fans fail then the system could be made
to power off.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: Ia1d13596a9e8a6e3a361e5b631699a3c80e36fb8
diff --git a/monitor/json_parser.cpp b/monitor/json_parser.cpp
index bf37307..20a3bcb 100644
--- a/monitor/json_parser.cpp
+++ b/monitor/json_parser.cpp
@@ -436,8 +436,12 @@
         causes{
             {"missing_fan_frus",
              [count]() { return std::make_unique<MissingFanFRUCause>(count); }},
-            {"nonfunc_fan_rotors", [count]() {
+            {"nonfunc_fan_rotors",
+             [count]() {
         return std::make_unique<NonfuncFanRotorCause>(count);
+    }},
+            {"fan_frus_with_nonfunc_rotors", [count]() {
+        return std::make_unique<FanFRUsWithNonfuncRotorsCause>(count);
     }}};
 
     auto it = causes.find(powerOffCause);