)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"2e11944075dd0d0feff0bbc75616316188445533","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Robert Francis \u003crobefran@ca.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-07-18 15:15:36 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add test_copy_to_same"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I801917a51d7cca723cb23b29b8de4b816b647cf3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a50d1a3_74f8104a","line":7,"updated":"2015-07-20 21:56:56.000000000","message":"Adding a little more detail here, like what\u0027s in your comment in gerrit, would be helpful.\n\neg add your \"Add a functional test TestObject.test_copy_to_same to test_object.py to test that metadata is preserved when the COPY destination is the same as the COPY source.\"","commit_id":"cca9cb7797b6d2fe4df4c59f109fb0813411ade7"},{"author":{"_account_id":16550,"name":"Robert Francis","email":"robefran@ca.ibm.com","username":"robefran"},"change_message_id":"b6e817d6b94fdf230b6cbd63be58fa874baafd29","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Robert Francis \u003crobefran@ca.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-07-18 15:15:36 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add test_copy_to_same"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I801917a51d7cca723cb23b29b8de4b816b647cf3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a50d1a3_41d47fe7","line":7,"in_reply_to":"3a50d1a3_74f8104a","updated":"2015-07-29 19:44:16.000000000","message":"Done","commit_id":"cca9cb7797b6d2fe4df4c59f109fb0813411ade7"}],"test/functional/test_object.py":[{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"2e11944075dd0d0feff0bbc75616316188445533","unresolved":false,"context_lines":[{"line_number":1308,"context_line":"        self.assertEqual(resp.status, 200)"},{"line_number":1309,"context_line":"        self.assertEqual(resp.getheader(\u0027x-object-meta-alfa\u0027), \u0027aardvark\u0027)"},{"line_number":1310,"context_line":"        self.assertEqual(resp.getheader(\u0027x-object-meta-bravo\u0027), \u0027bird\u0027)"},{"line_number":1311,"context_line":"        self.assertEqual(resp.getheader(\u0027x-object-meta-charlie\u0027), None)"},{"line_number":1312,"context_line":"        self.assertEqual(source_contents, setup_body)"},{"line_number":1313,"context_line":""},{"line_number":1314,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_74e1f099","line":1311,"updated":"2015-07-20 21:56:56.000000000","message":"This will normally work. But since you\u0027re doing an overwrite against a running cluster (ie this is a functional test), it\u0027s possible to get the old data back. Maybe the cluster is in the middle of a rebalance or maybe there\u0027s a drive failure that affects these requests.\n\nIt may be unavoidable, but I do expect to see failures here from time to time.","commit_id":"cca9cb7797b6d2fe4df4c59f109fb0813411ade7"},{"author":{"_account_id":16550,"name":"Robert Francis","email":"robefran@ca.ibm.com","username":"robefran"},"change_message_id":"b6e817d6b94fdf230b6cbd63be58fa874baafd29","unresolved":false,"context_lines":[{"line_number":1308,"context_line":"        self.assertEqual(resp.status, 200)"},{"line_number":1309,"context_line":"        self.assertEqual(resp.getheader(\u0027x-object-meta-alfa\u0027), \u0027aardvark\u0027)"},{"line_number":1310,"context_line":"        self.assertEqual(resp.getheader(\u0027x-object-meta-bravo\u0027), \u0027bird\u0027)"},{"line_number":1311,"context_line":"        self.assertEqual(resp.getheader(\u0027x-object-meta-charlie\u0027), None)"},{"line_number":1312,"context_line":"        self.assertEqual(source_contents, setup_body)"},{"line_number":1313,"context_line":""},{"line_number":1314,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_21c29334","line":1311,"in_reply_to":"3a50d1a3_74e1f099","updated":"2015-07-29 19:44:16.000000000","message":"Done","commit_id":"cca9cb7797b6d2fe4df4c59f109fb0813411ade7"},{"author":{"_account_id":16550,"name":"Robert Francis","email":"robefran@ca.ibm.com","username":"robefran"},"change_message_id":"b164385474fc5be5929d99e5ed831e0d3c160ec2","unresolved":false,"context_lines":[{"line_number":1308,"context_line":"        self.assertEqual(resp.status, 200)"},{"line_number":1309,"context_line":"        self.assertEqual(resp.getheader(\u0027x-object-meta-alfa\u0027), \u0027aardvark\u0027)"},{"line_number":1310,"context_line":"        self.assertEqual(resp.getheader(\u0027x-object-meta-bravo\u0027), \u0027bird\u0027)"},{"line_number":1311,"context_line":"        self.assertEqual(resp.getheader(\u0027x-object-meta-charlie\u0027), None)"},{"line_number":1312,"context_line":"        self.assertEqual(source_contents, setup_body)"},{"line_number":1313,"context_line":""},{"line_number":1314,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_e9dd2543","line":1311,"in_reply_to":"3a50d1a3_74e1f099","updated":"2015-07-21 01:46:36.000000000","message":"The test could be enhanced to try again when get_source() finds the old x-object-meta-bravo until it finds the expected new x-object-meta-bravo. The test could then check that the correct meta-alfa and meta-charlie are found with the new meta-bravo.  I\u0027m not sure what would be a good sleep/backoff schedule, or when to give up and error out.","commit_id":"cca9cb7797b6d2fe4df4c59f109fb0813411ade7"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"2e11944075dd0d0feff0bbc75616316188445533","unresolved":false,"context_lines":[{"line_number":1311,"context_line":"        self.assertEqual(resp.getheader(\u0027x-object-meta-charlie\u0027), None)"},{"line_number":1312,"context_line":"        self.assertEqual(source_contents, setup_body)"},{"line_number":1313,"context_line":""},{"line_number":1314,"context_line":"        pass"},{"line_number":1315,"context_line":""},{"line_number":1316,"context_line":""},{"line_number":1317,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_544ab4c6","line":1314,"updated":"2015-07-20 21:56:56.000000000","message":"nit: not needed","commit_id":"cca9cb7797b6d2fe4df4c59f109fb0813411ade7"},{"author":{"_account_id":16550,"name":"Robert Francis","email":"robefran@ca.ibm.com","username":"robefran"},"change_message_id":"b6e817d6b94fdf230b6cbd63be58fa874baafd29","unresolved":false,"context_lines":[{"line_number":1311,"context_line":"        self.assertEqual(resp.getheader(\u0027x-object-meta-charlie\u0027), None)"},{"line_number":1312,"context_line":"        self.assertEqual(source_contents, setup_body)"},{"line_number":1313,"context_line":""},{"line_number":1314,"context_line":"        pass"},{"line_number":1315,"context_line":""},{"line_number":1316,"context_line":""},{"line_number":1317,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_41bd5faf","line":1314,"in_reply_to":"3a50d1a3_544ab4c6","updated":"2015-07-29 19:44:16.000000000","message":"Done","commit_id":"cca9cb7797b6d2fe4df4c59f109fb0813411ade7"}]}
