)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"40cd17ccb1fa0073c737b17c21b817d9c6021b14","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Tom Cocozzello \u003ctjcocozz@us.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-10-08 08:46:46 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Configure filter factories for PasteDeploy"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Define filter factories so Keystone can references them by name"},{"line_number":10,"context_line":"and can take advantage of the python egg instead of referencing"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5a2ca52d_509eba07","line":7,"updated":"2015-10-16 18:49:16.000000000","message":"Change to \"Define entry points for filter factories for Paste Deployment\"\n\nThere\u0027s no filter factory configuration going on.","commit_id":"5998b5613653aba8e6ded3a61f06a493f514d18a"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"eea35d35ea907f1e425322e5fca8ad49da876dc4","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Tom Cocozzello \u003ctjcocozz@us.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-10-08 08:46:46 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Configure filter factories for PasteDeploy"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Define filter factories so Keystone can references them by name"},{"line_number":10,"context_line":"and can take advantage of the python egg instead of referencing"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5a2ca52d_96d3ea5f","line":7,"in_reply_to":"5a2ca52d_509eba07","updated":"2015-10-16 19:20:30.000000000","message":"Done","commit_id":"5998b5613653aba8e6ded3a61f06a493f514d18a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"40cd17ccb1fa0073c737b17c21b817d9c6021b14","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Configure filter factories for PasteDeploy"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Define filter factories so Keystone can references them by name"},{"line_number":10,"context_line":"and can take advantage of the python egg instead of referencing"},{"line_number":11,"context_line":"by the direct path"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5a2ca52d_3001be38","line":9,"updated":"2015-10-16 18:49:16.000000000","message":"change \"references\" to \"reference\"","commit_id":"5998b5613653aba8e6ded3a61f06a493f514d18a"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"eea35d35ea907f1e425322e5fca8ad49da876dc4","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Configure filter factories for PasteDeploy"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Define filter factories so Keystone can references them by name"},{"line_number":10,"context_line":"and can take advantage of the python egg instead of referencing"},{"line_number":11,"context_line":"by the direct path"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5a2ca52d_d6e64243","line":9,"in_reply_to":"5a2ca52d_3001be38","updated":"2015-10-16 19:20:30.000000000","message":"Done","commit_id":"5998b5613653aba8e6ded3a61f06a493f514d18a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"40cd17ccb1fa0073c737b17c21b817d9c6021b14","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Define filter factories so Keystone can references them by name"},{"line_number":10,"context_line":"and can take advantage of the python egg instead of referencing"},{"line_number":11,"context_line":"by the direct path"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This will also be beneficial for other projects that are defining"},{"line_number":14,"context_line":"these Oslo factories directly"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5a2ca52d_9098d21d","line":11,"updated":"2015-10-16 18:49:16.000000000","message":"use . at end of sentence.","commit_id":"5998b5613653aba8e6ded3a61f06a493f514d18a"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"eea35d35ea907f1e425322e5fca8ad49da876dc4","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Define filter factories so Keystone can references them by name"},{"line_number":10,"context_line":"and can take advantage of the python egg instead of referencing"},{"line_number":11,"context_line":"by the direct path"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This will also be beneficial for other projects that are defining"},{"line_number":14,"context_line":"these Oslo factories directly"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5a2ca52d_16e11a2d","line":11,"in_reply_to":"5a2ca52d_9098d21d","updated":"2015-10-16 19:20:30.000000000","message":"Done","commit_id":"5998b5613653aba8e6ded3a61f06a493f514d18a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"40cd17ccb1fa0073c737b17c21b817d9c6021b14","unresolved":false,"context_lines":[{"line_number":11,"context_line":"by the direct path"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This will also be beneficial for other projects that are defining"},{"line_number":14,"context_line":"these Oslo factories directly"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Id05c319c1d19261618471fa75983cf8020fc60b6"},{"line_number":17,"context_line":"Closes-Bug: 1500509"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5a2ca52d_90f1b26d","line":14,"updated":"2015-10-16 18:49:16.000000000","message":"what does this mean?","commit_id":"5998b5613653aba8e6ded3a61f06a493f514d18a"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"eea35d35ea907f1e425322e5fca8ad49da876dc4","unresolved":false,"context_lines":[{"line_number":11,"context_line":"by the direct path"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This will also be beneficial for other projects that are defining"},{"line_number":14,"context_line":"these Oslo factories directly"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Id05c319c1d19261618471fa75983cf8020fc60b6"},{"line_number":17,"context_line":"Closes-Bug: 1500509"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5a2ca52d_16b35a51","line":14,"in_reply_to":"5a2ca52d_90f1b26d","updated":"2015-10-16 19:20:30.000000000","message":"Done - deleted.  I was just explaining that other packages can also take advantage of the change that is being made.","commit_id":"5998b5613653aba8e6ded3a61f06a493f514d18a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"fd3f407e7047bd5b956f82fa3012213ebbabe687","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Tom Cocozzello \u003ctjcocozz@us.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-10-19 13:41:14 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Configure filter factories for PasteDeploy"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Define filter factories so Keystone can references them by name"},{"line_number":10,"context_line":"and can take advantage of the python egg instead of referencing"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"1a26ad4f_874effbf","line":7,"updated":"2015-10-28 01:24:31.000000000","message":"See comments in patch set 8.","commit_id":"8e5d1a5a74232c1143edf0d20bbdb6177dc52263"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f64f547fbf9e097a4c9a0919aefa7a274c15bfb8","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Define entry points for filter factories for Paste Deployment"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Define filter factories so Keystone can reference them by name"},{"line_number":10,"context_line":"and can take advantage of the python egg instead of referencing"},{"line_number":11,"context_line":"by the direct path."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"da85f559_50117851","line":9,"updated":"2015-11-09 14:45:57.000000000","message":"change \"Keystone\" to \"other projects\" since it\u0027s not just keystone that\u0027s going to use this.","commit_id":"ccb5c4eeee15cf46b54ddc2f6dcb2a0bf18abb00"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"82fbe3f4b1b4933aa0da10b33776961aa1ddc5cd","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Define entry points for filter factories for Paste Deployment"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Define filter factories so Keystone can reference them by name"},{"line_number":10,"context_line":"and can take advantage of the python egg instead of referencing"},{"line_number":11,"context_line":"by the direct path."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"da85f559_a4bae5df","line":9,"in_reply_to":"da85f559_50117851","updated":"2015-11-09 15:03:01.000000000","message":"Will do shortly. I just want to give Lei some time to respond.","commit_id":"ccb5c4eeee15cf46b54ddc2f6dcb2a0bf18abb00"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"dff4b040c96fcc49529d72d93387621c0a20f55e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Define entry points for filter factories for Paste Deployment"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Define filter factories so Keystone can reference them by name"},{"line_number":10,"context_line":"and can take advantage of the python egg instead of referencing"},{"line_number":11,"context_line":"by the direct path."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"da85f559_8f557151","line":9,"in_reply_to":"da85f559_a4bae5df","updated":"2015-11-09 17:41:29.000000000","message":"Done","commit_id":"ccb5c4eeee15cf46b54ddc2f6dcb2a0bf18abb00"},{"author":{"_account_id":16523,"name":"ZhangLei","display_name":"ZhangLei","email":"zhang.lei@99cloud.net","username":"zhang.lei"},"change_message_id":"5f4fcda62e4e6d68ab6983b56c318ee3d3a3021e","unresolved":false,"context_lines":[{"line_number":11,"context_line":"by the direct path."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Id05c319c1d19261618471fa75983cf8020fc60b6"},{"line_number":14,"context_line":"Closes-Bug: 1500509"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"da85f559_563741b0","line":14,"updated":"2015-11-09 09:49:53.000000000","message":"i think Partial-Bug is better","commit_id":"ccb5c4eeee15cf46b54ddc2f6dcb2a0bf18abb00"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"e4701ac9430eb1d94b64cd3a3ebc06636cb31a5e","unresolved":false,"context_lines":[{"line_number":11,"context_line":"by the direct path."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Id05c319c1d19261618471fa75983cf8020fc60b6"},{"line_number":14,"context_line":"Closes-Bug: 1500509"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"da85f559_15d9a221","line":14,"in_reply_to":"da85f559_563741b0","updated":"2015-11-09 14:39:14.000000000","message":"Lei, I think closes bug is correct. In this case within the bug there is another section where someone can assign it to themselves to make the change in Keystone.  Please explain why you think \u0027Partial\u0027 is better :)","commit_id":"ccb5c4eeee15cf46b54ddc2f6dcb2a0bf18abb00"}],"oslo_middleware/tests/test_entry_points.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a868398a3c9ed9bce3c303e2560fe2df15cde4a8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2015 Hewlett-Packard Development Company, L.P."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa80f949_4bfc04b8","line":1,"updated":"2015-11-06 13:47:42.000000000","message":"why are you giving HP the copyright to this?","commit_id":"3269812087f2784af6bb1ea70cf66febfa448d5a"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"2565136d5449408f3aa3a91cbfe6f438fafb93ec","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2015 Hewlett-Packard Development Company, L.P."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa80f949_66f9fdc6","line":1,"in_reply_to":"fa80f949_4bfc04b8","updated":"2015-11-06 14:29:22.000000000","message":"Thats not good. :-|","commit_id":"3269812087f2784af6bb1ea70cf66febfa448d5a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a868398a3c9ed9bce3c303e2560fe2df15cde4a8","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from testtools import matchers"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import oslo_middleware"},{"line_number":19,"context_line":"from oslotest.base import BaseTestCase"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class TestPasteDeploymentEntryPoints(BaseTestCase):"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa80f949_cbbc74de","line":19,"updated":"2015-11-06 13:47:42.000000000","message":"this import should be grouped with the other external imports above.","commit_id":"3269812087f2784af6bb1ea70cf66febfa448d5a"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"2565136d5449408f3aa3a91cbfe6f438fafb93ec","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from testtools import matchers"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import oslo_middleware"},{"line_number":19,"context_line":"from oslotest.base import BaseTestCase"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class TestPasteDeploymentEntryPoints(BaseTestCase):"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa80f949_86242160","line":19,"in_reply_to":"fa80f949_cbbc74de","updated":"2015-11-06 14:29:22.000000000","message":"Done","commit_id":"3269812087f2784af6bb1ea70cf66febfa448d5a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a868398a3c9ed9bce3c303e2560fe2df15cde4a8","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        self.assertEqual(factory_name_obj.SSLMiddleware.factory, e.plugin)"},{"line_number":47,"context_line":"        e \u003d [m for m in em if m.name \u003d\u003d \u0027debug\u0027][0]"},{"line_number":48,"context_line":"        factory_name_obj \u003d getattr(oslo_middleware, \u0027debug\u0027)"},{"line_number":49,"context_line":"        self.assertEqual(factory_name_obj.Debug.factory, e.plugin)"},{"line_number":50,"context_line":"        e \u003d [m for m in em if m.name \u003d\u003d \u0027request_id\u0027][0]"},{"line_number":51,"context_line":"        factory_name_obj \u003d getattr(oslo_middleware, \u0027request_id\u0027)"},{"line_number":52,"context_line":"        self.assertEqual(factory_name_obj.RequestId.factory, e.plugin)"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa80f949_4bd16422","line":49,"updated":"2015-11-06 13:47:42.000000000","message":"create a function rather than copy-pasting.","commit_id":"3269812087f2784af6bb1ea70cf66febfa448d5a"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"2565136d5449408f3aa3a91cbfe6f438fafb93ec","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        self.assertEqual(factory_name_obj.SSLMiddleware.factory, e.plugin)"},{"line_number":47,"context_line":"        e \u003d [m for m in em if m.name \u003d\u003d \u0027debug\u0027][0]"},{"line_number":48,"context_line":"        factory_name_obj \u003d getattr(oslo_middleware, \u0027debug\u0027)"},{"line_number":49,"context_line":"        self.assertEqual(factory_name_obj.Debug.factory, e.plugin)"},{"line_number":50,"context_line":"        e \u003d [m for m in em if m.name \u003d\u003d \u0027request_id\u0027][0]"},{"line_number":51,"context_line":"        factory_name_obj \u003d getattr(oslo_middleware, \u0027request_id\u0027)"},{"line_number":52,"context_line":"        self.assertEqual(factory_name_obj.RequestId.factory, e.plugin)"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa80f949_a6292539","line":49,"in_reply_to":"fa80f949_4bd16422","updated":"2015-11-06 14:29:22.000000000","message":"Done","commit_id":"3269812087f2784af6bb1ea70cf66febfa448d5a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3ed19921429971642c19dcdf966e9a12f2b04a42","unresolved":false,"context_lines":[{"line_number":11,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":12,"context_line":"# under the License."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"import oslo_middleware"},{"line_number":15,"context_line":"from oslotest.base import BaseTestCase"},{"line_number":16,"context_line":"import stevedore"},{"line_number":17,"context_line":"from testtools import matchers"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa80f949_0d62893e","line":14,"updated":"2015-11-06 16:37:30.000000000","message":"move the oslo_middleware import to its own section. See http://docs.openstack.org/developer/hacking/#imports","commit_id":"c9eed1b70a2247ad2d5cb93c243018174c4735f5"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"9d1cb8f6675eb232928dacfeb8648ad2dac289ae","unresolved":false,"context_lines":[{"line_number":11,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":12,"context_line":"# under the License."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"import oslo_middleware"},{"line_number":15,"context_line":"from oslotest.base import BaseTestCase"},{"line_number":16,"context_line":"import stevedore"},{"line_number":17,"context_line":"from testtools import matchers"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa80f949_183969a4","line":14,"in_reply_to":"fa80f949_0d62893e","updated":"2015-11-06 17:57:12.000000000","message":"Done","commit_id":"c9eed1b70a2247ad2d5cb93c243018174c4735f5"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3ed19921429971642c19dcdf966e9a12f2b04a42","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                        matchers.ContainsAll(expected_factory_names))"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        # Ensure that we can create instances of the filter factories"},{"line_number":43,"context_line":"        self._verify_factory(\u0027ssl\u0027, \u0027SSLMiddleware\u0027)"},{"line_number":44,"context_line":"        self._verify_factory(\u0027debug\u0027, \u0027Debug\u0027)"},{"line_number":45,"context_line":"        self._verify_factory(\u0027request_id\u0027, \u0027RequestId\u0027)"},{"line_number":46,"context_line":"        self._verify_factory(\u0027cors\u0027, \u0027CORS\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa80f949_4d741135","line":43,"updated":"2015-11-06 16:37:30.000000000","message":"suggest put this in a loop to avoid duplication\n\n for x in ((\u0027ssl\u0027, \u0027SSLMiddleware\u0027), (\u0027debug\u0027, \u0027Debug\u0027), ...):\n    self._verify_factory(*x)\n\nYou could avoid more duplication by changing expected_factory_names into a dict that maps factory name to class_name and loop over that with items()","commit_id":"c9eed1b70a2247ad2d5cb93c243018174c4735f5"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"9d1cb8f6675eb232928dacfeb8648ad2dac289ae","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                        matchers.ContainsAll(expected_factory_names))"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        # Ensure that we can create instances of the filter factories"},{"line_number":43,"context_line":"        self._verify_factory(\u0027ssl\u0027, \u0027SSLMiddleware\u0027)"},{"line_number":44,"context_line":"        self._verify_factory(\u0027debug\u0027, \u0027Debug\u0027)"},{"line_number":45,"context_line":"        self._verify_factory(\u0027request_id\u0027, \u0027RequestId\u0027)"},{"line_number":46,"context_line":"        self._verify_factory(\u0027cors\u0027, \u0027CORS\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa80f949_b8f85dc4","line":43,"in_reply_to":"fa80f949_4d741135","updated":"2015-11-06 17:57:12.000000000","message":"That is a really good idea. Done!","commit_id":"c9eed1b70a2247ad2d5cb93c243018174c4735f5"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3ed19921429971642c19dcdf966e9a12f2b04a42","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def _verify_factory(self, factory_name, class_name):"},{"line_number":54,"context_line":"        e \u003d [m for m in self.em if m.name \u003d\u003d factory_name][0]"},{"line_number":55,"context_line":"        factory_name_obj \u003d getattr(oslo_middleware, factory_name)"},{"line_number":56,"context_line":"        factory_name_class \u003d getattr(factory_name_obj, class_name)"},{"line_number":57,"context_line":"        self.assertEqual(factory_name_class.factory, e.plugin)"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa80f949_edb2a5e4","line":55,"updated":"2015-11-06 16:37:30.000000000","message":"rename this to factory.","commit_id":"c9eed1b70a2247ad2d5cb93c243018174c4735f5"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"9d1cb8f6675eb232928dacfeb8648ad2dac289ae","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def _verify_factory(self, factory_name, class_name):"},{"line_number":54,"context_line":"        e \u003d [m for m in self.em if m.name \u003d\u003d factory_name][0]"},{"line_number":55,"context_line":"        factory_name_obj \u003d getattr(oslo_middleware, factory_name)"},{"line_number":56,"context_line":"        factory_name_class \u003d getattr(factory_name_obj, class_name)"},{"line_number":57,"context_line":"        self.assertEqual(factory_name_class.factory, e.plugin)"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa80f949_98c6b998","line":55,"in_reply_to":"fa80f949_edb2a5e4","updated":"2015-11-06 17:57:12.000000000","message":"Done","commit_id":"c9eed1b70a2247ad2d5cb93c243018174c4735f5"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3ed19921429971642c19dcdf966e9a12f2b04a42","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    def _verify_factory(self, factory_name, class_name):"},{"line_number":54,"context_line":"        e \u003d [m for m in self.em if m.name \u003d\u003d factory_name][0]"},{"line_number":55,"context_line":"        factory_name_obj \u003d getattr(oslo_middleware, factory_name)"},{"line_number":56,"context_line":"        factory_name_class \u003d getattr(factory_name_obj, class_name)"},{"line_number":57,"context_line":"        self.assertEqual(factory_name_class.factory, e.plugin)"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa80f949_2de42ddf","line":56,"updated":"2015-11-06 16:37:30.000000000","message":"rename this to factory_class","commit_id":"c9eed1b70a2247ad2d5cb93c243018174c4735f5"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"9d1cb8f6675eb232928dacfeb8648ad2dac289ae","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    def _verify_factory(self, factory_name, class_name):"},{"line_number":54,"context_line":"        e \u003d [m for m in self.em if m.name \u003d\u003d factory_name][0]"},{"line_number":55,"context_line":"        factory_name_obj \u003d getattr(oslo_middleware, factory_name)"},{"line_number":56,"context_line":"        factory_name_class \u003d getattr(factory_name_obj, class_name)"},{"line_number":57,"context_line":"        self.assertEqual(factory_name_class.factory, e.plugin)"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa80f949_d8c76196","line":56,"in_reply_to":"fa80f949_2de42ddf","updated":"2015-11-06 17:57:12.000000000","message":"Done","commit_id":"c9eed1b70a2247ad2d5cb93c243018174c4735f5"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3ed19921429971642c19dcdf966e9a12f2b04a42","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        e \u003d [m for m in self.em if m.name \u003d\u003d factory_name][0]"},{"line_number":55,"context_line":"        factory_name_obj \u003d getattr(oslo_middleware, factory_name)"},{"line_number":56,"context_line":"        factory_name_class \u003d getattr(factory_name_obj, class_name)"},{"line_number":57,"context_line":"        self.assertEqual(factory_name_class.factory, e.plugin)"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa80f949_cdfb217a","line":57,"updated":"2015-11-06 16:37:30.000000000","message":"use assertIs since this is comparing instances.","commit_id":"c9eed1b70a2247ad2d5cb93c243018174c4735f5"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"9d1cb8f6675eb232928dacfeb8648ad2dac289ae","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        e \u003d [m for m in self.em if m.name \u003d\u003d factory_name][0]"},{"line_number":55,"context_line":"        factory_name_obj \u003d getattr(oslo_middleware, factory_name)"},{"line_number":56,"context_line":"        factory_name_class \u003d getattr(factory_name_obj, class_name)"},{"line_number":57,"context_line":"        self.assertEqual(factory_name_class.factory, e.plugin)"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa80f949_b8c37d88","line":57,"in_reply_to":"fa80f949_cdfb217a","updated":"2015-11-06 17:57:12.000000000","message":"Brant for \u0027factory\u0027 it is dynamically changed, so when it is called it will be loaded into a different memory location.  the identity operator won\u0027t work.\n\nhttps://github.com/openstack/oslo.middleware/blob/master/oslo_middleware/base.py#L49","commit_id":"c9eed1b70a2247ad2d5cb93c243018174c4735f5"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"e7dc549e08b51757cba6f3289efdb40258b8e0ba","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    em \u003d stevedore.ExtensionManager(\u0027paste.filter_factory\u0027)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def test_entry_points(self):"},{"line_number":25,"context_line":"        expected_factory_names \u003d {"},{"line_number":26,"context_line":"            \u0027catch_errors\u0027: \u0027CatchErrors\u0027,"},{"line_number":27,"context_line":"            \u0027correlation_id\u0027: \u0027CorrelationId\u0027,"},{"line_number":28,"context_line":"            \u0027cors\u0027: \u0027CORS\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa80f949_e8de1010","line":25,"updated":"2015-11-06 18:10:29.000000000","message":"rename this since it\u0027s not names: factory_classes","commit_id":"5c42b0be2d87f90c4f4a3737dcd95ce5bbd78d37"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"1d119d1b25a7fc2b59f0c3d4e6abba3b6e0f39cb","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    em \u003d stevedore.ExtensionManager(\u0027paste.filter_factory\u0027)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def test_entry_points(self):"},{"line_number":25,"context_line":"        expected_factory_names \u003d {"},{"line_number":26,"context_line":"            \u0027catch_errors\u0027: \u0027CatchErrors\u0027,"},{"line_number":27,"context_line":"            \u0027correlation_id\u0027: \u0027CorrelationId\u0027,"},{"line_number":28,"context_line":"            \u0027cors\u0027: \u0027CORS\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa80f949_391b0c75","line":25,"in_reply_to":"fa80f949_e8de1010","updated":"2015-11-06 19:54:16.000000000","message":"Done","commit_id":"5c42b0be2d87f90c4f4a3737dcd95ce5bbd78d37"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"e7dc549e08b51757cba6f3289efdb40258b8e0ba","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        # Ensure all the factories are defined by their names"},{"line_number":38,"context_line":"        factory_names \u003d [extension.name for extension in self.em]"},{"line_number":39,"context_line":"        self.assertThat(factory_names,"},{"line_number":40,"context_line":"                        matchers.ContainsAll(expected_factory_names.keys()))"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        # Ensure that we can create instances of the filter factories"},{"line_number":43,"context_line":"        for factory_key, factory_value in expected_factory_names.iteritems():"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa80f949_0832745f","line":40,"updated":"2015-11-06 18:10:29.000000000","message":"keys() isn\u0027t needed here is it?","commit_id":"5c42b0be2d87f90c4f4a3737dcd95ce5bbd78d37"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"1d119d1b25a7fc2b59f0c3d4e6abba3b6e0f39cb","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        # Ensure all the factories are defined by their names"},{"line_number":38,"context_line":"        factory_names \u003d [extension.name for extension in self.em]"},{"line_number":39,"context_line":"        self.assertThat(factory_names,"},{"line_number":40,"context_line":"                        matchers.ContainsAll(expected_factory_names.keys()))"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        # Ensure that we can create instances of the filter factories"},{"line_number":43,"context_line":"        for factory_key, factory_value in expected_factory_names.iteritems():"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa80f949_d9cc40bd","line":40,"in_reply_to":"fa80f949_0832745f","updated":"2015-11-06 19:54:16.000000000","message":"no, surprisingly not.  Reading the doc it says ContainsAll \"checks whether a list of things is contained in another thing.\"  Its not to specific but it seems like the original intentions of the function. lol","commit_id":"5c42b0be2d87f90c4f4a3737dcd95ce5bbd78d37"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"e7dc549e08b51757cba6f3289efdb40258b8e0ba","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                        matchers.ContainsAll(expected_factory_names.keys()))"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        # Ensure that we can create instances of the filter factories"},{"line_number":43,"context_line":"        for factory_key, factory_value in expected_factory_names.iteritems():"},{"line_number":44,"context_line":"            self._verify_factory(factory_key, factory_value)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def _verify_factory(self, factory_name, class_name):"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa80f949_088fd42a","line":43,"updated":"2015-11-06 18:10:29.000000000","message":"this is using the python2 .iteritems() function. Use .items() it works on both py2 and py3.\n\nAlso, change the name, this should be factory_name, class_name","commit_id":"5c42b0be2d87f90c4f4a3737dcd95ce5bbd78d37"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"1d119d1b25a7fc2b59f0c3d4e6abba3b6e0f39cb","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                        matchers.ContainsAll(expected_factory_names.keys()))"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        # Ensure that we can create instances of the filter factories"},{"line_number":43,"context_line":"        for factory_key, factory_value in expected_factory_names.iteritems():"},{"line_number":44,"context_line":"            self._verify_factory(factory_key, factory_value)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def _verify_factory(self, factory_name, class_name):"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa80f949_797e741a","line":43,"in_reply_to":"fa80f949_088fd42a","updated":"2015-11-06 19:54:16.000000000","message":"Done","commit_id":"5c42b0be2d87f90c4f4a3737dcd95ce5bbd78d37"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6ae2512c130bb48a85e16195b09ceee7b7ddf3e3","unresolved":false,"context_lines":[{"line_number":10,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from oslotest.base import BaseTestCase"},{"line_number":14,"context_line":"import stevedore"},{"line_number":15,"context_line":"from testtools import matchers"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"da85f559_e3805fc1","line":13,"updated":"2015-11-11 20:06:56.000000000","message":"The OpenStack style guide requires importing modules rather than objects, see http://docs.openstack.org/developer/hacking/#imports\n\nSo this should be \"from oslotest import base\" or \"import oslotest.base\"","commit_id":"6a8251fc57dc4dafd9c28a4b2335cc76b615cb08"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"90b9e7b433b445f08603a207f5bad6a8987fa94e","unresolved":false,"context_lines":[{"line_number":10,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from oslotest.base import BaseTestCase"},{"line_number":14,"context_line":"import stevedore"},{"line_number":15,"context_line":"from testtools import matchers"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"da85f559_99222451","line":13,"in_reply_to":"da85f559_e3805fc1","updated":"2015-11-11 20:51:31.000000000","message":"Thank you for showing this to me.  I didn\u0027t realize.  Done","commit_id":"6a8251fc57dc4dafd9c28a4b2335cc76b615cb08"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6ae2512c130bb48a85e16195b09ceee7b7ddf3e3","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestPasteDeploymentEntryPoints(BaseTestCase):"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    em \u003d stevedore.ExtensionManager(\u0027paste.filter_factory\u0027)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def test_entry_points(self):"},{"line_number":25,"context_line":"        factory_classes \u003d {"}],"source_content_type":"text/x-python","patch_set":16,"id":"da85f559_2365071d","line":22,"updated":"2015-11-11 20:06:56.000000000","message":"move this inside the test_entry_points function. It\u0027s better to perform actions at runtime rather than at import time since then the code has more control over it.","commit_id":"6a8251fc57dc4dafd9c28a4b2335cc76b615cb08"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"90b9e7b433b445f08603a207f5bad6a8987fa94e","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestPasteDeploymentEntryPoints(BaseTestCase):"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    em \u003d stevedore.ExtensionManager(\u0027paste.filter_factory\u0027)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def test_entry_points(self):"},{"line_number":25,"context_line":"        factory_classes \u003d {"}],"source_content_type":"text/x-python","patch_set":16,"id":"da85f559_79a50045","line":22,"in_reply_to":"da85f559_2365071d","updated":"2015-11-11 20:51:31.000000000","message":"Done","commit_id":"6a8251fc57dc4dafd9c28a4b2335cc76b615cb08"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6ae2512c130bb48a85e16195b09ceee7b7ddf3e3","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        for factory_name, class_name in factory_classes.items():"},{"line_number":44,"context_line":"            self._verify_factory(factory_name, class_name)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def _verify_factory(self, factory_name, class_name):"},{"line_number":47,"context_line":"        e \u003d [m for m in self.em if m.name \u003d\u003d factory_name][0]"},{"line_number":48,"context_line":"        factory \u003d getattr(oslo_middleware, factory_name)"},{"line_number":49,"context_line":"        factory_class \u003d getattr(factory, class_name).factory"}],"source_content_type":"text/x-python","patch_set":16,"id":"da85f559_e3e5bfa3","line":46,"updated":"2015-11-11 20:06:56.000000000","message":"suggest move this code to be inline. Having a function just makes the test more complicated than it needs to be.","commit_id":"6a8251fc57dc4dafd9c28a4b2335cc76b615cb08"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"90b9e7b433b445f08603a207f5bad6a8987fa94e","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        for factory_name, class_name in factory_classes.items():"},{"line_number":44,"context_line":"            self._verify_factory(factory_name, class_name)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def _verify_factory(self, factory_name, class_name):"},{"line_number":47,"context_line":"        e \u003d [m for m in self.em if m.name \u003d\u003d factory_name][0]"},{"line_number":48,"context_line":"        factory \u003d getattr(oslo_middleware, factory_name)"},{"line_number":49,"context_line":"        factory_class \u003d getattr(factory, class_name).factory"}],"source_content_type":"text/x-python","patch_set":16,"id":"da85f559_b9afe828","line":46,"in_reply_to":"da85f559_e3e5bfa3","updated":"2015-11-11 20:51:31.000000000","message":"Done","commit_id":"6a8251fc57dc4dafd9c28a4b2335cc76b615cb08"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"390b63c716d3eb2db499fade5ba738473c04b9a8","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        self.assertThat(factory_names,"},{"line_number":40,"context_line":"                        matchers.ContainsAll(factory_classes))"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        # Ensure that we can create instances of the filter factories"},{"line_number":43,"context_line":"        for factory_name, class_name in factory_classes.items():"},{"line_number":44,"context_line":"            e \u003d [m for m in em if m.name \u003d\u003d factory_name][0]"},{"line_number":45,"context_line":"            factory \u003d getattr(oslo_middleware, factory_name)"}],"source_content_type":"text/x-python","patch_set":18,"id":"ba8a016a_0673ca81","line":42,"updated":"2015-11-16 21:17:33.000000000","message":"This part of the test is verifying that stevedore works, not that anything done here in this package is right. It should pass, but it\u0027s superfluous so I\u0027ve submitted a follow-up patch to remove it.","commit_id":"88ad62563d509baa94790f43eef186d7f3534be6"}],"oslo_middleware/tests/test_opts.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"40cd17ccb1fa0073c737b17c21b817d9c6021b14","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    def test_ssl(self):"},{"line_number":33,"context_line":"        opts.list_opts_ssl()"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def test_entry_points(self):"},{"line_number":36,"context_line":"        expected_factory_names \u003d ["},{"line_number":37,"context_line":"            \u0027ssl\u0027,"},{"line_number":38,"context_line":"            \u0027debug\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a2ca52d_b0694efb","line":35,"updated":"2015-10-16 18:49:16.000000000","message":"This doesn\u0027t have anything to do with option discovery, so this test doesn\u0027t belong in this class.","commit_id":"5998b5613653aba8e6ded3a61f06a493f514d18a"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"eea35d35ea907f1e425322e5fca8ad49da876dc4","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    def test_ssl(self):"},{"line_number":33,"context_line":"        opts.list_opts_ssl()"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def test_entry_points(self):"},{"line_number":36,"context_line":"        expected_factory_names \u003d ["},{"line_number":37,"context_line":"            \u0027ssl\u0027,"},{"line_number":38,"context_line":"            \u0027debug\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a2ca52d_d34df4c4","line":35,"in_reply_to":"5a2ca52d_b0694efb","updated":"2015-10-16 19:20:30.000000000","message":"Done","commit_id":"5998b5613653aba8e6ded3a61f06a493f514d18a"}],"setup.cfg":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"3a90e53e44fca31f58f2a06f58621291ef754669","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    cors \u003d oslo_middleware:CORS.factory"},{"line_number":44,"context_line":"    debug \u003d oslo_middleware:Debug.factory"},{"line_number":45,"context_line":"    healthcheck \u003d oslo_middleware:Healthcheck.factory"},{"line_number":46,"context_line":"    http_proxy_to_wsgi \u003d oslo_middleware.http_proxy_to_wsgi:HTTPProxyToWSGIMiddleware.factory"},{"line_number":47,"context_line":"    request_id \u003d oslo_middleware:RequestId.factory"},{"line_number":48,"context_line":"    sizelimit \u003d oslo_middleware:RequestBodySizeLimiter.factory"},{"line_number":49,"context_line":"    ssl \u003d oslo_middleware:SSLMiddleware.factory"}],"source_content_type":"text/x-ttcn-cfg","patch_set":17,"id":"da85f559_5dba1e0c","line":46,"updated":"2015-11-12 22:51:48.000000000","message":"can you change this to:\n\noslo_middleware:HTTPProxyToWSGI","commit_id":"0da6b7825bba225e5c34a400d3fb8efd57eee758"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"8213be7f954d3adb4ff16de5acc34f9d56cb540f","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    cors \u003d oslo_middleware:CORS.factory"},{"line_number":44,"context_line":"    debug \u003d oslo_middleware:Debug.factory"},{"line_number":45,"context_line":"    healthcheck \u003d oslo_middleware:Healthcheck.factory"},{"line_number":46,"context_line":"    http_proxy_to_wsgi \u003d oslo_middleware.http_proxy_to_wsgi:HTTPProxyToWSGIMiddleware.factory"},{"line_number":47,"context_line":"    request_id \u003d oslo_middleware:RequestId.factory"},{"line_number":48,"context_line":"    sizelimit \u003d oslo_middleware:RequestBodySizeLimiter.factory"},{"line_number":49,"context_line":"    ssl \u003d oslo_middleware:SSLMiddleware.factory"}],"source_content_type":"text/x-ttcn-cfg","patch_set":17,"id":"da85f559_ec9f824e","line":46,"in_reply_to":"da85f559_5dba1e0c","updated":"2015-11-13 14:33:17.000000000","message":"Thanks for keeping me updated gordon, i did a rebase against master and made your change and it works perfectly. thanks","commit_id":"0da6b7825bba225e5c34a400d3fb8efd57eee758"}]}
