)]}'
{"swift/common/middleware/versioned_writes.py":[{"author":{"_account_id":25251,"name":"Alexandre Lécuyer","email":"alexandre.lecuyer@corp.ovh.com","username":"alecuyer"},"change_message_id":"43771ee12a98e63119aa2204116796a1f14e4d30","unresolved":false,"context_lines":[{"line_number":58,"context_line":"``\u003cobject_name\u003e`` and ``\u003ctimestamp\u003e`` is the timestamp of when the previous"},{"line_number":59,"context_line":"version was created."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"If the ``X-Versions-Location`` container does not exist (or is otherwise"},{"line_number":62,"context_line":"unavailable) when an overwrite request comes in, an attempt will be made to"},{"line_number":63,"context_line":"create it using the same storage policy as the versioned container. If that"},{"line_number":64,"context_line":"fails (or the archiving of the previous version fails for other reasons), the"}],"source_content_type":"text/x-python","patch_set":12,"id":"9fdfeff1_4e0574c1","line":61,"updated":"2019-02-26 11:01:50.000000000","message":"Do we need to specify that it also works for X-History-Location?","commit_id":"41ecfcb1875310202948a8bbf0dad02f4b32ee8c"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"a4c5fd187271be95f89d635a7e8708d15ff6b18d","unresolved":false,"context_lines":[{"line_number":58,"context_line":"``\u003cobject_name\u003e`` and ``\u003ctimestamp\u003e`` is the timestamp of when the previous"},{"line_number":59,"context_line":"version was created."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"If the ``X-Versions-Location`` container does not exist (or is otherwise"},{"line_number":62,"context_line":"unavailable) when an overwrite request comes in, an attempt will be made to"},{"line_number":63,"context_line":"create it using the same storage policy as the versioned container. If that"},{"line_number":64,"context_line":"fails (or the archiving of the previous version fails for other reasons), the"}],"source_content_type":"text/x-python","patch_set":12,"id":"9fdfeff1_7f917b53","line":61,"in_reply_to":"9fdfeff1_4e0574c1","updated":"2019-03-04 22:37:46.000000000","message":"Good idea. I think I originally started all this before I did X-History-Location...","commit_id":"41ecfcb1875310202948a8bbf0dad02f4b32ee8c"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"77631dc386da96219c1925215e2f2d6bfc167ecb","unresolved":false,"context_lines":[{"line_number":469,"context_line":"            # Note that the get_container_info should definitely be a cache hit"},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"            container_info \u003d get_container_info("},{"line_number":472,"context_line":"                req.environ, self.app, swift_source\u003d\u0027VW\u0027)"},{"line_number":473,"context_line":"            policy \u003d POLICIES.get_by_index(container_info[\u0027storage_policy\u0027])"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"            cont_create_req \u003d make_subrequest("}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_5994418b","line":472,"updated":"2019-10-30 02:39:31.000000000","message":"Your right, this should be a cache hit. But we already are getting container info the req env in object_request (line 804) we could save a potential req and just grab the storage_policy from there?\n\nWhat is currently here does save an extra param to the method, but is it worth it when we\u0027re going to attempt a HEAD?","commit_id":"afb7f7bea9aa9f3fb79c4d88b7f977b3b7f00942"}],"test/functional/test_versioned_writes.py":[{"author":{"_account_id":25251,"name":"Alexandre Lécuyer","email":"alexandre.lecuyer@corp.ovh.com","username":"alecuyer"},"change_message_id":"43771ee12a98e63119aa2204116796a1f14e4d30","unresolved":false,"context_lines":[{"line_number":559,"context_line":"        self.assertTrue(versioned_obj.write(\"never argue with the data\"))"},{"line_number":560,"context_line":"        self.assertEqual(versioned_obj.read(), \"never argue with the data\")"},{"line_number":561,"context_line":""},{"line_number":562,"context_line":"        # versoins container still doesn\u0027t exist"},{"line_number":563,"context_line":"        self.assertNotIn(versions_container.name,"},{"line_number":564,"context_line":"                         self.env.account.containers())"},{"line_number":565,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"9fdfeff1_ce940447","line":562,"updated":"2019-02-26 11:01:50.000000000","message":"\"versions\", same typo on lines below","commit_id":"41ecfcb1875310202948a8bbf0dad02f4b32ee8c"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"a4c5fd187271be95f89d635a7e8708d15ff6b18d","unresolved":false,"context_lines":[{"line_number":559,"context_line":"        self.assertTrue(versioned_obj.write(\"never argue with the data\"))"},{"line_number":560,"context_line":"        self.assertEqual(versioned_obj.read(), \"never argue with the data\")"},{"line_number":561,"context_line":""},{"line_number":562,"context_line":"        # versoins container still doesn\u0027t exist"},{"line_number":563,"context_line":"        self.assertNotIn(versions_container.name,"},{"line_number":564,"context_line":"                         self.env.account.containers())"},{"line_number":565,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"9fdfeff1_ff86cb16","line":562,"in_reply_to":"9fdfeff1_ce940447","updated":"2019-03-04 22:37:46.000000000","message":"Thanks.","commit_id":"41ecfcb1875310202948a8bbf0dad02f4b32ee8c"}]}
