)]}'
{"neutron/manager.py":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"8ee00a3debaeb104bac3139f908dc3d4276a4ae3","unresolved":false,"context_lines":[{"line_number":261,"context_line":"        for service_plugin in service_plugins:"},{"line_number":262,"context_line":"            plugin_path_prefix \u003d getattr(service_plugin, \u0027path_prefix\u0027, None)"},{"line_number":263,"context_line":"            if plugin_path_prefix and plugin_path_prefix \u003d\u003d path_prefix:"},{"line_number":264,"context_line":"                return service_plugin"}],"source_content_type":"text/x-python","patch_set":6,"id":"da6ed579_cb77ea00","line":264,"updated":"2016-01-12 20:42:59.000000000","message":"None\n\nthat\u0027s the last assert in the unit test","commit_id":"a6ab3badd15d65b3c2f9417cb4f483460397338b"},{"author":{"_account_id":10980,"name":"Doug Wiegley","email":"dougwig@parkside.io","username":"dougw"},"change_message_id":"0aea05163a6a17893103b46de1aac5e6ba137290","unresolved":false,"context_lines":[{"line_number":261,"context_line":"        for service_plugin in service_plugins:"},{"line_number":262,"context_line":"            plugin_path_prefix \u003d getattr(service_plugin, \u0027path_prefix\u0027, None)"},{"line_number":263,"context_line":"            if plugin_path_prefix and plugin_path_prefix \u003d\u003d path_prefix:"},{"line_number":264,"context_line":"                return service_plugin"}],"source_content_type":"text/x-python","patch_set":6,"id":"da6ed579_4babfa89","line":264,"range":{"start_line":264,"start_character":0,"end_line":264,"end_character":16},"updated":"2016-01-12 20:33:54.000000000","message":"and if you never match in the loop, what returns?","commit_id":"a6ab3badd15d65b3c2f9417cb4f483460397338b"}],"neutron/pecan_wsgi/controllers/root.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"a648142a5e7258470a0501e855bc5432a95cf534","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        # we are assuming that collection is the service plugin and"},{"line_number":110,"context_line":"        # needs to be remapped."},{"line_number":111,"context_line":"        # Example: https://neutron.endpoint/v2.0/lbaas/loadbalancers"},{"line_number":112,"context_line":"        if (len(remainder) and"},{"line_number":113,"context_line":"                plugin_constants.EXT_TO_SERVICE_MAPPING.get(collection)):"},{"line_number":114,"context_line":"            collection \u003d remainder[0]"},{"line_number":115,"context_line":"            remainder \u003d remainder[1:]"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_434df83c","line":112,"range":{"start_line":112,"start_character":16,"end_line":112,"end_character":25},"updated":"2016-01-04 12:40:33.000000000","message":"nit: why the need to use len?\n\nIf remainder and \u003cthe_other_stuff\u003e:\n\nshould do the trick as well","commit_id":"858299dfe8a634dc7503cf43c444695b3857e5a8"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"ea23547ba2b90fae403fa6d5060c48c9ce690a94","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        # we are assuming that collection is the service plugin and"},{"line_number":110,"context_line":"        # needs to be remapped."},{"line_number":111,"context_line":"        # Example: https://neutron.endpoint/v2.0/lbaas/loadbalancers"},{"line_number":112,"context_line":"        if (len(remainder) and"},{"line_number":113,"context_line":"                plugin_constants.EXT_TO_SERVICE_MAPPING.get(collection)):"},{"line_number":114,"context_line":"            collection \u003d remainder[0]"},{"line_number":115,"context_line":"            remainder \u003d remainder[1:]"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_0274d065","line":112,"range":{"start_line":112,"start_character":16,"end_line":112,"end_character":25},"in_reply_to":"fa69d971_434df83c","updated":"2016-01-04 16:52:29.000000000","message":"oh good point, brain fart on my end.  i\u0027ll fix this because it\u0027ll bother me.","commit_id":"858299dfe8a634dc7503cf43c444695b3857e5a8"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"c3fd64125189a1ea797aa7fd57b2ea74d596f285","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        # Example: https://neutron.endpoint/v2.0/lbaas/loadbalancers"},{"line_number":112,"context_line":"        if (len(remainder) and"},{"line_number":113,"context_line":"                plugin_constants.EXT_TO_SERVICE_MAPPING.get(collection)):"},{"line_number":114,"context_line":"            collection \u003d remainder[0]"},{"line_number":115,"context_line":"            remainder \u003d remainder[1:]"},{"line_number":116,"context_line":"        controller \u003d manager.NeutronManager.get_controller_for_resource("},{"line_number":117,"context_line":"            collection)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_70694825","line":114,"updated":"2016-01-07 10:59:33.000000000","message":"collection \u003d remainder.pop(0)","commit_id":"858299dfe8a634dc7503cf43c444695b3857e5a8"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"b5172fb1ebf33008d27b7ed50f23a386d791d181","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        # Example: https://neutron.endpoint/v2.0/lbaas/loadbalancers"},{"line_number":112,"context_line":"        if (len(remainder) and"},{"line_number":113,"context_line":"                plugin_constants.EXT_TO_SERVICE_MAPPING.get(collection)):"},{"line_number":114,"context_line":"            collection \u003d remainder[0]"},{"line_number":115,"context_line":"            remainder \u003d remainder[1:]"},{"line_number":116,"context_line":"        controller \u003d manager.NeutronManager.get_controller_for_resource("},{"line_number":117,"context_line":"            collection)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_c4229901","line":114,"in_reply_to":"fa69d971_70694825","updated":"2016-01-08 02:55:48.000000000","message":"remainder is a tuple, so I can\u0027t pop.","commit_id":"858299dfe8a634dc7503cf43c444695b3857e5a8"},{"author":{"_account_id":10980,"name":"Doug Wiegley","email":"dougwig@parkside.io","username":"dougw"},"change_message_id":"1918b3dce455c0efda15404f45bc8558de31cc1e","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        # we are assuming that collection is the service plugin and"},{"line_number":110,"context_line":"        # needs to be remapped."},{"line_number":111,"context_line":"        # Example: https://neutron.endpoint/v2.0/lbaas/loadbalancers"},{"line_number":112,"context_line":"        if (remainder and"},{"line_number":113,"context_line":"                plugin_constants.EXT_TO_SERVICE_MAPPING.get(collection)):"},{"line_number":114,"context_line":"            collection \u003d remainder[0]"},{"line_number":115,"context_line":"            remainder \u003d remainder[1:]"},{"line_number":116,"context_line":"        controller \u003d manager.NeutronManager.get_controller_for_resource("}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_9f2614b9","line":113,"range":{"start_line":112,"start_character":25,"end_line":113,"end_character":33},"updated":"2016-01-12 18:51:45.000000000","message":"This static mapping doesn\u0027t fit well with decomposed repos. Can we do something dynamic inside the extension?","commit_id":"871e75ada1388e2c00f1e439c9ec4b145eb58e4c"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"5cd09397d7c11cf4cae07d7b97c82daf5de67df5","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        # needs to be remapped."},{"line_number":111,"context_line":"        # Example: https://neutron.endpoint/v2.0/lbaas/loadbalancers"},{"line_number":112,"context_line":"        if (remainder and"},{"line_number":113,"context_line":"                plugin_constants.EXT_TO_SERVICE_MAPPING.get(collection)):"},{"line_number":114,"context_line":"            collection \u003d remainder[0]"},{"line_number":115,"context_line":"            remainder \u003d remainder[1:]"},{"line_number":116,"context_line":"        controller \u003d manager.NeutronManager.get_controller_for_resource("}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_ff4630be","line":113,"updated":"2016-01-12 19:05:13.000000000","message":"this is the extension alias, not the URL path component","commit_id":"871e75ada1388e2c00f1e439c9ec4b145eb58e4c"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"5773bcc5bbd4ac8d99dafb84e8c3e499e2e654d3","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        # needs to be remapped."},{"line_number":111,"context_line":"        # Example: https://neutron.endpoint/v2.0/lbaas/loadbalancers"},{"line_number":112,"context_line":"        if (remainder and"},{"line_number":113,"context_line":"                plugin_constants.EXT_TO_SERVICE_MAPPING.get(collection)):"},{"line_number":114,"context_line":"            collection \u003d remainder[0]"},{"line_number":115,"context_line":"            remainder \u003d remainder[1:]"},{"line_number":116,"context_line":"        controller \u003d manager.NeutronManager.get_controller_for_resource("}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_1f3b04d3","line":113,"updated":"2016-01-12 18:51:43.000000000","message":"whatever doug is about to say here is wrong","commit_id":"871e75ada1388e2c00f1e439c9ec4b145eb58e4c"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"b63a7d2ae6801c38f26a898b79ee87fcbc7bfb64","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        # needs to be remapped."},{"line_number":111,"context_line":"        # Example: https://neutron.endpoint/v2.0/lbaas/loadbalancers"},{"line_number":112,"context_line":"        if (remainder and"},{"line_number":113,"context_line":"                plugin_constants.EXT_TO_SERVICE_MAPPING.get(collection)):"},{"line_number":114,"context_line":"            collection \u003d remainder[0]"},{"line_number":115,"context_line":"            remainder \u003d remainder[1:]"},{"line_number":116,"context_line":"        controller \u003d manager.NeutronManager.get_controller_for_resource("}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_f5e2d19e","line":113,"in_reply_to":"da6ed579_ff4630be","updated":"2016-01-12 19:54:16.000000000","message":"Done","commit_id":"871e75ada1388e2c00f1e439c9ec4b145eb58e4c"}],"neutron/tests/functional/pecan_wsgi/test_functional.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"a648142a5e7258470a0501e855bc5432a95cf534","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        # NOTE(blogan): not a big fan of this but currently it is the easiest"},{"line_number":111,"context_line":"        # way to test this out.  Alternatively a service plugin could be"},{"line_number":112,"context_line":"        # loaded but that is a large amount of set up code that I don\u0027t"},{"line_number":113,"context_line":"        # believe is worth it yet."},{"line_number":114,"context_line":"        class FakeController(object):"},{"line_number":115,"context_line":"            resource \u003d \u0027loadbalancer\u0027"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_03f380d7","line":113,"updated":"2016-01-04 12:40:33.000000000","message":"This is fine from a technical perspective.\n\nFrom a conceptual perspective, this should be regarded more as unit test than a functional one. Building a set of unit tests like this is something that we should ponder in the near future","commit_id":"858299dfe8a634dc7503cf43c444695b3857e5a8"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"c3fd64125189a1ea797aa7fd57b2ea74d596f285","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        # NOTE(blogan): not a big fan of this but currently it is the easiest"},{"line_number":111,"context_line":"        # way to test this out.  Alternatively a service plugin could be"},{"line_number":112,"context_line":"        # loaded but that is a large amount of set up code that I don\u0027t"},{"line_number":113,"context_line":"        # believe is worth it yet."},{"line_number":114,"context_line":"        class FakeController(object):"},{"line_number":115,"context_line":"            resource \u003d \u0027loadbalancer\u0027"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_506c4436","line":113,"updated":"2016-01-07 10:59:33.000000000","message":"instead of the mock, why not just call manager.NeutronManager.set_controller_for_resource and pass it your fake controller?","commit_id":"858299dfe8a634dc7503cf43c444695b3857e5a8"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"ea23547ba2b90fae403fa6d5060c48c9ce690a94","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        # NOTE(blogan): not a big fan of this but currently it is the easiest"},{"line_number":111,"context_line":"        # way to test this out.  Alternatively a service plugin could be"},{"line_number":112,"context_line":"        # loaded but that is a large amount of set up code that I don\u0027t"},{"line_number":113,"context_line":"        # believe is worth it yet."},{"line_number":114,"context_line":"        class FakeController(object):"},{"line_number":115,"context_line":"            resource \u003d \u0027loadbalancer\u0027"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_22a0f48f","line":113,"in_reply_to":"fa69d971_03f380d7","updated":"2016-01-04 16:52:29.000000000","message":"i would say its kind of in between a unit and functional test.  Then again unit and functional test definitions are subjective.","commit_id":"858299dfe8a634dc7503cf43c444695b3857e5a8"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"b5172fb1ebf33008d27b7ed50f23a386d791d181","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        # NOTE(blogan): not a big fan of this but currently it is the easiest"},{"line_number":111,"context_line":"        # way to test this out.  Alternatively a service plugin could be"},{"line_number":112,"context_line":"        # loaded but that is a large amount of set up code that I don\u0027t"},{"line_number":113,"context_line":"        # believe is worth it yet."},{"line_number":114,"context_line":"        class FakeController(object):"},{"line_number":115,"context_line":"            resource \u003d \u0027loadbalancer\u0027"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_644dedc3","line":113,"in_reply_to":"fa69d971_506c4436","updated":"2016-01-08 02:55:48.000000000","message":"because tunnel vision? good call","commit_id":"858299dfe8a634dc7503cf43c444695b3857e5a8"}]}
