)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"95da0a4dd3b2895f8f767c9f48f04967cab30a92","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix missing txn_id logs in GreenAsyncPile\u0027s spawned functions"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit adds threads local to GreenAsyncPile"},{"line_number":10,"context_line":"to log transaction id."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Added partial bug tag because in bug description a more"},{"line_number":13,"context_line":"relevant fix is suggested which would fix the bug completely"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a57f1b5_b3063b1a","line":10,"updated":"2016-02-12 12:07:49.000000000","message":"I still think this statement is in accurate","commit_id":"3b4d57734117a84af6fded2a4436928ce86aadbb"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"40028350dab46fdacb84942af9e7e915f72238a5","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix missing txn_id logs in GreenAsyncPile\u0027s spawned functions"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit adds threads local to GreenAsyncPile"},{"line_number":10,"context_line":"to log transaction id."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Added partial bug tag because in bug description a more"},{"line_number":13,"context_line":"relevant fix is suggested which would fix the bug completely"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a57f1b5_16336b15","line":10,"in_reply_to":"3a57f1b5_2a33a215","updated":"2016-02-12 17:31:42.000000000","message":"\"This commit ensures that the logger thread_locals value is passed to and set in _get_conn_response methods executed in a green thread.\"\n\nThe current sentence implies you have made a change to GreenAsyncPile","commit_id":"3b4d57734117a84af6fded2a4436928ce86aadbb"},{"author":{"_account_id":14867,"name":"Jaivish Kothari(janonymous)","email":"janonymous.codevulture@gmail.com","username":"Janonymous"},"change_message_id":"3fa2f9e2bfc6c2ce2f502906c19d7c74566d11ee","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix missing txn_id logs in GreenAsyncPile\u0027s spawned functions"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit adds threads local to GreenAsyncPile"},{"line_number":10,"context_line":"to log transaction id."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Added partial bug tag because in bug description a more"},{"line_number":13,"context_line":"relevant fix is suggested which would fix the bug completely"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a57f1b5_2a33a215","line":10,"in_reply_to":"3a57f1b5_b3063b1a","updated":"2016-02-12 16:26:12.000000000","message":"please let me know the appropriate message, i would update the same, no prob. :)","commit_id":"3b4d57734117a84af6fded2a4436928ce86aadbb"}],"test/unit/proxy/controllers/test_obj.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"6bc9989fd2330f2c21f3f18743e7d37154d48228","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from contextlib import contextmanager"},{"line_number":24,"context_line":"import json"},{"line_number":25,"context_line":"from hashlib import md5"},{"line_number":26,"context_line":"from StringIO import StringIO"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"import mock"},{"line_number":29,"context_line":"from eventlet import Timeout"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a57f1b5_0324210b","line":26,"updated":"2016-02-10 12:47:27.000000000","message":"nit: we have \"from six import BytesIO\" below so use that?\n\nI know, I know...don\u0027t flame me","commit_id":"56f09331f2fe86cf13b7ada4f46578b36864e454"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"6bc9989fd2330f2c21f3f18743e7d37154d48228","unresolved":false,"context_lines":[{"line_number":547,"context_line":"                mock.patch(\u0027sys.stdout\u0027, stdout):"},{"line_number":548,"context_line":"            resp \u003d req.get_response(self.app)"},{"line_number":549,"context_line":"        self.assertEqual(resp.status_int, 503)"},{"line_number":550,"context_line":"        for line in stdout.getvalue().splitlines():"},{"line_number":551,"context_line":"            self.assertIn(\u0027test-txn-id\u0027, line)"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"    def test_PUT_empty_bad_etag(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a57f1b5_63ee358d","line":550,"updated":"2016-02-10 12:47:27.000000000","message":"nit: maybe add some sanity checks that there are *any* lines and that lines contains one expected from _get_conn_repsonse i.e. contains the string \"Trying to get final status of PUT to /v1/a/c/o: Timeout\"","commit_id":"56f09331f2fe86cf13b7ada4f46578b36864e454"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"f15dc7e08a1374bb7e638429bfe97080ce243405","unresolved":false,"context_lines":[{"line_number":547,"context_line":"                mock.patch(\u0027sys.stdout\u0027, stdout):"},{"line_number":548,"context_line":"            resp \u003d req.get_response(self.app)"},{"line_number":549,"context_line":"        self.assertEqual(resp.status_int, 503)"},{"line_number":550,"context_line":"        for line in stdout.getvalue().splitlines():"},{"line_number":551,"context_line":"            self.assertIn(\u0027test-txn-id\u0027, line)"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"    def test_PUT_empty_bad_etag(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a57f1b5_1200d400","line":550,"in_reply_to":"3a57f1b5_63ee358d","updated":"2016-02-10 18:09:05.000000000","message":"oh definitely should at a *minimum* make sure stdout.getvalue() isn\u0027t empty - duh.  This test change was meant to be explanatory not exemplary - yeah that was it.","commit_id":"56f09331f2fe86cf13b7ada4f46578b36864e454"},{"author":{"_account_id":12261,"name":"Mahati","email":"mahati.chamarthy@gmail.com","username":"Mahati"},"change_message_id":"fb654484c6165b3fa7afe29967755580514b806d","unresolved":false,"context_lines":[{"line_number":546,"context_line":"                mock.patch(\u0027sys.stdout\u0027, stdout):"},{"line_number":547,"context_line":"            resp \u003d req.get_response(self.app)"},{"line_number":548,"context_line":"        self.assertEqual(resp.status_int, 503)"},{"line_number":549,"context_line":"        for line in stdout.getvalue().splitlines():"},{"line_number":550,"context_line":"            self.assertIn(\u0027test-txn-id\u0027, line)"},{"line_number":551,"context_line":""},{"line_number":552,"context_line":"    def test_PUT_empty_bad_etag(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a57f1b5_06e4c1a9","line":549,"updated":"2016-02-12 04:44:20.000000000","message":"maybe address in both tests that stdout.getvalue() is not empty, as have been pointed out by clay and alistair","commit_id":"2744afdc31d7a09a7df49f2855756fea683ac18e"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"95da0a4dd3b2895f8f767c9f48f04967cab30a92","unresolved":false,"context_lines":[{"line_number":547,"context_line":"            resp \u003d req.get_response(self.app)"},{"line_number":548,"context_line":"        self.assertEqual(resp.status_int, 503)"},{"line_number":549,"context_line":"        for line in stdout.getvalue().splitlines():"},{"line_number":550,"context_line":"            if line:"},{"line_number":551,"context_line":"                self.assertIn(\u0027test-txn-id\u0027, line)"},{"line_number":552,"context_line":"        self.assertIn(\u0027Trying to get final status of PUT to\u0027,"},{"line_number":553,"context_line":"                      stdout.getvalue())"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_9fb1c803","line":550,"updated":"2016-02-12 12:07:49.000000000","message":"nit: I don\u0027t think this is necessary, and in fact I wonder if we might want the test to raise an error if there is an empty line in the logs - I don\u0027t know if that\u0027s something we ever expect?","commit_id":"3b4d57734117a84af6fded2a4436928ce86aadbb"},{"author":{"_account_id":14867,"name":"Jaivish Kothari(janonymous)","email":"janonymous.codevulture@gmail.com","username":"Janonymous"},"change_message_id":"3fa2f9e2bfc6c2ce2f502906c19d7c74566d11ee","unresolved":false,"context_lines":[{"line_number":547,"context_line":"            resp \u003d req.get_response(self.app)"},{"line_number":548,"context_line":"        self.assertEqual(resp.status_int, 503)"},{"line_number":549,"context_line":"        for line in stdout.getvalue().splitlines():"},{"line_number":550,"context_line":"            if line:"},{"line_number":551,"context_line":"                self.assertIn(\u0027test-txn-id\u0027, line)"},{"line_number":552,"context_line":"        self.assertIn(\u0027Trying to get final status of PUT to\u0027,"},{"line_number":553,"context_line":"                      stdout.getvalue())"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_e5793b83","line":550,"in_reply_to":"3a57f1b5_9fb1c803","updated":"2016-02-12 16:26:12.000000000","message":"if i understand correctly, we expect a line in exception so there might not be need of this but as per your previous comment to check empty value i added this check.","commit_id":"3b4d57734117a84af6fded2a4436928ce86aadbb"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"40028350dab46fdacb84942af9e7e915f72238a5","unresolved":false,"context_lines":[{"line_number":547,"context_line":"            resp \u003d req.get_response(self.app)"},{"line_number":548,"context_line":"        self.assertEqual(resp.status_int, 503)"},{"line_number":549,"context_line":"        for line in stdout.getvalue().splitlines():"},{"line_number":550,"context_line":"            if line:"},{"line_number":551,"context_line":"                self.assertIn(\u0027test-txn-id\u0027, line)"},{"line_number":552,"context_line":"        self.assertIn(\u0027Trying to get final status of PUT to\u0027,"},{"line_number":553,"context_line":"                      stdout.getvalue())"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_bca119fa","line":550,"in_reply_to":"3a57f1b5_e5793b83","updated":"2016-02-12 17:31:42.000000000","message":"The previous comment was intended to convey that we should check that stdout has something, otherwise (in previous version of the patch) the for loop could have zero iterations and the test would patch when actually nothing got logged.\n\nIn this version of patch you take care of that with this addition:\n\n  self.assertIn(\u0027Trying to get final status of PUT to\u0027,\n                      stdout.getvalue())","commit_id":"3b4d57734117a84af6fded2a4436928ce86aadbb"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"95da0a4dd3b2895f8f767c9f48f04967cab30a92","unresolved":false,"context_lines":[{"line_number":1258,"context_line":"        req \u003d swift.common.swob.Request.blank(\u0027/v1/a/c/o\u0027, method\u003d\u0027PUT\u0027,"},{"line_number":1259,"context_line":"                                              body\u003d\u0027\u0027)"},{"line_number":1260,"context_line":"        self.app.logger.txn_id \u003d req.environ[\u0027swift.trans_id\u0027] \u003d \u0027test-txn-id\u0027"},{"line_number":1261,"context_line":"        codes \u003d [(100, Timeout(), 503, 503)] * self.replicas()"},{"line_number":1262,"context_line":"        stdout \u003d BytesIO()"},{"line_number":1263,"context_line":"        expect_headers \u003d {"},{"line_number":1264,"context_line":"            \u0027X-Obj-Metadata-Footer\u0027: \u0027yes\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_38530a3b","line":1261,"updated":"2016-02-12 12:07:49.000000000","message":"nit: I think you have one more 503 than required here.\n\nif you want to cover logging in both the final and commit phases then use:\n\n  codes \u003d [(100, 100, Timeout())] * self.quorum()\n  codes +\u003d [(100, Timeout(), 503)] * (self.replicas() - len(codes))","commit_id":"3b4d57734117a84af6fded2a4436928ce86aadbb"},{"author":{"_account_id":14867,"name":"Jaivish Kothari(janonymous)","email":"janonymous.codevulture@gmail.com","username":"Janonymous"},"change_message_id":"3fa2f9e2bfc6c2ce2f502906c19d7c74566d11ee","unresolved":false,"context_lines":[{"line_number":1258,"context_line":"        req \u003d swift.common.swob.Request.blank(\u0027/v1/a/c/o\u0027, method\u003d\u0027PUT\u0027,"},{"line_number":1259,"context_line":"                                              body\u003d\u0027\u0027)"},{"line_number":1260,"context_line":"        self.app.logger.txn_id \u003d req.environ[\u0027swift.trans_id\u0027] \u003d \u0027test-txn-id\u0027"},{"line_number":1261,"context_line":"        codes \u003d [(100, Timeout(), 503, 503)] * self.replicas()"},{"line_number":1262,"context_line":"        stdout \u003d BytesIO()"},{"line_number":1263,"context_line":"        expect_headers \u003d {"},{"line_number":1264,"context_line":"            \u0027X-Obj-Metadata-Footer\u0027: \u0027yes\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_e5f05bff","line":1261,"in_reply_to":"3a57f1b5_38530a3b","updated":"2016-02-12 16:26:12.000000000","message":"thanks i would update it.","commit_id":"3b4d57734117a84af6fded2a4436928ce86aadbb"}]}
