blob: 26f369b147f6e1079aa0ee98a92acad8331d5774 [file] [log] [blame]
Brad Bishopf8a7cd12017-07-09 23:41:49 -04001# Common code for recipes that modify the phosphor-mapper
2# configuration.
3#
4# Typically it is not desired to monitor all dbus traffic
5# on a system and as such, the phosphor-mapper has command
6# line options to control what path namespaces and dbus
7# interfaces it will keep track of.
8#
9# The Phosphor layer by default configures the mapper to
10# watch xyz.openbmc_project interfaces and paths only. This
11# configuration file is intended to be inherited by
12# native recipes in other layers that wish to add namespaces
13# or interfaces to the mapper watchlist.
14
15# Add path namespaces to be monitored:
16# PHOSPHOR_MAPPER_NAMESPACE_append = " /foo/bar"
17
18# Add interfaces to be monitored:
19# PHOSPHOR_MAPPER_INTERFACE_append = " foo.bar"
20
21# Blacklist paths from being monitored:
22# PHOSPHOR_MAPPER_NAMESPACE_BLACKLIST_append = " /foo/bar/baz"
23
24# Blacklist interfaces from being monitored:
25# PHOSPHOR_MAPPER_INTERFACE_BLACKLIST_append = " foo.bar.baz"
26
27inherit phosphor-mapperdir
28
29python phosphor_mapper_do_postinst() {
30 def process_var(d, var, dir):
31 for p in listvar_to_list(d, var):
32 parent = d.getVar('D', True) + d.getVar(dir, True)
33 if not os.path.exists(parent):
34 os.makedirs(parent)
35 path = os.path.join(
36 parent,
37 '-'.join(p[1:].split(os.sep)))
38 with open(path, 'w+') as fd:
39 pass
40
41 process_var(d, 'PHOSPHOR_MAPPER_NAMESPACE', 'namespace_dir')
42 process_var(d, 'PHOSPHOR_MAPPER_INTERFACE', 'interface_dir')
43 process_var(d, 'PHOSPHOR_MAPPER_NAMESPACE_BLACKLIST', 'blacklist_dir')
44 process_var(
45 d, 'PHOSPHOR_MAPPER_INTERFACE_BLACKLIST', 'interfaceblacklist_dir')
46}
47
48do_install[vardeps] += "PHOSPHOR_MAPPER_NAMESPACE"
49do_install[vardeps] += "PHOSPHOR_MAPPER_INTERFACE"
50do_install[vardeps] += "PHOSPHOR_MAPPER_NAMESPACE_BLACKLIST"
51do_install[vardeps] += "PHOSPHOR_MAPPER_INTERFACE_BLACKLIST"
52do_install[postfuncs] += "phosphor_mapper_do_postinst"