summaryrefslogtreecommitdiffstats
path: root/meta-phosphor/recipes-phosphor/dbus
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2018-10-22 20:48:49 -0400
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2018-10-29 21:59:15 -0400
commit4f045d0b1bd11f4529a4b25c69a95ac043fe9e76 (patch)
treee076890092af8dbda6f57726c534e8f317e1c74b /meta-phosphor/recipes-phosphor/dbus
parent24dc4d718b07918a78407cacc7d2612850ddd863 (diff)
downloadtalos-openbmc-4f045d0b1bd11f4529a4b25c69a95ac043fe9e76.tar.gz
talos-openbmc-4f045d0b1bd11f4529a4b25c69a95ac043fe9e76.zip
phosphor-mapper: Add service namespaces
The c++ mapper implements a dbus service namespace whitelist instead of a path namespace whitelist. A service namespace whitelist significantly reduces the amount of introspection required by the mapper as compared to path namespaces. Add the service namespace whitelist to the mapper command line in the mapper systemd unit and extend the existing framework for specifying mapper command line arguments to include a service namespace whitelist. Note that support for a _service_ blacklist is added and _path_ and _interface_ blacklists are not being re-introduced. (From meta-phosphor rev: 385c63fee1d7ac4f34165de7095f2e76b10f1328) Change-Id: I0cc8f7d7dd0c1196b2354118cf6ab89b2d30231f Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'meta-phosphor/recipes-phosphor/dbus')
-rw-r--r--meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-interfaces-mapper-config-native.bb1
-rw-r--r--meta-phosphor/recipes-phosphor/dbus/phosphor-legacy-namespace-mapper-config-native.bb1
-rw-r--r--meta-phosphor/recipes-phosphor/dbus/phosphor-mapper-config-native.bb7
-rw-r--r--meta-phosphor/recipes-phosphor/dbus/phosphor-mapper/xyz.openbmc_project.ObjectMapper.service4
-rw-r--r--meta-phosphor/recipes-phosphor/dbus/phosphor-mapper_git.bb16
5 files changed, 28 insertions, 1 deletions
diff --git a/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-interfaces-mapper-config-native.bb b/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-interfaces-mapper-config-native.bb
index c39e0a34f..e87f22546 100644
--- a/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-interfaces-mapper-config-native.bb
+++ b/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-interfaces-mapper-config-native.bb
@@ -8,4 +8,5 @@ inherit native
inherit obmc-phosphor-license
PHOSPHOR_MAPPER_NAMESPACE_append = " /xyz/openbmc_project"
+PHOSPHOR_MAPPER_SERVICE_append = " xyz.openbmc_project"
PHOSPHOR_MAPPER_INTERFACE_append = " xyz.openbmc_project"
diff --git a/meta-phosphor/recipes-phosphor/dbus/phosphor-legacy-namespace-mapper-config-native.bb b/meta-phosphor/recipes-phosphor/dbus/phosphor-legacy-namespace-mapper-config-native.bb
index 67199f9f0..69c777944 100644
--- a/meta-phosphor/recipes-phosphor/dbus/phosphor-legacy-namespace-mapper-config-native.bb
+++ b/meta-phosphor/recipes-phosphor/dbus/phosphor-legacy-namespace-mapper-config-native.bb
@@ -7,4 +7,5 @@ inherit native
inherit obmc-phosphor-license
PHOSPHOR_MAPPER_NAMESPACE_append = " /org/openbmc"
+PHOSPHOR_MAPPER_SERVICE_append = " org.openbmc"
PHOSPHOR_MAPPER_INTERFACE_append = " org.openbmc"
diff --git a/meta-phosphor/recipes-phosphor/dbus/phosphor-mapper-config-native.bb b/meta-phosphor/recipes-phosphor/dbus/phosphor-mapper-config-native.bb
index dcc5bd3c1..9e2f43f24 100644
--- a/meta-phosphor/recipes-phosphor/dbus/phosphor-mapper-config-native.bb
+++ b/meta-phosphor/recipes-phosphor/dbus/phosphor-mapper-config-native.bb
@@ -24,10 +24,17 @@ DEPENDS += "${PHOSPHOR_MAPPER_CONFIGS}"
# Add path namespaces to be monitored.
PHOSPHOR_MAPPER_NAMESPACE = ""
+# Add services to be monitored.
+PHOSPHOR_MAPPER_SERVICE = ""
+
# Add interfaces to be monitored.
PHOSPHOR_MAPPER_INTERFACE = ""
+# Blacklist services from being monitored.
+PHOSPHOR_MAPPER_SERVICE_BLACKLIST = ""
+
do_install() {
install -d ${D}/${namespace_dir}
install -d ${D}/${interface_dir}
+ install -d ${D}/${serviceblacklist_dir}
}
diff --git a/meta-phosphor/recipes-phosphor/dbus/phosphor-mapper/xyz.openbmc_project.ObjectMapper.service b/meta-phosphor/recipes-phosphor/dbus/phosphor-mapper/xyz.openbmc_project.ObjectMapper.service
index 394e0edd1..69fb1e212 100644
--- a/meta-phosphor/recipes-phosphor/dbus/phosphor-mapper/xyz.openbmc_project.ObjectMapper.service
+++ b/meta-phosphor/recipes-phosphor/dbus/phosphor-mapper/xyz.openbmc_project.ObjectMapper.service
@@ -8,7 +8,9 @@ Restart=always
Type=dbus
ExecStart=/usr/bin/env phosphor-mapper \
--path_namespaces="${{MAPPER_NAMESPACES}}" \
- --interface_namespaces="${{MAPPER_INTERFACES}}"
+ --service_namespaces="${{MAPPER_SERVICES}}" \
+ --interface_namespaces="${{MAPPER_INTERFACES}}" \
+ --service_blacklists="${{MAPPER_SERVICEBLACKLISTS}}"
SyslogIdentifier=phosphor-mapper
BusName={BUSNAME}
TimeoutStartSec=300
diff --git a/meta-phosphor/recipes-phosphor/dbus/phosphor-mapper_git.bb b/meta-phosphor/recipes-phosphor/dbus/phosphor-mapper_git.bb
index 9e0e7c243..c4c7f51f8 100644
--- a/meta-phosphor/recipes-phosphor/dbus/phosphor-mapper_git.bb
+++ b/meta-phosphor/recipes-phosphor/dbus/phosphor-mapper_git.bb
@@ -59,11 +59,23 @@ python do_emit_env() {
paths.append(os.sep.join(p.split('-')))
path = d.getVar('STAGING_DIR_NATIVE', True) + \
+ d.getVar('service_dir', True)
+ services = []
+ for s in os.listdir(path):
+ services.append('.'.join(s.split('-')))
+
+ path = d.getVar('STAGING_DIR_NATIVE', True) + \
d.getVar('interface_dir', True)
interfaces = []
for i in os.listdir(path):
interfaces.append('.'.join(i.split('-')))
+ path = d.getVar('STAGING_DIR_NATIVE', True) + \
+ d.getVar('serviceblacklist_dir', True)
+ service_blacklists = []
+ for x in os.listdir(path):
+ service_blacklists.append('.'.join(x.split('-')))
+
path = [d.getVar('D', True) + d.getVar('envfiledir', True)]
path.append('obmc')
path.append('mapper')
@@ -75,8 +87,12 @@ python do_emit_env() {
with open(path, 'w+') as fd:
fd.write('MAPPER_NAMESPACES="{}"'.format(' '.join(paths)))
fd.write('\n')
+ fd.write('MAPPER_SERVICES="{}"'.format(' '.join(services)))
+ fd.write('\n')
fd.write('MAPPER_INTERFACES="{}"'.format(' '.join(interfaces)))
fd.write('\n')
+ fd.write('MAPPER_SERVICEBLACKLISTS="{}"'.format(' '.join(service_blacklists)))
+ fd.write('\n')
}
do_install[postfuncs] += "do_emit_env"
OpenPOWER on IntegriCloud