diff options
author | Milo Casagrande <milo.casagrande@linaro.org> | 2015-01-14 16:17:51 +0100 |
---|---|---|
committer | Milo Casagrande <milo.casagrande@linaro.org> | 2015-01-14 16:17:51 +0100 |
commit | 6d2621a7df1d96efae16f71ec5fca5fed2a591b4 (patch) | |
tree | cacf79dbebc2bfc69d47aa66a4a0ee757c9a4789 /app | |
parent | 58115d3209685dcd43ba8abb6cc14a68b2e92555 (diff) |
Add stub support for PUT requests.
Change-Id: I2cf891b63e2d4c540f51096bdbdc111a85e751ec
Diffstat (limited to 'app')
-rw-r--r-- | app/handlers/base.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/app/handlers/base.py b/app/handlers/base.py index 546a83d..b4c92dc 100644 --- a/app/handlers/base.py +++ b/app/handlers/base.py @@ -174,6 +174,41 @@ class BaseHandler(tornado.web.RequestHandler): return valid_content @tornado.web.asynchronous + def put(self, *args, **kwargs): + self.executor.submit( + functools.partial(self.execute_post, *args, **kwargs) + ).add_done_callback( + lambda future: tornado.ioloop.IOLoop.instance().add_callback( + functools.partial(self._create_valid_response, future.result()) + ) + ) + + def execute_put(self, *args, **kwargs): + """Execute the PUT pre-operations.""" + response = None + + if self.validate_req_token("PUT"): + self._put(*args, **kwargs) + else: + response = hresponse.HandlerResponse(403) + response.reason = hcommon.NOT_VALID_TOKEN + + return response + + def _put(self, *args, **kwargs): + """Placeholder method - used internally. + + This is called by the actual method that implements PUT request. + Subclasses should provide their own implementation. + + It must return a `HandlerResponse` object with the appropriate status + code and if necessary its custom message. + + :return A `HandlerResponse` object. + """ + return hresponse.HandlerResponse(501) + + @tornado.web.asynchronous def post(self, *args, **kwargs): self.executor.submit( functools.partial(self.execute_post, *args, **kwargs) |