)]}'
{"dragonflow/neutron/services/bgp/bgp_plugin.py":[{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"3df81ae1e95558da27549b07b3736b03366ec679","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from dragonflow.db.models import core"},{"line_number":27,"context_line":"from dragonflow.db.models import l2"},{"line_number":28,"context_line":"from dragonflow.db.neutron import lockedobjects_db as lock_db"},{"line_number":29,"context_line":"from dragonflow.neutron.db.models import neutron_l2"},{"line_number":30,"context_line":"from dragonflow.neutron.services import mixins"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa0c359_dd91b5f3","line":29,"range":{"start_line":29,"start_character":41,"end_line":29,"end_character":51},"updated":"2018-02-05 15:38:23.000000000","message":"I do not see such model. there is l2 but not neutron_l2.\nMaybe you meant import l2 as neutron_l2 ???","commit_id":"586a1967ea6714c1eb85e41cac5eadefb1ca31c1"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"cd3f26436a774822a6f95f8c97f57f1dc77d1a63","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from dragonflow.db.models import core"},{"line_number":27,"context_line":"from dragonflow.db.models import l2"},{"line_number":28,"context_line":"from dragonflow.db.neutron import lockedobjects_db as lock_db"},{"line_number":29,"context_line":"from dragonflow.neutron.db.models import neutron_l2"},{"line_number":30,"context_line":"from dragonflow.neutron.services import mixins"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa0c359_6b0f782e","line":29,"range":{"start_line":29,"start_character":41,"end_line":29,"end_character":51},"in_reply_to":"3fa0c359_dd91b5f3","updated":"2018-02-05 17:52:34.000000000","message":"Yep.\n\nAlso means this service plugin is missing unit tests.","commit_id":"586a1967ea6714c1eb85e41cac5eadefb1ca31c1"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"3df81ae1e95558da27549b07b3736b03366ec679","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        for speaker in bgp_speakers:"},{"line_number":131,"context_line":"            fip_handler(context, speaker.id, speaker.project_id, fip_data)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    def _get_external_ip_of_lport(self, context, port_id):"},{"line_number":134,"context_line":"        port \u003d directory.get_plugin().get_port(context, port_id)"},{"line_number":135,"context_line":"        binding \u003d neutron_l2.build_port_binding(port)"},{"line_number":136,"context_line":"        if not binding:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa0c359_9d2d6d48","line":133,"range":{"start_line":133,"start_character":40,"end_line":133,"end_character":56},"updated":"2018-02-05 15:38:23.000000000","message":"How is this consistent with the arguments passed above?\nAlso, why remove the docstring","commit_id":"586a1967ea6714c1eb85e41cac5eadefb1ca31c1"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"cd3f26436a774822a6f95f8c97f57f1dc77d1a63","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        for speaker in bgp_speakers:"},{"line_number":131,"context_line":"            fip_handler(context, speaker.id, speaker.project_id, fip_data)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    def _get_external_ip_of_lport(self, context, port_id):"},{"line_number":134,"context_line":"        port \u003d directory.get_plugin().get_port(context, port_id)"},{"line_number":135,"context_line":"        binding \u003d neutron_l2.build_port_binding(port)"},{"line_number":136,"context_line":"        if not binding:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa0c359_ab26e0b6","line":133,"range":{"start_line":133,"start_character":40,"end_line":133,"end_character":56},"in_reply_to":"3fa0c359_9d2d6d48","updated":"2018-02-05 17:52:34.000000000","message":"Will fix.","commit_id":"586a1967ea6714c1eb85e41cac5eadefb1ca31c1"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"3df81ae1e95558da27549b07b3736b03366ec679","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            fip_handler(context, speaker.id, speaker.project_id, fip_data)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    def _get_external_ip_of_lport(self, context, port_id):"},{"line_number":134,"context_line":"        port \u003d directory.get_plugin().get_port(context, port_id)"},{"line_number":135,"context_line":"        binding \u003d neutron_l2.build_port_binding(port)"},{"line_number":136,"context_line":"        if not binding:"},{"line_number":137,"context_line":"            LOG.warning("}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa0c359_fda83178","line":134,"range":{"start_line":134,"start_character":15,"end_line":134,"end_character":37},"updated":"2018-02-05 15:38:23.000000000","message":"A comment describing that the directory gets the core plugin as default would help understand this code and will not require to go to the neutron directory code","commit_id":"586a1967ea6714c1eb85e41cac5eadefb1ca31c1"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"3df81ae1e95558da27549b07b3736b03366ec679","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            fip_handler(context, speaker.id, speaker.project_id, fip_data)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    def _get_external_ip_of_lport(self, context, port_id):"},{"line_number":134,"context_line":"        port \u003d directory.get_plugin().get_port(context, port_id)"},{"line_number":135,"context_line":"        binding \u003d neutron_l2.build_port_binding(port)"},{"line_number":136,"context_line":"        if not binding:"},{"line_number":137,"context_line":"            LOG.warning("}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa0c359_5d6cc507","line":134,"range":{"start_line":134,"start_character":38,"end_line":134,"end_character":64},"updated":"2018-02-05 15:38:23.000000000","message":"Maybe it is me, but I could not find where this \u0027get_port\u0027 method is defined.","commit_id":"586a1967ea6714c1eb85e41cac5eadefb1ca31c1"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"cd3f26436a774822a6f95f8c97f57f1dc77d1a63","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            fip_handler(context, speaker.id, speaker.project_id, fip_data)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    def _get_external_ip_of_lport(self, context, port_id):"},{"line_number":134,"context_line":"        port \u003d directory.get_plugin().get_port(context, port_id)"},{"line_number":135,"context_line":"        binding \u003d neutron_l2.build_port_binding(port)"},{"line_number":136,"context_line":"        if not binding:"},{"line_number":137,"context_line":"            LOG.warning("}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa0c359_cb9a4cc4","line":134,"range":{"start_line":134,"start_character":15,"end_line":134,"end_character":37},"in_reply_to":"3fa0c359_fda83178","updated":"2018-02-05 17:52:34.000000000","message":"I think this is standard behaviour in Neutron code. I am not opposed, I just think it\u0027s redundant.\n\nOther cores, could we get a vote here?","commit_id":"586a1967ea6714c1eb85e41cac5eadefb1ca31c1"}]}
