
On 12/24/2013 02:41 AM, Aline Manera wrote:
+ def generate_action_handler(self, instance, action_name, action_args=None):
since we don not need decorator from your code. + self.stop = self.generate_action_handler(self, 'stop') seems partial is more better than def wrapper(*args, **kwargs): from functools import partial
+ def wrapper(*args, **kwargs): + validate_method(('POST')) + try: + model_args = list(instance.model_args) + if action_args is not None: + model_args.extend(parse_request()[key] for key in action_args) + fn = getattr(instance.model, model_fn(instance, action_name)) + fn(*model_args) + raise internal_redirect(instance.uri_fmt % + tuple(instance.model_args)) + except MissingParameter, param: + raise cherrypy.HTTPError(400, "Missing parameter: '%s'" % param) + except InvalidParameter, param: + raise cherrypy.HTTPError(400, "Invalid parameter: '%s'" % param) + except InvalidOperation, msg: + raise cherrypy.HTTPError(400, "Invalid operation: '%s'" % msg) + except OperationFailed, msg: + raise cherrypy.HTTPError(500, "Operation Failed: '%s'" % msg) + except NotFoundError, msg: + raise cherrypy.HTTPError(404, "Not found: '%s'" % msg) + + wrapper.__name__ = action_name + wrapper.exposed = True + return wrapper +
-- Sheldon Feng(冯少合)<shaohef@linux.vnet.ibm.com> IBM Linux Technology Center