From 3640ecd6d84b6f7245d35e8c930afc5e64910d5c Mon Sep 17 00:00:00 2001 From: Brad Bishop Date: Tue, 3 Nov 2015 14:46:10 -0500 Subject: Add basic error handling to ObjectMapper Raise MapperNotFound for invalid paths supplied to the DBUS API. --- phosphor-mapper | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'phosphor-mapper') diff --git a/phosphor-mapper b/phosphor-mapper index 5bdcd8d..e9aa6dc 100644 --- a/phosphor-mapper +++ b/phosphor-mapper @@ -133,15 +133,24 @@ class ObjectMapper(dbus.service.Object): @dbus.service.method(OpenBMCMapper.MAPPER_IFACE, 's', 'a{sas}') def GetObject(self, path): - return self.cache[path] + o = self.cache.get(path) + if not o: + raise MapperNotFoundException(path) + return o @dbus.service.method(OpenBMCMapper.MAPPER_IFACE, 'si', 'as') def GetSubTreePaths(self, path, depth): - return self.cache.iterkeys(path, depth) + try: + return self.cache.iterkeys(path, depth) + except KeyError: + raise MapperNotFoundException(path) @dbus.service.method(OpenBMCMapper.MAPPER_IFACE, 'si', 'a{sa{sas}}') def GetSubTree(self, path, depth): - return { x:y for x, y in self.cache.dataitems(path, depth) } + try: + return { x:y for x, y in self.cache.dataitems(path, depth) } + except KeyError: + raise MapperNotFoundException(path) class BusWrapper: def __init__(self, bus): -- cgit v1.2.1