)]}'
{"swift/common/middleware/copy.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"0df0e191412ddcf0c513271a3409edd67a4c574d","unresolved":false,"context_lines":[{"line_number":468,"context_line":"            source_resp.headers.pop("},{"line_number":469,"context_line":"                \u0027X-Object-Sysmeta-Container-Update-Override-Etag\u0027, None)"},{"line_number":470,"context_line":"            source_resp.headers.pop("},{"line_number":471,"context_line":"                \u0027X-Object-Sysmeta-Container-Update-Override-Size\u0027, None)"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"        # Create a new Request object based on the original req instance."},{"line_number":474,"context_line":"        # This will preserve env and headers."}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_5f173754","line":471,"updated":"2016-06-02 17:30:53.000000000","message":"Wait... shouldn\u0027t we *always* pop off an override-size? Otherwise, we\u0027ll report the wrong size when copying from an EC container to a replicated one.","commit_id":"a6734f83949bd46946f3c3ecc6a30c454b7d24d9"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"5e363bac876ab4e75cd700986c220cc9333d1a19","unresolved":false,"context_lines":[{"line_number":468,"context_line":"            source_resp.headers.pop("},{"line_number":469,"context_line":"                \u0027X-Object-Sysmeta-Container-Update-Override-Etag\u0027, None)"},{"line_number":470,"context_line":"            source_resp.headers.pop("},{"line_number":471,"context_line":"                \u0027X-Object-Sysmeta-Container-Update-Override-Size\u0027, None)"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"        # Create a new Request object based on the original req instance."},{"line_number":474,"context_line":"        # This will preserve env and headers."}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_80e14001","line":471,"in_reply_to":"9abb7d3a_5f173754","updated":"2016-06-02 18:11:25.000000000","message":"The override size should be the same regardless of policy I think?\n\nBut this kind of confusion is what still leaves me nervous about passing these override headers with copies rather than purging them in the GET path.\n\nIn light of the slo test failure with v1 of https://review.openstack.org/#/c/324607/, I am now confused as to why copying the override etag does not cause the same failure on this branch? ah, of course the override etag is not used to *verify* the content, but it would mean that the copied slo manifest object etag differed from the value in the listing.\n\nI\u0027m thinking something like this https://paste.fedoraproject.org/373832/48891041/ is needed here too.","commit_id":"a6734f83949bd46946f3c3ecc6a30c454b7d24d9"}],"test/unit/common/middleware/test_copy.py":[{"author":{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},"change_message_id":"576b781ad385433b98cdb01fc459bbdb127b2d6e","unresolved":false,"context_lines":[{"line_number":607,"context_line":"            \u0027x-object-sysmeta-test1\u0027: \u0027copy me\u0027,"},{"line_number":608,"context_line":"            \u0027x-object-meta-test2\u0027: \u0027copy me too\u0027,"},{"line_number":609,"context_line":"            \u0027x-object-transient-sysmeta-test3\u0027: \u0027ditto\u0027,"},{"line_number":610,"context_line":"            \u0027x-object-sysmeta-container-update-override-etag\u0027: \u0027remove me\u0027,"},{"line_number":611,"context_line":"            \u0027x-object-sysmeta-container-update-override-size\u0027: \u0027remove\u0027}"},{"line_number":612,"context_line":""},{"line_number":613,"context_line":"        self.app.register("}],"source_content_type":"text/x-python","patch_set":6,"id":"9abb7d3a_3670e2a3","line":610,"range":{"start_line":610,"start_character":64,"end_line":610,"end_character":73},"updated":"2016-06-01 17:27:28.000000000","message":"should this be updated? it\u0027s a bit confusing if it won\u0027t be removed.\n\nIt seems that up to patchset 3 the override headers would be removed from copy, but now they stay, what changed?\n\nIn the case of a Range copy request, would the override header be updated down the pipeline (in crypto or obj. controller)???","commit_id":"e9c703359b221008d7fe52efd89507179e176f5d"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"a4faf0bfb8354d3e11f75b9463b7b21dc731d426","unresolved":false,"context_lines":[{"line_number":607,"context_line":"            \u0027x-object-sysmeta-test1\u0027: \u0027copy me\u0027,"},{"line_number":608,"context_line":"            \u0027x-object-meta-test2\u0027: \u0027copy me too\u0027,"},{"line_number":609,"context_line":"            \u0027x-object-transient-sysmeta-test3\u0027: \u0027ditto\u0027,"},{"line_number":610,"context_line":"            \u0027x-object-sysmeta-container-update-override-etag\u0027: \u0027remove me\u0027,"},{"line_number":611,"context_line":"            \u0027x-object-sysmeta-container-update-override-size\u0027: \u0027remove\u0027}"},{"line_number":612,"context_line":""},{"line_number":613,"context_line":"        self.app.register("}],"source_content_type":"text/x-python","patch_set":6,"id":"9abb7d3a_2266dc29","line":610,"range":{"start_line":610,"start_character":64,"end_line":610,"end_character":73},"in_reply_to":"9abb7d3a_3670e2a3","updated":"2016-06-01 18:53:42.000000000","message":"ack. Tim persuaded me that we could retain the override headers during a COPY so I stopped removing them but failed to change to confusing value.\n\nHowever, in the case of a ranged copy the override value will be wrong - I need to write a test to convince myself but I think you have spotted a flaw. Thanks!","commit_id":"e9c703359b221008d7fe52efd89507179e176f5d"}],"test/unit/common/middleware/test_decrypter.py":[{"author":{"_account_id":12279,"name":"Janie Richling","email":"jrichli@us.ibm.com","username":"jrichli"},"change_message_id":"d78294b7b6957940dae6acc61ead31611b921370","unresolved":false,"context_lines":[{"line_number":1133,"context_line":"                            \u0027x-object-transient-sysmeta-test3\u0027: \u0027leave intact\u0027,"},{"line_number":1134,"context_line":"                            \u0027etag\u0027: \u0027hold onto\u0027,"},{"line_number":1135,"context_line":"                            \u0027x-other\u0027: \u0027cherish\u0027,"},{"line_number":1136,"context_line":"                            \u0027x-object-not-meta\u0027: \u0027do not remove\u0027}"},{"line_number":1137,"context_line":"        purged_headers \u003d {\u0027x-object-sysmeta-crypto-test1\u0027: \u0027remove\u0027,"},{"line_number":1138,"context_line":"                          \u0027x-object-transient-sysmeta-crypto-test2\u0027: \u0027purge\u0027}"},{"line_number":1139,"context_line":"        test_headers \u003d retained_headers.copy()"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_79da227a","line":1136,"updated":"2016-06-07 01:57:58.000000000","message":"synonyms are fun :-)","commit_id":"1d1859d577c1bc92dacb44f8d7ba8811fe68eddf"}],"test/unit/common/middleware/test_encrypter_decrypter.py":[{"author":{"_account_id":12261,"name":"Mahati","email":"mahati.chamarthy@gmail.com","username":"Mahati"},"change_message_id":"b4de7bc7a622489b007a1bb93532b2a807f56da9","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    def _create_container(self, app, policy_name\u003d\u0027one\u0027, container_path\u003dNone):"},{"line_number":61,"context_line":"        if not container_path:"},{"line_number":62,"context_line":"            # choose new container name so that the policy can be specified"},{"line_number":63,"context_line":"            self.container \u003d uuid.uuid4().hex"},{"line_number":64,"context_line":"            self.container_path \u003d \u0027http://foo:8080/v1/a/\u0027 + self.container"},{"line_number":65,"context_line":"            self.object_path \u003d self.container_path + \u0027/o\u0027"},{"line_number":66,"context_line":"            container_path \u003d self.container_path"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_7366762a","line":63,"updated":"2016-05-25 12:22:54.000000000","message":"you did this already. i could use for probe tests.","commit_id":"4454fe253413dc9e9962c1106bd9f1b0b7f01396"},{"author":{"_account_id":12261,"name":"Mahati","email":"mahati.chamarthy@gmail.com","username":"Mahati"},"change_message_id":"b4de7bc7a622489b007a1bb93532b2a807f56da9","unresolved":false,"context_lines":[{"line_number":290,"context_line":""},{"line_number":291,"context_line":"        dest_container \u003d uuid.uuid4().hex"},{"line_number":292,"context_line":"        dest_container_path \u003d \u0027http://localhost:8080/v1/a/\u0027 + dest_container"},{"line_number":293,"context_line":"        self._create_container(copy_crypto_app, policy_name\u003ddest_policy_name,"},{"line_number":294,"context_line":"                               container_path\u003ddest_container_path)"},{"line_number":295,"context_line":"        dest_obj_path \u003d dest_container_path + \u0027/o\u0027"},{"line_number":296,"context_line":"        dest \u003d \u0027/%s/%s\u0027 % (dest_container, \u0027o\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_4d59155a","line":293,"updated":"2016-05-25 12:22:54.000000000","message":"This can just be self.crypto_app instead of copy_crypto_app, to avoid confusion.","commit_id":"4454fe253413dc9e9962c1106bd9f1b0b7f01396"}]}
