monitor: Add machine JSON config files

Add the known JSON config files that exist in the openbmc repository to
be installed for each machine.

Change-Id: Ic99e525ee3aaf542e5a8ff4c49383ddd50ee55c8
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
diff --git a/monitor/config_files/p10bmc/ibm,everest/config.json b/monitor/config_files/p10bmc/ibm,everest/config.json
new file mode 100644
index 0000000..632c76b
--- /dev/null
+++ b/monitor/config_files/p10bmc/ibm,everest/config.json
@@ -0,0 +1,133 @@
+{
+   "fans": [
+      {
+         "inventory": "/system/chassis/motherboard/fan0",
+         "method": "count",
+         "count_interval": 1,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 30,
+         "fan_missing_error_delay": 20,
+         "nonfunc_rotor_error_delay": 0,
+         "sensors": [
+            {
+               "name": "fan0_0",
+               "threshold": 30,
+               "has_target": true
+            },
+            {
+               "name": "fan0_1",
+               "threshold": 30,
+               "has_target": false
+            }
+         ]
+      },
+      {
+         "inventory": "/system/chassis/motherboard/fan1",
+         "method": "count",
+         "count_interval": 1,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 30,
+         "fan_missing_error_delay": 20,
+         "nonfunc_rotor_error_delay": 0,
+         "sensors": [
+            {
+               "name": "fan1_0",
+               "threshold": 30,
+               "has_target": true
+            },
+            {
+               "name": "fan1_1",
+               "threshold": 30,
+               "has_target": false
+            }
+         ]
+      },
+      {
+         "inventory": "/system/chassis/motherboard/fan2",
+         "method": "count",
+         "count_interval": 1,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 30,
+         "fan_missing_error_delay": 20,
+         "nonfunc_rotor_error_delay": 0,
+         "sensors": [
+            {
+               "name": "fan2_0",
+               "threshold": 30,
+               "has_target": true
+            },
+            {
+               "name": "fan2_1",
+               "threshold": 30,
+               "has_target": false
+            }
+         ]
+      },
+      {
+         "inventory": "/system/chassis/motherboard/fan3",
+         "method": "count",
+         "count_interval": 1,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 30,
+         "fan_missing_error_delay": 20,
+         "nonfunc_rotor_error_delay": 0,
+         "sensors": [
+            {
+               "name": "fan3_0",
+               "threshold": 30,
+               "has_target": true
+            },
+            {
+               "name": "fan3_1",
+               "threshold": 30,
+               "has_target": false
+            }
+         ]
+      }
+   ],
+   "sensor_trust_groups": [
+      {
+         "class": "NonzeroSpeed",
+         "group": [
+            {
+               "name": "fan0_1"
+            },
+            {
+               "name": "fan1_1"
+            },
+            {
+               "name": "fan2_1"
+            },
+            {
+               "name": "fan3_1"
+            }
+         ]
+      }
+   ],
+   "fault_handling":
+   {
+       "num_nonfunc_rotors_before_error": 1,
+
+       "power_off_config":
+       [
+           {
+                "type": "hard",
+                "cause": "missing_fan_frus",
+                "count": 1,
+                "delay": 25,
+                "state": "at_pgood"
+            },
+            {
+                "type": "epow",
+                "cause": "nonfunc_fan_rotors",
+                "count": 3,
+                "service_mode_delay": 300,
+                "meltdown_delay": 300
+            }
+       ]
+   }
+}
diff --git a/monitor/config_files/p10bmc/ibm,rainier-1s4u/config.json b/monitor/config_files/p10bmc/ibm,rainier-1s4u/config.json
new file mode 100644
index 0000000..eb519d9
--- /dev/null
+++ b/monitor/config_files/p10bmc/ibm,rainier-1s4u/config.json
@@ -0,0 +1,94 @@
+{
+   "fans": [
+      {
+         "inventory": "/system/chassis/motherboard/fan0",
+         "method": "count",
+         "count_interval": 1,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 30,
+         "fan_missing_error_delay": 20,
+         "nonfunc_rotor_error_delay": 0,
+         "sensors": [
+            {
+               "name": "fan0_0",
+               "threshold": 30,
+               "has_target": true
+            }
+         ]
+      },
+      {
+         "inventory": "/system/chassis/motherboard/fan1",
+         "method": "count",
+         "count_interval": 1,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 30,
+         "fan_missing_error_delay": 20,
+         "nonfunc_rotor_error_delay": 0,
+         "sensors": [
+            {
+               "name": "fan1_0",
+               "threshold": 30,
+               "has_target": true
+            }
+         ]
+      },
+      {
+         "inventory": "/system/chassis/motherboard/fan2",
+         "method": "count",
+         "count_interval": 1,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 30,
+         "fan_missing_error_delay": 20,
+         "nonfunc_rotor_error_delay": 0,
+         "sensors": [
+            {
+               "name": "fan2_0",
+               "threshold": 30,
+               "has_target": true
+            }
+         ]
+      },
+      {
+         "inventory": "/system/chassis/motherboard/fan4",
+         "method": "count",
+         "count_interval": 1,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 30,
+         "fan_missing_error_delay": 20,
+         "nonfunc_rotor_error_delay": 0,
+         "sensors": [
+            {
+               "name": "fan4_0",
+               "threshold": 30,
+               "has_target": true
+            }
+         ]
+      }
+   ],
+   "fault_handling":
+   {
+       "num_nonfunc_rotors_before_error": 1,
+
+       "power_off_config":
+       [
+           {
+                "type": "hard",
+                "cause": "missing_fan_frus",
+                "count": 1,
+                "delay": 25,
+                "state": "at_pgood"
+            },
+            {
+                "type": "epow",
+                "cause": "nonfunc_fan_rotors",
+                "count": 2,
+                "service_mode_delay": 300,
+                "meltdown_delay": 300
+            }
+       ]
+   }
+}
diff --git a/monitor/config_files/p10bmc/ibm,rainier-2u/config.json b/monitor/config_files/p10bmc/ibm,rainier-2u/config.json
new file mode 100644
index 0000000..b4143ad
--- /dev/null
+++ b/monitor/config_files/p10bmc/ibm,rainier-2u/config.json
@@ -0,0 +1,195 @@
+{
+   "fans": [
+      {
+         "inventory": "/system/chassis/motherboard/fan0",
+         "method": "count",
+         "count_interval": 1,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 30,
+         "fan_missing_error_delay": 20,
+         "nonfunc_rotor_error_delay": 0,
+         "sensors": [
+            {
+               "name": "fan0_0",
+               "threshold": 30,
+               "has_target": true,
+               "factor": 0.627,
+               "offset": 750
+            },
+            {
+               "name": "fan0_1",
+               "threshold": 30,
+               "has_target": false
+            }
+         ]
+      },
+      {
+         "inventory": "/system/chassis/motherboard/fan1",
+         "method": "count",
+         "count_interval": 1,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 30,
+         "fan_missing_error_delay": 20,
+         "nonfunc_rotor_error_delay": 0,
+         "sensors": [
+            {
+               "name": "fan1_0",
+               "threshold": 30,
+               "has_target": true,
+               "factor": 0.627,
+               "offset": 750
+            },
+            {
+               "name": "fan1_1",
+               "threshold": 30,
+               "has_target": false
+            }
+         ]
+      },
+      {
+         "inventory": "/system/chassis/motherboard/fan2",
+         "method": "count",
+         "count_interval": 1,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 30,
+         "fan_missing_error_delay": 20,
+         "nonfunc_rotor_error_delay": 0,
+         "sensors": [
+            {
+               "name": "fan2_0",
+               "threshold": 30,
+               "has_target": true,
+               "factor": 0.627,
+               "offset": 750
+            },
+            {
+               "name": "fan2_1",
+               "threshold": 30,
+               "has_target": false
+            }
+         ]
+      },
+      {
+         "inventory": "/system/chassis/motherboard/fan3",
+         "method": "count",
+         "count_interval": 1,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 30,
+         "fan_missing_error_delay": 20,
+         "nonfunc_rotor_error_delay": 0,
+         "sensors": [
+            {
+               "name": "fan3_0",
+               "threshold": 30,
+               "has_target": true,
+               "factor": 0.627,
+               "offset": 750
+            },
+            {
+               "name": "fan3_1",
+               "threshold": 30,
+               "has_target": false
+            }
+         ]
+      },
+      {
+         "inventory": "/system/chassis/motherboard/fan4",
+         "method": "count",
+         "count_interval": 1,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 30,
+         "fan_missing_error_delay": 20,
+         "nonfunc_rotor_error_delay": 0,
+         "sensors": [
+            {
+               "name": "fan4_0",
+               "threshold": 30,
+               "has_target": true,
+               "factor": 0.627,
+               "offset": 750
+            },
+            {
+               "name": "fan4_1",
+               "threshold": 30,
+               "has_target": false
+            }
+         ]
+      },
+      {
+         "inventory": "/system/chassis/motherboard/fan5",
+         "method": "count",
+         "count_interval": 1,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 30,
+         "fan_missing_error_delay": 20,
+         "nonfunc_rotor_error_delay": 0,
+         "sensors": [
+            {
+               "name": "fan5_0",
+               "threshold": 30,
+               "has_target": true,
+               "factor": 0.627,
+               "offset": 750
+            },
+            {
+               "name": "fan5_1",
+               "threshold": 30,
+               "has_target": false
+            }
+         ]
+      }
+   ],
+   "sensor_trust_groups": [
+      {
+         "class": "NonzeroSpeed",
+         "group": [
+            {
+               "name": "fan0_1"
+            },
+            {
+               "name": "fan1_1"
+            },
+            {
+               "name": "fan2_1"
+            },
+            {
+               "name": "fan3_1"
+            },
+            {
+               "name": "fan4_1"
+            },
+            {
+               "name": "fan5_1"
+            }
+         ]
+      }
+   ],
+   "fault_handling":
+   {
+       "num_nonfunc_rotors_before_error": 1,
+
+       "power_off_config":
+       [
+           {
+                "type": "hard",
+                "cause": "missing_fan_frus",
+                "count": 1,
+                "delay": 25,
+                "state": "at_pgood"
+            },
+            {
+                "type": "epow",
+                "cause": "nonfunc_fan_rotors",
+                "count": 3,
+                "service_mode_delay": 300,
+                "meltdown_delay": 300
+            }
+       ]
+   }
+}
diff --git a/monitor/config_files/p10bmc/ibm,rainier-4u/config.json b/monitor/config_files/p10bmc/ibm,rainier-4u/config.json
new file mode 100644
index 0000000..1bfb537
--- /dev/null
+++ b/monitor/config_files/p10bmc/ibm,rainier-4u/config.json
@@ -0,0 +1,128 @@
+{
+   "fans": [
+      {
+         "inventory": "/system/chassis/motherboard/fan0",
+         "method": "count",
+         "count_interval": 1,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 30,
+         "fan_missing_error_delay": 20,
+         "nonfunc_rotor_error_delay": 0,
+         "sensors": [
+            {
+               "name": "fan0_0",
+               "threshold": 30,
+               "has_target": true
+            }
+         ]
+      },
+      {
+         "inventory": "/system/chassis/motherboard/fan1",
+         "method": "count",
+         "count_interval": 1,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 30,
+         "fan_missing_error_delay": 20,
+         "nonfunc_rotor_error_delay": 0,
+         "sensors": [
+            {
+               "name": "fan1_0",
+               "threshold": 30,
+               "has_target": true
+            }
+         ]
+      },
+      {
+         "inventory": "/system/chassis/motherboard/fan2",
+         "method": "count",
+         "count_interval": 1,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 30,
+         "fan_missing_error_delay": 20,
+         "nonfunc_rotor_error_delay": 0,
+         "sensors": [
+            {
+               "name": "fan2_0",
+               "threshold": 30,
+               "has_target": true
+            }
+         ]
+      },
+      {
+         "inventory": "/system/chassis/motherboard/fan3",
+         "method": "count",
+         "count_interval": 1,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 30,
+         "fan_missing_error_delay": 20,
+         "nonfunc_rotor_error_delay": 0,
+         "sensors": [
+            {
+               "name": "fan3_0",
+               "threshold": 30,
+               "has_target": true
+            }
+         ]
+      },
+      {
+         "inventory": "/system/chassis/motherboard/fan4",
+         "method": "count",
+         "count_interval": 1,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 30,
+         "fan_missing_error_delay": 20,
+         "nonfunc_rotor_error_delay": 0,
+         "sensors": [
+            {
+               "name": "fan4_0",
+               "threshold": 30,
+               "has_target": true
+            }
+         ]
+      },
+      {
+         "inventory": "/system/chassis/motherboard/fan5",
+         "method": "count",
+         "count_interval": 1,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 30,
+         "fan_missing_error_delay": 20,
+         "nonfunc_rotor_error_delay": 0,
+         "sensors": [
+            {
+               "name": "fan5_0",
+               "threshold": 30,
+               "has_target": true
+            }
+         ]
+      }
+   ],
+   "fault_handling":
+   {
+       "num_nonfunc_rotors_before_error": 1,
+
+       "power_off_config":
+       [
+           {
+                "type": "hard",
+                "cause": "missing_fan_frus",
+                "count": 1,
+                "delay": 25,
+                "state": "at_pgood"
+            },
+            {
+                "type": "epow",
+                "cause": "nonfunc_fan_rotors",
+                "count": 2,
+                "service_mode_delay": 300,
+                "meltdown_delay": 300
+            }
+       ]
+   }
+}
diff --git a/monitor/config_files/witherspoon/config.json b/monitor/config_files/witherspoon/config.json
new file mode 100644
index 0000000..f0df157
--- /dev/null
+++ b/monitor/config_files/witherspoon/config.json
@@ -0,0 +1,125 @@
+{
+   "fans": [
+      {
+         "inventory": "/system/chassis/motherboard/fan0",
+         "functional_delay": 5,
+         "allowed_out_of_range_time": 30,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 20,
+         "sensors": [
+            {
+               "name": "fan0_0",
+               "has_target": true
+            },
+            {
+               "name": "fan0_1",
+               "has_target": false
+            }
+         ]
+      },
+      {
+         "inventory": "/system/chassis/motherboard/fan1",
+         "functional_delay": 5,
+         "allowed_out_of_range_time": 30,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 20,
+         "sensors": [
+            {
+               "name": "fan1_0",
+               "has_target": true
+            },
+            {
+               "name": "fan1_1",
+               "has_target": false
+            }
+         ],
+         "condition": {
+            "name": "propertiesMatch",
+            "properties": [
+               {
+                  "object": "/xyz/openbmc_project/inventory/system/chassis",
+                  "interface": "xyz.openbmc_project.Inventory.Decorator.CoolingType",
+                  "property": {
+                     "name": "WaterCooled",
+                     "type": "bool",
+                     "value": false
+                  }
+               }
+            ]
+         }
+      },
+      {
+         "inventory": "/system/chassis/motherboard/fan2",
+         "functional_delay": 5,
+         "allowed_out_of_range_time": 30,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 20,
+         "sensors": [
+            {
+               "name": "fan2_0",
+               "has_target": true
+            },
+            {
+               "name": "fan2_1",
+               "has_target": false
+            }
+         ]
+      },
+      {
+         "inventory": "/system/chassis/motherboard/fan3",
+         "functional_delay": 5,
+         "allowed_out_of_range_time": 30,
+         "deviation": 15,
+         "num_sensors_nonfunc_for_fan_nonfunc": 1,
+         "monitor_start_delay": 20,
+         "sensors": [
+            {
+               "name": "fan3_0",
+               "has_target": true
+            },
+            {
+               "name": "fan3_1",
+               "has_target": false
+            }
+         ]
+      }
+   ],
+   "sensor_trust_groups": [
+      {
+         "class": "NonzeroSpeed",
+         "group": [
+            {
+               "name": "fan0_1"
+            },
+            {
+               "name": "fan1_1"
+            },
+            {
+               "name": "fan2_1"
+            },
+            {
+               "name": "fan3_1"
+            },
+            {
+               "name": "fan0_0",
+               "in_trust": false
+            },
+            {
+               "name": "fan1_0",
+               "in_trust": false
+            },
+            {
+               "name": "fan2_0",
+               "in_trust": false
+            },
+            {
+               "name": "fan3_0",
+               "in_trust": false
+            }
+         ]
+      }
+   ]
+}