)]}'
{"neutron/db/db_base_plugin_v2.py":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"e52440a7fc083b158d6218aa1777969da7b26a27","unresolved":false,"context_lines":[{"line_number":210,"context_line":"            return"},{"line_number":211,"context_line":"        ports \u003d self._model_query("},{"line_number":212,"context_line":"            context, models_v2.Port).filter(models_v2.Port.network_id \u003d\u003d id)"},{"line_number":213,"context_line":"        ports \u003d ports.filter(not_(models_v2.Port.device_owner.in_("},{"line_number":214,"context_line":"            constants.DEVICE_OWNER_NO_TENANT_ID)))"},{"line_number":215,"context_line":"        subnets \u003d self._model_query("},{"line_number":216,"context_line":"            context, models_v2.Subnet).filter("}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_1353686c","line":213,"updated":"2016-01-06 13:01:30.000000000","message":"I think it might make more sense to just filter out any ports that start with \u0027network:\u0027. Regular tenants are not allowed to create those types of ports so that will be safe.","commit_id":"da0597eeb70e65987d33dbb3260e3a925978d65e"},{"author":{"_account_id":13667,"name":"ZongKai LI","email":"onionpiece@163.com","username":"lzklibj"},"change_message_id":"ff059627f9e5f5167813e1ffc7e9dbc25148b6b1","unresolved":false,"context_lines":[{"line_number":210,"context_line":"            return"},{"line_number":211,"context_line":"        ports \u003d self._model_query("},{"line_number":212,"context_line":"            context, models_v2.Port).filter(models_v2.Port.network_id \u003d\u003d id)"},{"line_number":213,"context_line":"        ports \u003d ports.filter(not_(models_v2.Port.device_owner.in_("},{"line_number":214,"context_line":"            constants.DEVICE_OWNER_NO_TENANT_ID)))"},{"line_number":215,"context_line":"        subnets \u003d self._model_query("},{"line_number":216,"context_line":"            context, models_v2.Subnet).filter("}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_1d6b4a86","line":213,"in_reply_to":"fa69d971_1353686c","updated":"2016-01-07 09:16:15.000000000","message":"Done","commit_id":"da0597eeb70e65987d33dbb3260e3a925978d65e"}],"neutron/tests/unit/extensions/test_external_net.py":[{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"c0ba6ae003385013be14f86fe8839c3405f99b40","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                                          data,"},{"line_number":125,"context_line":"                                          ext_net[\u0027network\u0027][\u0027id\u0027])"},{"line_number":126,"context_line":"            res \u003d req.get_response(self.api)"},{"line_number":127,"context_line":"            self.assertEqual(res.status_int, exc.HTTPOk.code)"},{"line_number":128,"context_line":"            ctx \u003d context.Context(None, None, is_admin\u003dTrue)"},{"line_number":129,"context_line":"            plugin \u003d manager.NeutronManager.get_plugin()"},{"line_number":130,"context_line":"            result \u003d plugin.get_networks(ctx)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_13af8b7e","line":127,"range":{"start_line":127,"start_character":29,"end_line":127,"end_character":60},"updated":"2016-01-18 04:51:00.000000000","message":"nit: it\u0027s better to use the pattern \"self.assertEqual(expected, observed)\" if you will respin the patch.","commit_id":"fc770ff7bf6941ed6727ea8fa99a43c47d7040c0"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"296804877d3c5a2da890091a8b6d8e592874a6cc","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                                          data,"},{"line_number":125,"context_line":"                                          ext_net[\u0027network\u0027][\u0027id\u0027])"},{"line_number":126,"context_line":"            res \u003d req.get_response(self.api)"},{"line_number":127,"context_line":"            self.assertEqual(res.status_int, exc.HTTPOk.code)"},{"line_number":128,"context_line":"            ctx \u003d context.Context(None, None, is_admin\u003dTrue)"},{"line_number":129,"context_line":"            plugin \u003d manager.NeutronManager.get_plugin()"},{"line_number":130,"context_line":"            result \u003d plugin.get_networks(ctx)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba63e191_65261ad0","line":127,"range":{"start_line":127,"start_character":29,"end_line":127,"end_character":60},"in_reply_to":"da6ed579_13af8b7e","updated":"2016-01-19 21:30:50.000000000","message":"I\u0027m fixing this to keep this change going forward, and since there was a recent effort to fix all these (expected, observed) in the tree.","commit_id":"fc770ff7bf6941ed6727ea8fa99a43c47d7040c0"}]}
