blob: cd31676ba2ce8a0848fb9637ffbabd0064909716 [file] [log] [blame]
Matthew Barth23dcffd2021-10-19 13:36:51 -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 Barth322dbc52021-10-19 13:39:04 -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": "fan3 rotor inventory",
52 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
53 "property": { "name": "Functional" }
54 },
55 {
56 "name": "fan4 rotor inventory",
57 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
58 "property": { "name": "Functional" }
59 },
60 {
61 "name": "fan5 rotor inventory",
62 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
63 "property": { "name": "Functional" }
64 }
65 ],
66 "triggers": [
67 {
68 "class": "init",
69 "method": "get_properties"
70 },
71 {
72 "class": "signal",
73 "signal": "properties_changed"
74 }
75 ],
76 "actions": [
77 {
78 "name": "count_state_before_target",
79 "count": 1,
80 "state": false,
81 "target": 10000
82 }
83 ]
Matthew Barth09b09e52021-10-28 15:29:13 -050084 },
85 {
86 // Hold fans at the given target when any critical service
87 // is not running for 5 seconds.
88 "name": "service(s) missing",
89 "groups": [
90 {
91 "name": "occ objects",
92 "interface": "org.open_power.OCC.Status",
93 "property": { "name": "OccActive" }
94 }
95 ],
96 "triggers": [
97 {
98 "class": "init",
99 "method": "name_has_owner"
100 },
101 {
102 "class": "signal",
103 "signal": "name_owner_changed"
104 }
105 ],
106 "actions": [
107 {
108 "name": "call_actions_based_on_timer",
109 "timer": {
110 "interval": 5000000,
111 "type": "oneshot"
112 },
113 "actions": [
114 {
115 "name": "set_target_on_missing_owner",
116 "groups": [
117 {
118 "name": "fan inventory",
119 "interface": "xyz.openbmc_project.Inventory.Item",
120 "property": { "name": "Present" }
121 },
122 {
123 "name": "occ objects",
124 "interface": "org.open_power.OCC.Status",
125 "property": { "name": "OccActive" }
126 }
127 ],
128 "target": 10000
129 }
130 ]
131 }
132 ]
Matthew Barth23dcffd2021-10-19 13:36:51 -0500133 }
134]