[PATCH phosphor-rest-server] Handle type errors for method call parameters

OpenBMC Patches openbmc-patches at stwcx.xyz
Thu Dec 3 03:20:32 AEDT 2015


From: Brad Bishop <bradleyb at us.ibm.com>

Raise a 400 rather than internal server error for type errors.
---
 obmc-rest | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/obmc-rest b/obmc-rest
index c5ba8dc..74b5926 100644
--- a/obmc-rest
+++ b/obmc-rest
@@ -15,6 +15,7 @@ from OpenBMCMapper import Mapper, PathTree, IntrospectionNodeParser, ListMatch
 DBUS_UNKNOWN_INTERFACE = 'org.freedesktop.UnknownInterface'
 DBUS_UNKNOWN_METHOD = 'org.freedesktop.DBus.Error.UnknownMethod'
 DBUS_INVALID_ARGS = 'org.freedesktop.DBus.Error.InvalidArgs'
+DBUS_TYPE_ERROR = 'org.freedesktop.DBus.Python.TypeError'
 DELETE_IFACE = 'org.openbmc.Object.Delete'
 
 _4034_msg = "The specified %s cannot be %s: '%s'"
@@ -216,6 +217,8 @@ class MethodHandler(RouteHandler):
 		except dbus.exceptions.DBusException, e:
 			if e.get_dbus_name() == DBUS_INVALID_ARGS:
 				abort(400, str(e))
+			if e.get_dbus_name() == DBUS_TYPE_ERROR:
+				abort(400, str(e))
 			raise
 
 	@staticmethod
-- 
2.6.3




More information about the openbmc mailing list