From 5d0566deaf5cd50f487c97ae6884bef0939db1c5 Mon Sep 17 00:00:00 2001 From: Iustin Pop <iustin@google.com> Date: Fri, 21 Oct 2011 23:51:39 +0200 Subject: [PATCH] Accept both PUT and POST in noded MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is a partial cherry-pick from 7530364ddbe949bc34fc26f25ba3f5d921beb021 on master: Currently, noded requires PUT, even though the semantics of the RPC calls do not match a PUT. We change the code accept both PUT and POST, with the intention to remove the PUT support in a later version. Additionally, we add a message to the HttpBadRequest exception to make clear the failure mode (not seeing any error message was what made me send this patchβ¦). This was the only description-less use of this exception, by the way. Signed-off-by: Iustin Pop <iustin@google.com> Reviewed-by: RenΓ© Nussbaumer <rn@google.com> (cherry picked from commit 7530364ddbe949bc34fc26f25ba3f5d921beb021) What was not cherry-picked is the rpc change (to switch to PUT). The reason I want to backport this to devel-2.5 is that when upgrading to 2.6, having noded accept both makes for an easier upgrade path. Signed-off-by: Iustin Pop <iustin@google.com> Reviewed-by: Michael Hanselmann <hansmi@google.com> --- lib/server/noded.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/server/noded.py b/lib/server/noded.py index bdd2dec56..0377ba984 100644 --- a/lib/server/noded.py +++ b/lib/server/noded.py @@ -138,8 +138,9 @@ class NodeHttpServer(http.server.HttpServer): """Handle a request. """ - if req.request_method.upper() != http.HTTP_PUT: - raise http.HttpBadRequest() + # FIXME: Remove HTTP_PUT in Ganeti 2.7 + if req.request_method.upper() not in (http.HTTP_PUT, http.HTTP_POST): + raise http.HttpBadRequest("Only PUT and POST methods are supported") path = req.request_path if path.startswith("/"): -- GitLab