)]}'
{"test/probe/test_object_async_update.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"7cf1157870e5d154bedf70e85bf76be8cc2d6e74","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        direct_client.direct_put_object("},{"line_number":184,"context_line":"            self.object_node, self.object_part,"},{"line_number":185,"context_line":"            self.account, self.container, self.object, obj_body,"},{"line_number":186,"context_line":"            headers\u003dput_headers)"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        # With a container server running as well, POST to the object to"},{"line_number":189,"context_line":"        # change its Content-Type."}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_8886a4b7","line":186,"updated":"2016-03-07 16:20:29.000000000","message":"It\u0027s a little more complex...the Etag that should get sent to the container update is not necessarily the value pointed to by \u0027X-Backend-Etag-Is-At\u0027.\n\nEtag (and ctype) may be overridden, as it is for EC (see swift.proxy.controllers.obj.trailing_metadata). In the case of EC this *just happens* to be the same value that is pointed to by X-Backend-Etag-Is-At, but with crypto it may not be the same:\n\n- X-Backend-Etag-Is-At may point to the ciphertext of the plaintext etag encrypted using object key\n\n- X-Backend-Container-Update-Override-Etag on the PUT sets the ciphertext of plaintext etag encrypted using the container key. This value is not currently persisted in obj metadata, which is why the change you propose is a Good Thing (i.e. not require the container update etag/ctype to be persisted other than in the PUT async pending record).","commit_id":"172db48708fe7433dfbae3bed80bf5622b4525a0"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"7cf1157870e5d154bedf70e85bf76be8cc2d6e74","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        resp_headers, container_list \u003d direct_client.direct_get_container("},{"line_number":209,"context_line":"            self.container_node, self.container_part,"},{"line_number":210,"context_line":"            self.account, self.container)"},{"line_number":211,"context_line":"        self.assertEqual(container_list, [])"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        # Get the async_pending in there"},{"line_number":214,"context_line":"        Manager([\u0027object-updater\u0027]).once()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_a341033c","line":211,"updated":"2016-03-07 16:20:29.000000000","message":"yup, no etag or ctype -\u003e no listing","commit_id":"172db48708fe7433dfbae3bed80bf5622b4525a0"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"7cf1157870e5d154bedf70e85bf76be8cc2d6e74","unresolved":false,"context_lines":[{"line_number":223,"context_line":"            \u0027bytes\u0027: len(obj_body),"},{"line_number":224,"context_line":"            \u0027hash\u0027: \u0027etag_for_container\u0027,"},{"line_number":225,"context_line":"            \u0027content_type\u0027: \u0027ct/new-one-from-the-POST-request\u0027,"},{"line_number":226,"context_line":"        }, container_list[0])"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_03bb97c5","line":226,"updated":"2016-03-07 16:20:29.000000000","message":"At this point the other container servers could be started and the container replicator run once to verify that \"partial\" rows in other container dbs get updated with the PUT metadata via replication.\n\nTo create that state would require the PUT and POST to go to one other object server, the PUT to update one other container server, then that container server to be shutdown during the updater run.","commit_id":"172db48708fe7433dfbae3bed80bf5622b4525a0"}]}
