From 0f23ee7a08537cb4af6e11e2ba6cb9641b29fc78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Thu, 22 Sep 2016 18:09:38 +0200 Subject: [PATCH] Added handler for 412 Precondition Failed from SDK. --- pillar/__init__.py | 7 +++++++ src/templates/errors/412.jade | 11 +++++++++++ src/templates/errors/412_embed.jade | 7 +++++++ 3 files changed, 25 insertions(+) create mode 100644 src/templates/errors/412.jade create mode 100644 src/templates/errors/412_embed.jade diff --git a/pillar/__init__.py b/pillar/__init__.py index 3506ec3e..579a495d 100644 --- a/pillar/__init__.py +++ b/pillar/__init__.py @@ -317,6 +317,7 @@ class PillarServer(Eve): (sdk_exceptions.ResourceNotFound, self.handle_sdk_resource_not_found), (sdk_exceptions.ResourceInvalid, self.handle_sdk_resource_invalid), (sdk_exceptions.MethodNotAllowed, self.handle_sdk_method_not_allowed), + (sdk_exceptions.PreconditionFailed, self.handle_sdk_precondition_failed), ] for (eclass, handler) in sdk_handlers: @@ -341,6 +342,12 @@ class PillarServer(Eve): error.code = 404 return self.pillar_error_handler(error) + def handle_sdk_precondition_failed(self, error): + self.log.info('Forwarding PreconditionFailed exception to client: %s', error, exc_info=True) + + error.code = 412 + return self.pillar_error_handler(error) + def handle_sdk_resource_invalid(self, error): self.log.info('Forwarding ResourceInvalid exception to client: %s', error, exc_info=True) diff --git a/src/templates/errors/412.jade b/src/templates/errors/412.jade new file mode 100644 index 00000000..f0bd463d --- /dev/null +++ b/src/templates/errors/412.jade @@ -0,0 +1,11 @@ +| {% extends "errors/layout.html" %} +| {% block body %} +#error_container.412.standalone + #error_box + .error-title 412. Precondition Failed. + + .error-lead. + Someone else also edited the thing you're trying to edit. + Reload and try again. + +| {% endblock %} diff --git a/src/templates/errors/412_embed.jade b/src/templates/errors/412_embed.jade new file mode 100644 index 00000000..b58713f9 --- /dev/null +++ b/src/templates/errors/412_embed.jade @@ -0,0 +1,7 @@ +#error_container.412 + #error_box + .error-title 412. Precondition Failed. + + .error-lead. + Someone else also edited the thing you're trying to edit. + Reload and try again.