blob: fbe3ed7de036f8d74e1db9f7be1e824f96761628 [file] [log] [blame]
Matthew Barthb477a562021-10-19 14:39:19 -05001[
2 {
3 // Hold fans at the given target when a number of fans are missing.
4 "name": "fan(s) missing",
5 "groups": [
6 {
7 "name": "fan inventory",
8 "interface": "xyz.openbmc_project.Inventory.Item",
9 "property": { "name": "Present" }
10 }
11 ],
12 "triggers": [
13 {
14 "class": "init",
15 "method": "get_properties"
16 },
17 {
18 "class": "signal",
19 "signal": "properties_changed"
20 }
21 ],
22 "actions": [
23 {
24 "name": "count_state_before_target",
25 "count": 1,
26 "state": false,
27 "target": 10000
28 }
29 ]
Matthew Barthdc593cb2021-10-19 14:43:41 -050030 },
31 {
32 // Hold fans at the given target when a number of rotors are nonfunctional.
33 "name": "fan rotor(s) faulted",
34 "groups": [
35 {
36 "name": "fan0 rotor inventory",
37 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
38 "property": { "name": "Functional" }
39 },
40 {
41 "name": "fan1 rotor inventory",
42 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
43 "property": { "name": "Functional" }
44 },
45 {
46 "name": "fan2 rotor inventory",
47 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
48 "property": { "name": "Functional" }
49 },
50 {
51 "name": "fan4 rotor inventory",
52 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
53 "property": { "name": "Functional" }
54 }
55 ],
56 "triggers": [
57 {
58 "class": "init",
59 "method": "get_properties"
60 },
61 {
62 "class": "signal",
63 "signal": "properties_changed"
64 }
65 ],
66 "actions": [
67 {
68 "name": "count_state_before_target",
69 "count": 1,
70 "state": false,
71 "target": 10000
72 }
73 ]
Matthew Barth09b09e52021-10-28 15:29:13 -050074 },
75 {
76 // Hold fans at the given target when any critical service
77 // is not running for 5 seconds.
78 "name": "service(s) missing",
79 "groups": [
80 {
81 "name": "occ objects",
82 "interface": "org.open_power.OCC.Status",
83 "property": { "name": "OccActive" }
84 }
85 ],
86 "triggers": [
87 {
88 "class": "init",
89 "method": "name_has_owner"
90 },
91 {
92 "class": "signal",
93 "signal": "name_owner_changed"
94 }
95 ],
96 "actions": [
97 {
98 "name": "call_actions_based_on_timer",
99 "timer": {
100 "interval": 5000000,
101 "type": "oneshot"
102 },
103 "actions": [
104 {
105 "name": "set_target_on_missing_owner",
106 "groups": [
107 {
108 "name": "fan inventory",
109 "interface": "xyz.openbmc_project.Inventory.Item",
110 "property": { "name": "Present" }
111 },
112 {
113 "name": "occ objects",
114 "interface": "org.open_power.OCC.Status",
115 "property": { "name": "OccActive" }
116 }
117 ],
118 "target": 10000
119 }
120 ]
121 }
122 ]
Matthew Barthb477a562021-10-19 14:39:19 -0500123 }
124]