From f5d509471b36dfe1a008523a3a8e1ec4e5518f02 Mon Sep 17 00:00:00 2001 From: Daisuke Morita Date: Thu, 12 Feb 2015 05:12:56 +0900 Subject: [PATCH] Logging a policy index when container PUT request conflicts This is a continuing work of patch afdbf73. This patch enables proxy-server to log a policy index when container PUT request conflicts with existing container's policy index. Change-Id: I6d40044c510632a0f61b817a9af2f6c13a721d39 Implements: blueprint logging-policy-number --- swift/container/server.py | 4 +++- test/unit/container/test_server.py | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/swift/container/server.py b/swift/container/server.py index d396bda9f1..3cc960b2a8 100644 --- a/swift/container/server.py +++ b/swift/container/server.py @@ -308,7 +308,9 @@ class ContainerController(BaseStorageServer): elif requested_policy_index is not None: # validate requested policy with existing container if requested_policy_index != broker.storage_policy_index: - raise HTTPConflict(request=req) + raise HTTPConflict(request=req, + headers={'x-backend-storage-policy-index': + broker.storage_policy_index}) broker.update_put_timestamp(timestamp) if broker.is_deleted(): raise HTTPConflict(request=req) diff --git a/test/unit/container/test_server.py b/test/unit/container/test_server.py index 42f1fc257e..d42a8945ca 100644 --- a/test/unit/container/test_server.py +++ b/test/unit/container/test_server.py @@ -476,6 +476,9 @@ class TestContainerController(unittest.TestCase): }) resp = req.get_response(self.controller) self.assertEquals(resp.status_int, 409) + self.assertEquals( + resp.headers.get('X-Backend-Storage-Policy-Index'), + str(policy.idx)) # and make sure there is no change! req = Request.blank('/sda1/p/a/c')