blob: d76e3adf656f38da42d4a8d1418e989bedce1e95 [file] [log] [blame]
Brad Bishop870c3fc2017-05-22 23:23:13 -04001# Example PDM configuration file.
Brad Bishop0e7df132017-05-23 17:58:12 -04002
3- name: example path group
4 description: >
5 'A path group is a named collection of DBus object
6 paths and associated metadata. These collections
7 serve only to be referenced by other configuration
8 directives.
9
10 The metadata element has different uses depending
11 on the referencing directive.
12
13 Within a single configuration file path group names
14 must be unique. The same name can appear in multiple
15 configuration files; however, the referencing directive
16 will only search for the group in the same configuration
17 file.'
18 class: group
19 group: path
20 members:
21 - meta: path
22 path: /xyz/openbmc_project/testing/inst1
23 - meta: path
24 path: /xyz/openbmc_project/testing/inst2
25 - meta: path
26 path: /xyz/openbmc_project/testing/inst3
27 - meta: path
28 path: /xyz/openbmc_project/testing/inst4
Brad Bishope73b2c32017-05-23 18:01:54 -040029
30- name: example property group
31 description: >
32 'Like path groups, a property group is a named collection
33 of DBus property names and associated metadata.
34
35 Properties in a group must all have the same DBus type signature
36 and must be explicitly declared.'
37 class: group
38 group: property
39 type: uint32
40 members:
41 - interface: xyz.openbmc_project.Sensor.Value
42 meta: property
43 property: ValueA
44 - interface: xyz.openbmc_project.Sensor.Value
45 meta: property
46 property: ValueB
Brad Bishop4b916f12017-05-23 18:06:38 -040047
48- name: example property watch
49 description: >
50 'A property watch instructs PDM to maintain a cache of the state
Brad Bishopfccdc392017-05-22 21:11:09 -040051 of the specified properties on the specified DBus objects.
52
53 An optional callback can be triggered when property values change.'
Brad Bishop4b916f12017-05-23 18:06:38 -040054 class: watch
55 watch: property
56 paths: example path group
57 properties: example property group
Brad Bishopfccdc392017-05-22 21:11:09 -040058 callback: example count condition
Brad Bishopc1283ae2017-05-20 21:42:38 -040059
60- name: example journal callback
61 description: >
62 'Callbacks are actions PDM should take when instructed to do so.
63
64 Some callback types refer to a group of paths and group of properties
65 in a similar fashion as the property watch directive.
66
67 The journal callback logs the specified message to the systemd journal
68 with the specified severity.
69
70 Additionally, the journal callback will add to the journal key value
71 pair metadata for each property in the specified property group with
72 the key being the property element metadata and the value being the
73 property value.'
74 class: callback
75 callback: journal
76 paths: example path group
77 properties: example property group
78 severity: INFO
79 message: Hello world from PDM!
Brad Bishop49e66172017-05-23 19:16:21 -040080
Brad Bishop0df00be2017-05-25 23:38:37 -040081- name: example method callback
82 description: >
83 'The method callback invokes the specified DBus method.'
84 class: callback
85 callback: method
86 service: org.freedesktop.systemd1
87 path: /org/freedesktop/systemd1
88 interface: org.freedesktop.systemd1.Manager
89 method: StartUnit
90 args:
91 - value: foo.unit
92 type: string
93 - value: replace
94 type: string
95
Brad Bishop49e66172017-05-23 19:16:21 -040096- name: example callback group
97 description: >
98 'Callbacks groups are simply named collections of other callbacks.
99 Configuration file directives can only refer to a single callback.
100 Through use of a group, these configuration file directives can
101 refer to more than one callback.
102
103 For example for a given event, one may wish to trace multiple
104 messages to the systemd journal. The journal callback does not
105 support tracing multiple messages. To do that, define a callback
106 group composed of multiple journal callbacks.
107
108 This example callback group only has one member. To add more, add
109 additional callbacks to the members element.'
110 class: callback
111 callback: group
112 members:
113 - example journal callback
Brad Bishop4041d722017-05-21 10:06:07 -0400114
115- name: example count condition
116 description: >
117 'Conditions or conditional callbacks apply a test prior to invoking
118 the callback function.
119
120 All conditional callbacks must specify the callback to issue if
121 the condition evaulates.
122
123 The count condition applies the op comparison operator to the value of each
124 property in the specified groups. It then counts the number of properties
125 that pass the comparison, and applies another comparison on the result
126 against the specified bound.
127
128 For example, a callback that requires at least three temperature sensors
129 in the group to be higher than 115 degrees might use a count condition
130 with an op of >, a count op of >=, a bound of 115, and a countbound of 3.'
131
132 class: condition
133 condition: count
134 paths: example path group
135 properties: example property group
136 callback: example callback group
137 countop: '>='
138 countbound: 3
139 op: '>='
140 bound: 115