)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"ac8bf355095f239cf66da9763eb86cf1602d7a32","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix UnixDomainHttpProtocol class to support all eventlet versions"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"It was found a previous change didn\u0027t work in all cases,"},{"line_number":10,"context_line":"so instead change the code to try and determine the"},{"line_number":11,"context_line":"correct number of arguments to use in the call to"},{"line_number":12,"context_line":"initialize the parent class."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f7c97a3_8b9e21b5","line":9,"range":{"start_line":9,"start_character":46,"end_line":9,"end_character":55},"updated":"2018-07-03 22:10:28.000000000","message":"I think it might be better to write down the context in the commit message. I assume there are two cases:  eventlet\u003c0.22, and eventlet\u003e\u003d0.22 .\n\nA question from me is that right now eventlet is cap by 0.20 in global requirements. Why we care about 0.22? If there is a plan to migrate to 0.22, better to write it down as well.","commit_id":"4043971d23384be6e66066716b6601b42fe4d721"},{"author":{"_account_id":9373,"name":"Vlad Gusev","email":"vlad.esten@gmail.com","username":"s10"},"change_message_id":"ccc22846f56ae7d45dc8a73f0d53299ae9e3d250","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix UnixDomainHttpProtocol class to support all eventlet versions"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"It was found a previous change didn\u0027t work in all cases,"},{"line_number":10,"context_line":"so instead change the code to try and determine the"},{"line_number":11,"context_line":"correct number of arguments to use in the call to"},{"line_number":12,"context_line":"initialize the parent class."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f7c97a3_ae0d2be8","line":9,"range":{"start_line":9,"start_character":46,"end_line":9,"end_character":55},"in_reply_to":"5f7c97a3_8b9e21b5","updated":"2018-07-04 00:01:10.000000000","message":"It was decided to uncap eventlet: http://lists.openstack.org/pipermail/openstack-dev/2018-April/129096.html\neventlet is capped at 0.20 not by global requirements, it\u0027s capped in upper-constraints, because currently not every openstack project is able to work with newer eventlet version, mostly because of the caps in projects requirements.txt.\nAccording to global-requirements, last allowed version of the eventlet is 0.22.1: https://git.openstack.org/cgit/openstack/requirements/tree/global-requirements.txt#n58","commit_id":"4043971d23384be6e66066716b6601b42fe4d721"},{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"803bce0a065d95aec13f79086712bbac3429747f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix UnixDomainHttpProtocol class to support all eventlet versions"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"It was found a previous change didn\u0027t work in all cases,"},{"line_number":10,"context_line":"so instead change the code to try and determine the"},{"line_number":11,"context_line":"correct number of arguments to use in the call to"},{"line_number":12,"context_line":"initialize the parent class."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f7c97a3_bc8f972c","line":9,"range":{"start_line":9,"start_character":46,"end_line":9,"end_character":55},"in_reply_to":"5f7c97a3_ae0d2be8","updated":"2018-07-04 15:44:45.000000000","message":"Thanks for the links. I think it would be useful to include such context in the commit message.","commit_id":"4043971d23384be6e66066716b6601b42fe4d721"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"940becbdead154bcae3f50291f005bf0b75415c9","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix UnixDomainHttpProtocol class to support all eventlet versions"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"It was found a previous change didn\u0027t work in all cases,"},{"line_number":10,"context_line":"so instead change the code to try and determine the"},{"line_number":11,"context_line":"correct number of arguments to use in the call to"},{"line_number":12,"context_line":"initialize the parent class."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f7c97a3_92bfbba9","line":9,"range":{"start_line":9,"start_character":46,"end_line":9,"end_character":55},"in_reply_to":"5f7c97a3_bc8f972c","updated":"2018-07-10 19:30:36.000000000","message":"Done","commit_id":"4043971d23384be6e66066716b6601b42fe4d721"}],"neutron/agent/linux/utils.py":[{"author":{"_account_id":20408,"name":"Pavel Abalikhin","email":"anpavl@gmail.com","username":"pabalikhin"},"change_message_id":"05758f5219d29af6d0c8553ae367f0f7fe720317","unresolved":false,"context_lines":[{"line_number":399,"context_line":"        # 2) Caller is new-style, we call old signature"},{"line_number":400,"context_line":"        # 3) Caller is old-style, we call new signature"},{"line_number":401,"context_line":"        # 4) Caller is old-style, we call old signature"},{"line_number":402,"context_line":"        # In reality it can probably be shrunk to:"},{"line_number":403,"context_line":"        # 1) Caller is new-style, we call new signature"},{"line_number":404,"context_line":"        # 2) Caller is old-style, we call old signature"},{"line_number":405,"context_line":"        # Because if the caller is eventlet.wsgi.Server.process_request"},{"line_number":406,"context_line":"        # the number of arguments will dictate if it is new or old style."},{"line_number":407,"context_line":"        if len(args) \u003d\u003d 2:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_af20dbf9","line":404,"range":{"start_line":402,"start_character":0,"end_line":404,"end_character":55},"updated":"2018-06-20 09:23:58.000000000","message":"For me it\u0027s true: UnixDomainHttpProtocol.__init__ -\u003e eventlet.wsgi.HttpProtocol.__init__ call chain begins inside Eventlet code and there is no way for new/old style mixes.","commit_id":"4432df581de2384d0172207a6c1a6ca40e0aeb78"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c00051e3b2daba850168a563497de0efbe7e40da","unresolved":false,"context_lines":[{"line_number":399,"context_line":"        # 2) Caller is new-style, we call old signature"},{"line_number":400,"context_line":"        # 3) Caller is old-style, we call new signature"},{"line_number":401,"context_line":"        # 4) Caller is old-style, we call old signature"},{"line_number":402,"context_line":"        # In reality it can probably be shrunk to:"},{"line_number":403,"context_line":"        # 1) Caller is new-style, we call new signature"},{"line_number":404,"context_line":"        # 2) Caller is old-style, we call old signature"},{"line_number":405,"context_line":"        # Because if the caller is eventlet.wsgi.Server.process_request"},{"line_number":406,"context_line":"        # the number of arguments will dictate if it is new or old style."},{"line_number":407,"context_line":"        if len(args) \u003d\u003d 2:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_a1c3d557","line":404,"range":{"start_line":402,"start_character":0,"end_line":404,"end_character":55},"in_reply_to":"5f7c97a3_af20dbf9","updated":"2018-06-22 19:29:59.000000000","message":"Yeah, I only hacked it to support the whole mess since the unit test is only assuming the old version.  It will just need a change.","commit_id":"4432df581de2384d0172207a6c1a6ca40e0aeb78"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e6ffa938348a0f9da9bb1f250e619e57cc4ec8e3","unresolved":false,"context_lines":[{"line_number":399,"context_line":"        # 2) Caller is new-style, we call old signature"},{"line_number":400,"context_line":"        # 3) Caller is old-style, we call new signature"},{"line_number":401,"context_line":"        # 4) Caller is old-style, we call old signature"},{"line_number":402,"context_line":"        # In reality it can probably be shrunk to:"},{"line_number":403,"context_line":"        # 1) Caller is new-style, we call new signature"},{"line_number":404,"context_line":"        # 2) Caller is old-style, we call old signature"},{"line_number":405,"context_line":"        # Because if the caller is eventlet.wsgi.Server.process_request"},{"line_number":406,"context_line":"        # the number of arguments will dictate if it is new or old style."},{"line_number":407,"context_line":"        if len(args) \u003d\u003d 2:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_2440f334","line":404,"range":{"start_line":402,"start_character":0,"end_line":404,"end_character":55},"in_reply_to":"5f7c97a3_af20dbf9","updated":"2018-07-02 17:48:32.000000000","message":"Yes, it more had to do with the unit tests that were written to the old style","commit_id":"4432df581de2384d0172207a6c1a6ca40e0aeb78"},{"author":{"_account_id":20408,"name":"Pavel Abalikhin","email":"anpavl@gmail.com","username":"pabalikhin"},"change_message_id":"05758f5219d29af6d0c8553ae367f0f7fe720317","unresolved":false,"context_lines":[{"line_number":407,"context_line":"        if len(args) \u003d\u003d 2:"},{"line_number":408,"context_line":"            conn_state \u003d args[0]"},{"line_number":409,"context_line":"            try:"},{"line_number":410,"context_line":"                # base class is old-style, so super does not work properly"},{"line_number":411,"context_line":"                eventlet.wsgi.HttpProtocol.__init__(self, conn_state, server)"},{"line_number":412,"context_line":"            except TypeError:"},{"line_number":413,"context_line":"                # TypeError: signature mismatch"},{"line_number":414,"context_line":"                client_address \u003d conn_state[0]"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_6fbe43af","line":411,"range":{"start_line":410,"start_character":0,"end_line":411,"end_character":77},"updated":"2018-06-20 09:23:58.000000000","message":"\u0027client_address\u0027 is not checked in that case. Maybe we should check conn_state[0] and replace it with (\u0027\u003clocal\u003e\u0027, 0) if it necessary?","commit_id":"4432df581de2384d0172207a6c1a6ca40e0aeb78"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c00051e3b2daba850168a563497de0efbe7e40da","unresolved":false,"context_lines":[{"line_number":407,"context_line":"        if len(args) \u003d\u003d 2:"},{"line_number":408,"context_line":"            conn_state \u003d args[0]"},{"line_number":409,"context_line":"            try:"},{"line_number":410,"context_line":"                # base class is old-style, so super does not work properly"},{"line_number":411,"context_line":"                eventlet.wsgi.HttpProtocol.__init__(self, conn_state, server)"},{"line_number":412,"context_line":"            except TypeError:"},{"line_number":413,"context_line":"                # TypeError: signature mismatch"},{"line_number":414,"context_line":"                client_address \u003d conn_state[0]"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_0190894d","line":411,"range":{"start_line":410,"start_character":0,"end_line":411,"end_character":77},"in_reply_to":"5f7c97a3_6fbe43af","updated":"2018-06-22 19:29:59.000000000","message":"Right, will change it.","commit_id":"4432df581de2384d0172207a6c1a6ca40e0aeb78"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"3e18a40f9b228106b7c78ac24f788da9488f4eb6","unresolved":false,"context_lines":[{"line_number":394,"context_line":"        # Both have server as last arg, but first arg(s) differ"},{"line_number":395,"context_line":"        server \u003d args[-1]"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        # Because if the caller is eventlet.wsgi.Server.process_request"},{"line_number":398,"context_line":"        # the number of arguments will dictate if it is new or old style."},{"line_number":399,"context_line":"        if len(args) \u003d\u003d 2:"},{"line_number":400,"context_line":"            conn_state \u003d args[0]"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_36351246","line":397,"range":{"start_line":397,"start_character":18,"end_line":397,"end_character":20},"updated":"2018-07-02 21:48:28.000000000","message":"Are you trying to say that the caller will always be eventlet.wsgi.Server.process_request? In that case, please remove the if","commit_id":"610189c4e6748f736b6ee929cc0e9868bd3609d0"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e21c60fe676eb3eb672cd356f07b4f9d0e1199ed","unresolved":false,"context_lines":[{"line_number":394,"context_line":"        # Both have server as last arg, but first arg(s) differ"},{"line_number":395,"context_line":"        server \u003d args[-1]"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        # Because if the caller is eventlet.wsgi.Server.process_request"},{"line_number":398,"context_line":"        # the number of arguments will dictate if it is new or old style."},{"line_number":399,"context_line":"        if len(args) \u003d\u003d 2:"},{"line_number":400,"context_line":"            conn_state \u003d args[0]"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_bb10185b","line":397,"range":{"start_line":397,"start_character":18,"end_line":397,"end_character":20},"in_reply_to":"5f7c97a3_36351246","updated":"2018-07-03 15:09:06.000000000","message":"AFAIK that is the only caller, i\u0027ll remove the \u0027if\u0027","commit_id":"610189c4e6748f736b6ee929cc0e9868bd3609d0"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"3e18a40f9b228106b7c78ac24f788da9488f4eb6","unresolved":false,"context_lines":[{"line_number":412,"context_line":"            eventlet.wsgi.HttpProtocol.__init__("},{"line_number":413,"context_line":"                self, request, client_address, server)"},{"line_number":414,"context_line":"        else:"},{"line_number":415,"context_line":"            raise"},{"line_number":416,"context_line":""},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"class UnixDomainWSGIServer(wsgi.Server):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_5603ee76","line":415,"updated":"2018-07-02 21:48:28.000000000","message":"If I modifie one of the test cases slightly and pass a 4th argument, I hit this line and get:\n\nneutron.tests.unit.agent.linux.test_utils.TestUnixDomainHttpProtocol.test_init_empty_client\n-------------------------------------------------------------------------------------------\n\nCaptured traceback:\n~~~~~~~~~~~~~~~~~~~\n    Traceback (most recent call last):\n      File \"neutron/tests/base.py\", line 140, in func\n        return f(self, *args, **kwargs)\n      File \"neutron/tests/unit/agent/linux/test_utils.py\", line 494, in test_init_empty_client\n        mock.Mock())\n      File \"neutron/agent/linux/utils.py\", line 415, in __init__\n        raise\n    TypeError: exceptions must be old-style classes or derived from BaseException, not NoneType\n    \nYou need to pass an exception to raise here","commit_id":"610189c4e6748f736b6ee929cc0e9868bd3609d0"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e21c60fe676eb3eb672cd356f07b4f9d0e1199ed","unresolved":false,"context_lines":[{"line_number":412,"context_line":"            eventlet.wsgi.HttpProtocol.__init__("},{"line_number":413,"context_line":"                self, request, client_address, server)"},{"line_number":414,"context_line":"        else:"},{"line_number":415,"context_line":"            raise"},{"line_number":416,"context_line":""},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"class UnixDomainWSGIServer(wsgi.Server):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_8e3878cb","line":415,"in_reply_to":"5f7c97a3_5603ee76","updated":"2018-07-03 15:09:06.000000000","message":"I\u0027ll make it NotImplementedError() since we can\u0027t handle other callers.","commit_id":"610189c4e6748f736b6ee929cc0e9868bd3609d0"},{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"ac8bf355095f239cf66da9763eb86cf1602d7a32","unresolved":false,"context_lines":[{"line_number":411,"context_line":"            # base class is old-style, so super does not work properly"},{"line_number":412,"context_line":"            eventlet.wsgi.HttpProtocol.__init__("},{"line_number":413,"context_line":"                self, request, client_address, server)"},{"line_number":414,"context_line":"        else:"},{"line_number":415,"context_line":"            raise NotImplementedError()"},{"line_number":416,"context_line":""},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"class UnixDomainWSGIServer(wsgi.Server):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_4b3ec9b9","line":415,"range":{"start_line":414,"start_character":0,"end_line":415,"end_character":39},"updated":"2018-07-03 22:10:28.000000000","message":"Nit: it is might be better to do this instead because it will raise the same exception as directly invoking the base class method:\n\n              eventlet.wsgi.HttpProtocol.__init__(\n                self, *args)","commit_id":"4043971d23384be6e66066716b6601b42fe4d721"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"940becbdead154bcae3f50291f005bf0b75415c9","unresolved":false,"context_lines":[{"line_number":411,"context_line":"            # base class is old-style, so super does not work properly"},{"line_number":412,"context_line":"            eventlet.wsgi.HttpProtocol.__init__("},{"line_number":413,"context_line":"                self, request, client_address, server)"},{"line_number":414,"context_line":"        else:"},{"line_number":415,"context_line":"            raise NotImplementedError()"},{"line_number":416,"context_line":""},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"class UnixDomainWSGIServer(wsgi.Server):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_522cc348","line":415,"range":{"start_line":414,"start_character":0,"end_line":415,"end_character":39},"in_reply_to":"5f7c97a3_4b3ec9b9","updated":"2018-07-10 19:30:36.000000000","message":"Done","commit_id":"4043971d23384be6e66066716b6601b42fe4d721"}],"neutron/tests/unit/agent/linux/test_utils.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"3e18a40f9b228106b7c78ac24f788da9488f4eb6","unresolved":false,"context_lines":[{"line_number":483,"context_line":"                self.assertEqual(conn.timeout, 3)"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":""},{"line_number":486,"context_line":"class TestUnixDomainHttpProtocol(base.BaseTestCase):"},{"line_number":487,"context_line":"    def setUp(self):"},{"line_number":488,"context_line":"        super(TestUnixDomainHttpProtocol, self).setUp()"},{"line_number":489,"context_line":"        self.ewhi \u003d mock.patch(\u0027eventlet.wsgi.HttpProtocol.__init__\u0027).start()"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_b6eb62a2","line":486,"updated":"2018-07-02 21:48:28.000000000","message":"Maybe we also need a test case for when you raise an exception here: https://review.openstack.org/#/c/576638/2/neutron/agent/linux/utils.py@415","commit_id":"610189c4e6748f736b6ee929cc0e9868bd3609d0"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e21c60fe676eb3eb672cd356f07b4f9d0e1199ed","unresolved":false,"context_lines":[{"line_number":483,"context_line":"                self.assertEqual(conn.timeout, 3)"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":""},{"line_number":486,"context_line":"class TestUnixDomainHttpProtocol(base.BaseTestCase):"},{"line_number":487,"context_line":"    def setUp(self):"},{"line_number":488,"context_line":"        super(TestUnixDomainHttpProtocol, self).setUp()"},{"line_number":489,"context_line":"        self.ewhi \u003d mock.patch(\u0027eventlet.wsgi.HttpProtocol.__init__\u0027).start()"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_2e74c435","line":486,"in_reply_to":"5f7c97a3_b6eb62a2","updated":"2018-07-03 15:09:06.000000000","message":"Done","commit_id":"610189c4e6748f736b6ee929cc0e9868bd3609d0"}]}
