)]}'
{"neutron/agent/l2/l2_agent_extensions_manager.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7f7225c7005865c4780891ef8f3a9d0cd7f40903","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                extension.obj.handle_port(context, data)"},{"line_number":43,"context_line":"            else:"},{"line_number":44,"context_line":"                LOG.error("},{"line_number":45,"context_line":"                    _LE(\"Agent Extension \u0027%(name)s\u0027 does not` \""},{"line_number":46,"context_line":"                        \"implement method handle_port\"),"},{"line_number":47,"context_line":"                    {\u0027name\u0027: extension.name}"},{"line_number":48,"context_line":"                )"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_81f20d99","line":45,"range":{"start_line":45,"start_character":60,"end_line":45,"end_character":61},"updated":"2016-08-14 15:49:40.000000000","message":"?","commit_id":"3d4b4f15453a3d19abe359cae2a419cc37f6a7a9"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"470dba68a39d974c87f026fb061f80c4a47e5952","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                extension.obj.handle_port(context, data)"},{"line_number":43,"context_line":"            else:"},{"line_number":44,"context_line":"                LOG.error("},{"line_number":45,"context_line":"                    _LE(\"Agent Extension \u0027%(name)s\u0027 does not` \""},{"line_number":46,"context_line":"                        \"implement method handle_port\"),"},{"line_number":47,"context_line":"                    {\u0027name\u0027: extension.name}"},{"line_number":48,"context_line":"                )"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_81fccd3f","line":45,"range":{"start_line":45,"start_character":60,"end_line":45,"end_character":61},"in_reply_to":"3ac371cc_81f20d99","updated":"2016-08-14 16:12:49.000000000","message":"Not sure where that came from.  Fixed.","commit_id":"3d4b4f15453a3d19abe359cae2a419cc37f6a7a9"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7f7225c7005865c4780891ef8f3a9d0cd7f40903","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                extension.obj.delete_port(context, data)"},{"line_number":55,"context_line":"            else:"},{"line_number":56,"context_line":"                LOG.error("},{"line_number":57,"context_line":"                    _LE(\"Agent Extension \u0027%(name)s\u0027 does not` \""},{"line_number":58,"context_line":"                        \"implement method delete_port\"),"},{"line_number":59,"context_line":"                    {\u0027name\u0027: extension.name}"},{"line_number":60,"context_line":"                )"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_c12a45e7","line":57,"range":{"start_line":57,"start_character":60,"end_line":57,"end_character":61},"updated":"2016-08-14 15:49:40.000000000","message":"ditto","commit_id":"3d4b4f15453a3d19abe359cae2a419cc37f6a7a9"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"470dba68a39d974c87f026fb061f80c4a47e5952","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                extension.obj.delete_port(context, data)"},{"line_number":55,"context_line":"            else:"},{"line_number":56,"context_line":"                LOG.error("},{"line_number":57,"context_line":"                    _LE(\"Agent Extension \u0027%(name)s\u0027 does not` \""},{"line_number":58,"context_line":"                        \"implement method delete_port\"),"},{"line_number":59,"context_line":"                    {\u0027name\u0027: extension.name}"},{"line_number":60,"context_line":"                )"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_61f9d14d","line":57,"range":{"start_line":57,"start_character":60,"end_line":57,"end_character":61},"in_reply_to":"3ac371cc_c12a45e7","updated":"2016-08-14 16:12:49.000000000","message":"ditto","commit_id":"3d4b4f15453a3d19abe359cae2a419cc37f6a7a9"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"1f8ce663a0b85e1a32b38a793b3d27259ec98e8b","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    def handle_port(self, context, data):"},{"line_number":39,"context_line":"        \"\"\"Notify all agent extensions to handle port.\"\"\""},{"line_number":40,"context_line":"        for extension in self:"},{"line_number":41,"context_line":"            if hasattr(self, \u0027handle_port\u0027):"},{"line_number":42,"context_line":"                extension.obj.handle_port(context, data)"},{"line_number":43,"context_line":"            else:"},{"line_number":44,"context_line":"                LOG.error("}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_cf633c19","line":41,"range":{"start_line":41,"start_character":23,"end_line":41,"end_character":27},"updated":"2016-08-16 12:25:43.000000000","message":"extension.obj?","commit_id":"c2115f0217ab02ea87929a57c1ccdf4d4c7a7ae4"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"7f4eaf927e7e887ad9da99bd52a06ea38c89600e","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    def handle_port(self, context, data):"},{"line_number":39,"context_line":"        \"\"\"Notify all agent extensions to handle port.\"\"\""},{"line_number":40,"context_line":"        for extension in self:"},{"line_number":41,"context_line":"            if hasattr(self, \u0027handle_port\u0027):"},{"line_number":42,"context_line":"                extension.obj.handle_port(context, data)"},{"line_number":43,"context_line":"            else:"},{"line_number":44,"context_line":"                LOG.error("}],"source_content_type":"text/x-python","patch_set":3,"id":"1ac06dbe_2d0a15d3","line":41,"range":{"start_line":41,"start_character":23,"end_line":41,"end_character":27},"in_reply_to":"3ac371cc_cf633c19","updated":"2016-08-19 19:14:01.000000000","message":"Done","commit_id":"c2115f0217ab02ea87929a57c1ccdf4d4c7a7ae4"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"1f8ce663a0b85e1a32b38a793b3d27259ec98e8b","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    def delete_port(self, context, data):"},{"line_number":51,"context_line":"        \"\"\"Notify all agent extensions to delete port.\"\"\""},{"line_number":52,"context_line":"        for extension in self:"},{"line_number":53,"context_line":"            if hasattr(self, \u0027delete_port\u0027):"},{"line_number":54,"context_line":"                extension.obj.delete_port(context, data)"},{"line_number":55,"context_line":"            else:"},{"line_number":56,"context_line":"                LOG.error("}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_2f73f0e8","line":53,"range":{"start_line":53,"start_character":23,"end_line":53,"end_character":27},"updated":"2016-08-16 12:25:43.000000000","message":"ditto","commit_id":"c2115f0217ab02ea87929a57c1ccdf4d4c7a7ae4"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"7f4eaf927e7e887ad9da99bd52a06ea38c89600e","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    def delete_port(self, context, data):"},{"line_number":51,"context_line":"        \"\"\"Notify all agent extensions to delete port.\"\"\""},{"line_number":52,"context_line":"        for extension in self:"},{"line_number":53,"context_line":"            if hasattr(self, \u0027delete_port\u0027):"},{"line_number":54,"context_line":"                extension.obj.delete_port(context, data)"},{"line_number":55,"context_line":"            else:"},{"line_number":56,"context_line":"                LOG.error("}],"source_content_type":"text/x-python","patch_set":3,"id":"1ac06dbe_6d140df5","line":53,"range":{"start_line":53,"start_character":23,"end_line":53,"end_character":27},"in_reply_to":"3ac371cc_2f73f0e8","updated":"2016-08-19 19:14:01.000000000","message":"Done","commit_id":"c2115f0217ab02ea87929a57c1ccdf4d4c7a7ae4"}]}
