)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"da6fe84cb9c98b4e714b4632b0d76ad2115f87bd","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Ian Cordasco \u003cian.cordasco@rackspace.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-01-20 20:00:28 -0600"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Configure TCP Keep-Alive for all Sessions"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"novaclient and other clients can experience hung TCP connections. Most"},{"line_number":10,"context_line":"clients use keystoneclient\u0027s session and will need this merged here"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1a930d6b_1717d7ee","line":7,"updated":"2015-01-21 02:03:28.000000000","message":"nit: no longer all","commit_id":"141108f1083706f14ca4aa7dd2df15c2bf2a8309"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"b58d185797ee05a4bbdab27fe66cda9b91044b15","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Ian Cordasco \u003cian.cordasco@rackspace.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-01-20 20:00:28 -0600"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Configure TCP Keep-Alive for all Sessions"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"novaclient and other clients can experience hung TCP connections. Most"},{"line_number":10,"context_line":"clients use keystoneclient\u0027s session and will need this merged here"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1a930d6b_ee81764b","line":7,"in_reply_to":"1a930d6b_1717d7ee","updated":"2015-01-21 20:02:46.000000000","message":"Done","commit_id":"141108f1083706f14ca4aa7dd2df15c2bf2a8309"}],"keystoneclient/httpclient.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"8f30ae847f446408e30231b78372e82fd13ba90f","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    session and do individual connections like we used to."},{"line_number":82,"context_line":"    \"\"\""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    adapters \u003d {}"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def request(self, *args, **kwargs):"},{"line_number":87,"context_line":"        return requests.request(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_73f8164b","line":84,"updated":"2015-01-20 07:45:28.000000000","message":"do we need this? in session you have a getattr(adapters) which means we would skip this.","commit_id":"84c83199fb49552c1c0ee309d30e8050e72c6002"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"a00a471ae2af2d1335726d2e63797c8f85aa65b5","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    session and do individual connections like we used to."},{"line_number":82,"context_line":"    \"\"\""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    adapters \u003d {}"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def request(self, *args, **kwargs):"},{"line_number":87,"context_line":"        return requests.request(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a930d6b_f7024bb3","line":84,"in_reply_to":"3a961159_73f8164b","updated":"2015-01-21 02:01:48.000000000","message":"Done","commit_id":"84c83199fb49552c1c0ee309d30e8050e72c6002"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"18d0506dc011a5ec0bb8446949572163dbab8aee","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    session and do individual connections like we used to."},{"line_number":82,"context_line":"    \"\"\""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    adapters \u003d {}"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def request(self, *args, **kwargs):"},{"line_number":87,"context_line":"        return requests.request(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_8b50db60","line":84,"in_reply_to":"3a961159_73f8164b","updated":"2015-01-20 15:58:28.000000000","message":"Several tests still failed. I\u0027ll double check that the `getattr` doesn\u0027t fix it, but if I remember correctly missing the adapters line here still caused issues elsewhere.","commit_id":"84c83199fb49552c1c0ee309d30e8050e72c6002"}],"keystoneclient/session.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"8f30ae847f446408e30231b78372e82fd13ba90f","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            self.user_agent \u003d user_agent"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        # Check this because tests.test_session.ConstructSessionFromArgsTests"},{"line_number":144,"context_line":"        # uses {\u0027session\u0027: 42} in test_pass_through. This will also protect"},{"line_number":145,"context_line":"        # against other requests.Session like objects too"},{"line_number":146,"context_line":"        if getattr(self.session, \u0027adapters\u0027, None):"},{"line_number":147,"context_line":"            # Use TCPKeepAliveAdapter to fix bug 1323862"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_d3962aef","line":144,"updated":"2015-01-20 07:45:28.000000000","message":"we can just fix that test\n\nnit: don\u0027t mention the test - it\u0027s a bad test and i expect people to read this file to learn how to use the code. makes us look bad :p","commit_id":"84c83199fb49552c1c0ee309d30e8050e72c6002"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"a00a471ae2af2d1335726d2e63797c8f85aa65b5","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            self.user_agent \u003d user_agent"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        # Check this because tests.test_session.ConstructSessionFromArgsTests"},{"line_number":144,"context_line":"        # uses {\u0027session\u0027: 42} in test_pass_through. This will also protect"},{"line_number":145,"context_line":"        # against other requests.Session like objects too"},{"line_number":146,"context_line":"        if getattr(self.session, \u0027adapters\u0027, None):"},{"line_number":147,"context_line":"            # Use TCPKeepAliveAdapter to fix bug 1323862"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a930d6b_9714a7f6","line":144,"in_reply_to":"3a961159_8bd7fbbf","updated":"2015-01-21 02:01:48.000000000","message":"We can still fix the test but it no longer affects this patchset.","commit_id":"84c83199fb49552c1c0ee309d30e8050e72c6002"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"18d0506dc011a5ec0bb8446949572163dbab8aee","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            self.user_agent \u003d user_agent"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        # Check this because tests.test_session.ConstructSessionFromArgsTests"},{"line_number":144,"context_line":"        # uses {\u0027session\u0027: 42} in test_pass_through. This will also protect"},{"line_number":145,"context_line":"        # against other requests.Session like objects too"},{"line_number":146,"context_line":"        if getattr(self.session, \u0027adapters\u0027, None):"},{"line_number":147,"context_line":"            # Use TCPKeepAliveAdapter to fix bug 1323862"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_8bd7fbbf","line":144,"in_reply_to":"3a961159_d3962aef","updated":"2015-01-20 15:58:28.000000000","message":"It seemed like the test was written to avoid having too many tests so I didn\u0027t want to annoy anyone with my first patch into the project. :)","commit_id":"84c83199fb49552c1c0ee309d30e8050e72c6002"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"8f30ae847f446408e30231b78372e82fd13ba90f","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        if getattr(self.session, \u0027adapters\u0027, None):"},{"line_number":147,"context_line":"            # Use TCPKeepAliveAdapter to fix bug 1323862"},{"line_number":148,"context_line":"            for scheme in self.session.adapters.keys():"},{"line_number":149,"context_line":"                self.session.mount(scheme, TCPKeepAliveAdapter())"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    @classmethod"},{"line_number":152,"context_line":"    def process_header(cls, header):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_738f36ce","line":149,"updated":"2015-01-20 07:45:28.000000000","message":"so i don\u0027t like changing attributes on objects that are passed to us. We let people pass us the session because they will want to override things like this. If i can ever get this stuff into glanceclient i assume passing the session like this is going to be how it\u0027s done. \n\nLet\u0027s move this up to line 126 so that we only do this for sessions that we create.","commit_id":"84c83199fb49552c1c0ee309d30e8050e72c6002"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"a00a471ae2af2d1335726d2e63797c8f85aa65b5","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        if getattr(self.session, \u0027adapters\u0027, None):"},{"line_number":147,"context_line":"            # Use TCPKeepAliveAdapter to fix bug 1323862"},{"line_number":148,"context_line":"            for scheme in self.session.adapters.keys():"},{"line_number":149,"context_line":"                self.session.mount(scheme, TCPKeepAliveAdapter())"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    @classmethod"},{"line_number":152,"context_line":"    def process_header(cls, header):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a930d6b_b7f8c3c5","line":149,"in_reply_to":"3a961159_738f36ce","updated":"2015-01-21 02:01:48.000000000","message":"Done","commit_id":"84c83199fb49552c1c0ee309d30e8050e72c6002"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"18d0506dc011a5ec0bb8446949572163dbab8aee","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        if getattr(self.session, \u0027adapters\u0027, None):"},{"line_number":147,"context_line":"            # Use TCPKeepAliveAdapter to fix bug 1323862"},{"line_number":148,"context_line":"            for scheme in self.session.adapters.keys():"},{"line_number":149,"context_line":"                self.session.mount(scheme, TCPKeepAliveAdapter())"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    @classmethod"},{"line_number":152,"context_line":"    def process_header(cls, header):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_8b229b00","line":149,"in_reply_to":"3a961159_738f36ce","updated":"2015-01-20 15:58:28.000000000","message":"Fair enough, I wasn\u0027t sure when we\u0027d want to actually set up the adapter and how forceful we wanted to be about using it.","commit_id":"84c83199fb49552c1c0ee309d30e8050e72c6002"}],"keystoneclient/tests/test_session.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"da6fe84cb9c98b4e714b4632b0d76ad2115f87bd","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        assert isinstance(requests_session.adapters[\u0027http://\u0027],"},{"line_number":212,"context_line":"                          client_session.TCPKeepAliveAdapter)"},{"line_number":213,"context_line":"        assert isinstance(requests_session.adapters[\u0027https://\u0027],"},{"line_number":214,"context_line":"                          client_session.TCPKeepAliveAdapter)"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"class RedirectTests(utils.TestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a930d6b_d71c6f16","line":214,"updated":"2015-01-21 02:03:28.000000000","message":"self.assertIs()","commit_id":"141108f1083706f14ca4aa7dd2df15c2bf2a8309"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"b58d185797ee05a4bbdab27fe66cda9b91044b15","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        assert isinstance(requests_session.adapters[\u0027http://\u0027],"},{"line_number":212,"context_line":"                          client_session.TCPKeepAliveAdapter)"},{"line_number":213,"context_line":"        assert isinstance(requests_session.adapters[\u0027https://\u0027],"},{"line_number":214,"context_line":"                          client_session.TCPKeepAliveAdapter)"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"class RedirectTests(utils.TestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a930d6b_6eb6663f","line":214,"in_reply_to":"1a930d6b_d71c6f16","updated":"2015-01-21 20:02:46.000000000","message":"Done","commit_id":"141108f1083706f14ca4aa7dd2df15c2bf2a8309"}]}
