1*3420426cSMatt Spinler{
2*3420426cSMatt Spinler    "fans": [
3*3420426cSMatt Spinler        {
4*3420426cSMatt Spinler            "inventory": "/system/chassis/motherboard/fan0",
5*3420426cSMatt Spinler            "method": "count",
6*3420426cSMatt Spinler            "count_interval": 1,
7*3420426cSMatt Spinler            "deviation": 15,
8*3420426cSMatt Spinler            "num_sensors_nonfunc_for_fan_nonfunc": 0,
9*3420426cSMatt Spinler            "monitor_start_delay": 30,
10*3420426cSMatt Spinler            "fan_missing_error_delay": 20,
11*3420426cSMatt Spinler            "nonfunc_rotor_error_delay": 0,
12*3420426cSMatt Spinler            "set_func_on_present": true,
13*3420426cSMatt Spinler            "sensors": [
14*3420426cSMatt Spinler                {
15*3420426cSMatt Spinler                    "name": "fan0_0",
16*3420426cSMatt Spinler                    "threshold": 45,
17*3420426cSMatt Spinler                    "has_target": true
18*3420426cSMatt Spinler                },
19*3420426cSMatt Spinler                {
20*3420426cSMatt Spinler                    "name": "fan0_1",
21*3420426cSMatt Spinler                    "threshold": 45,
22*3420426cSMatt Spinler                    "has_target": false
23*3420426cSMatt Spinler                }
24*3420426cSMatt Spinler            ]
25*3420426cSMatt Spinler        },
26*3420426cSMatt Spinler        {
27*3420426cSMatt Spinler            "inventory": "/system/chassis/motherboard/fan1",
28*3420426cSMatt Spinler            "method": "count",
29*3420426cSMatt Spinler            "count_interval": 1,
30*3420426cSMatt Spinler            "deviation": 15,
31*3420426cSMatt Spinler            "num_sensors_nonfunc_for_fan_nonfunc": 0,
32*3420426cSMatt Spinler            "monitor_start_delay": 30,
33*3420426cSMatt Spinler            "fan_missing_error_delay": 20,
34*3420426cSMatt Spinler            "nonfunc_rotor_error_delay": 0,
35*3420426cSMatt Spinler            "set_func_on_present": true,
36*3420426cSMatt Spinler            "sensors": [
37*3420426cSMatt Spinler                {
38*3420426cSMatt Spinler                    "name": "fan1_0",
39*3420426cSMatt Spinler                    "threshold": 45,
40*3420426cSMatt Spinler                    "has_target": true
41*3420426cSMatt Spinler                },
42*3420426cSMatt Spinler                {
43*3420426cSMatt Spinler                    "name": "fan1_1",
44*3420426cSMatt Spinler                    "threshold": 45,
45*3420426cSMatt Spinler                    "has_target": false
46*3420426cSMatt Spinler                }
47*3420426cSMatt Spinler            ]
48*3420426cSMatt Spinler        },
49*3420426cSMatt Spinler        {
50*3420426cSMatt Spinler            "inventory": "/system/chassis/motherboard/fan2",
51*3420426cSMatt Spinler            "method": "count",
52*3420426cSMatt Spinler            "count_interval": 1,
53*3420426cSMatt Spinler            "deviation": 15,
54*3420426cSMatt Spinler            "num_sensors_nonfunc_for_fan_nonfunc": 0,
55*3420426cSMatt Spinler            "monitor_start_delay": 30,
56*3420426cSMatt Spinler            "fan_missing_error_delay": 20,
57*3420426cSMatt Spinler            "nonfunc_rotor_error_delay": 0,
58*3420426cSMatt Spinler            "set_func_on_present": true,
59*3420426cSMatt Spinler            "sensors": [
60*3420426cSMatt Spinler                {
61*3420426cSMatt Spinler                    "name": "fan2_0",
62*3420426cSMatt Spinler                    "threshold": 45,
63*3420426cSMatt Spinler                    "has_target": true
64*3420426cSMatt Spinler                },
65*3420426cSMatt Spinler                {
66*3420426cSMatt Spinler                    "name": "fan2_1",
67*3420426cSMatt Spinler                    "threshold": 45,
68*3420426cSMatt Spinler                    "has_target": false
69*3420426cSMatt Spinler                }
70*3420426cSMatt Spinler            ]
71*3420426cSMatt Spinler        },
72*3420426cSMatt Spinler        {
73*3420426cSMatt Spinler            "inventory": "/system/chassis/motherboard/fan3",
74*3420426cSMatt Spinler            "method": "count",
75*3420426cSMatt Spinler            "count_interval": 1,
76*3420426cSMatt Spinler            "deviation": 15,
77*3420426cSMatt Spinler            "num_sensors_nonfunc_for_fan_nonfunc": 0,
78*3420426cSMatt Spinler            "monitor_start_delay": 30,
79*3420426cSMatt Spinler            "fan_missing_error_delay": 20,
80*3420426cSMatt Spinler            "nonfunc_rotor_error_delay": 0,
81*3420426cSMatt Spinler            "set_func_on_present": true,
82*3420426cSMatt Spinler            "sensors": [
83*3420426cSMatt Spinler                {
84*3420426cSMatt Spinler                    "name": "fan3_0",
85*3420426cSMatt Spinler                    "threshold": 45,
86*3420426cSMatt Spinler                    "has_target": true
87*3420426cSMatt Spinler                },
88*3420426cSMatt Spinler                {
89*3420426cSMatt Spinler                    "name": "fan3_1",
90*3420426cSMatt Spinler                    "threshold": 45,
91*3420426cSMatt Spinler                    "has_target": false
92*3420426cSMatt Spinler                }
93*3420426cSMatt Spinler            ]
94*3420426cSMatt Spinler        }
95*3420426cSMatt Spinler    ],
96*3420426cSMatt Spinler    "sensor_trust_groups": [
97*3420426cSMatt Spinler        {
98*3420426cSMatt Spinler            "class": "NonzeroSpeed",
99*3420426cSMatt Spinler            "group": [
100*3420426cSMatt Spinler                {
101*3420426cSMatt Spinler                    "name": "fan0_1"
102*3420426cSMatt Spinler                },
103*3420426cSMatt Spinler                {
104*3420426cSMatt Spinler                    "name": "fan1_1"
105*3420426cSMatt Spinler                },
106*3420426cSMatt Spinler                {
107*3420426cSMatt Spinler                    "name": "fan2_1"
108*3420426cSMatt Spinler                },
109*3420426cSMatt Spinler                {
110*3420426cSMatt Spinler                    "name": "fan3_1"
111*3420426cSMatt Spinler                }
112*3420426cSMatt Spinler            ]
113*3420426cSMatt Spinler        }
114*3420426cSMatt Spinler    ],
115*3420426cSMatt Spinler    "fault_handling": {
116*3420426cSMatt Spinler        "num_nonfunc_rotors_before_error": 1,
117*3420426cSMatt Spinler
118*3420426cSMatt Spinler        "power_off_config": [
119*3420426cSMatt Spinler            {
120*3420426cSMatt Spinler                "type": "hard",
121*3420426cSMatt Spinler                "cause": "missing_fan_frus",
122*3420426cSMatt Spinler                "count": 1,
123*3420426cSMatt Spinler                "delay": 25,
124*3420426cSMatt Spinler                "state": "at_pgood"
125*3420426cSMatt Spinler            },
126*3420426cSMatt Spinler            {
127*3420426cSMatt Spinler                "type": "epow",
128*3420426cSMatt Spinler                "cause": "nonfunc_fan_rotors",
129*3420426cSMatt Spinler                "count": 2,
130*3420426cSMatt Spinler                "service_mode_delay": 150,
131*3420426cSMatt Spinler                "meltdown_delay": 150
132*3420426cSMatt Spinler            }
133*3420426cSMatt Spinler        ]
134*3420426cSMatt Spinler    }
135*3420426cSMatt Spinler}
136