Catch exceptions from worker controller.

Surprise exceptions can get hidden by the Gearman stuff. Catch them
here and report failure.

Change-Id: I7fab24d809f8e91bc68c45296f369011e4d5c30d
This commit is contained in:
David Shrewsbury
2012-11-06 11:17:33 -05:00
parent 7fd7e6e37a
commit 0823ef6b3f

View File

@@ -45,19 +45,26 @@ class LBaaSController(object):
action = self.msg[self.ACTION_FIELD].upper() action = self.msg[self.ACTION_FIELD].upper()
self.logger.info("Requested action: %s" % action) self.logger.info("Requested action: %s" % action)
if action == 'CREATE':
return self._action_create() try:
elif action == 'UPDATE': if action == 'CREATE':
return self._action_update() return self._action_create()
elif action == 'SUSPEND': elif action == 'UPDATE':
return self._action_suspend() return self._action_update()
elif action == 'ENABLE': elif action == 'SUSPEND':
return self._action_enable() return self._action_suspend()
elif action == 'DELETE': elif action == 'ENABLE':
return self._action_delete() return self._action_enable()
else: elif action == 'DELETE':
self.logger.error("Invalid `%s` value: %s" % return self._action_delete()
(self.ACTION_FIELD, action)) else:
self.logger.error("Invalid `%s` value: %s" %
(self.ACTION_FIELD, action))
self.msg[self.RESPONSE_FIELD] = self.RESPONSE_FAILURE
return self.msg
except Exception as e:
self.logger.error("Controller exception: %s, %s" %
(e.__class__, e))
self.msg[self.RESPONSE_FIELD] = self.RESPONSE_FAILURE self.msg[self.RESPONSE_FIELD] = self.RESPONSE_FAILURE
return self.msg return self.msg