)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"e52e556c484d358c88d14b56a8eb3135ab77cc69","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Unify the code path to create segment"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now there are 2 code path to create segment, they are [1], [2]."},{"line_number":10,"context_line":"[1] will be called when the segment is reserved, while [2] will"},{"line_number":11,"context_line":"reserve segment when execution."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1ac06dbe_180b6c2b","line":9,"range":{"start_line":9,"start_character":45,"end_line":9,"end_character":63},"updated":"2016-08-23 17:25:52.000000000","message":"Nit: I would eliminate this. I would just finish the previous sentence with \u0027:\u0027 instedad of \u0027,\u0027","commit_id":"fd38608ea91582b1de86bd556a6ae3b30c84e6eb"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"e52e556c484d358c88d14b56a8eb3135ab77cc69","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Unify the code path to create segment"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now there are 2 code path to create segment, they are [1], [2]."},{"line_number":10,"context_line":"[1] will be called when the segment is reserved, while [2] will"},{"line_number":11,"context_line":"reserve segment when execution."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1ac06dbe_9850fc33","line":9,"range":{"start_line":9,"start_character":21,"end_line":9,"end_character":25},"updated":"2016-08-23 17:25:52.000000000","message":"Nit: paths","commit_id":"fd38608ea91582b1de86bd556a6ae3b30c84e6eb"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"e52e556c484d358c88d14b56a8eb3135ab77cc69","unresolved":false,"context_lines":[{"line_number":10,"context_line":"[1] will be called when the segment is reserved, while [2] will"},{"line_number":11,"context_line":"reserve segment when execution."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This patch will unify the code path to one. This can avoid the duplicated"},{"line_number":14,"context_line":"segment reserve issue."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"[1] neutron.db.segments_db.add_network_segment"},{"line_number":17,"context_line":"[2] neutron.services.segments.plugin.Plugin.create_segment"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1ac06dbe_b8669827","line":14,"range":{"start_line":13,"start_character":44,"end_line":14,"end_character":21},"updated":"2016-08-23 17:25:52.000000000","message":"Is there a bug for this issue?","commit_id":"fd38608ea91582b1de86bd556a6ae3b30c84e6eb"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"cd83c7eee278ff21287edbccf285142c3c1cb0c6","unresolved":false,"context_lines":[{"line_number":10,"context_line":"[1] will be called when the segment is reserved, while [2] will"},{"line_number":11,"context_line":"reserve segment when execution."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This patch will unify the code path to one. This can avoid the duplicated"},{"line_number":14,"context_line":"segment reserve issue."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"[1] neutron.db.segments_db.add_network_segment"},{"line_number":17,"context_line":"[2] neutron.services.segments.plugin.Plugin.create_segment"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1ac06dbe_2bb238e5","line":14,"range":{"start_line":13,"start_character":44,"end_line":14,"end_character":21},"in_reply_to":"1ac06dbe_b8669827","updated":"2016-08-24 03:51:02.000000000","message":"No, this just remove a TODO in the dependent patch. I made this patch to demonstrate the problem. But it is not in a good shape yet.","commit_id":"fd38608ea91582b1de86bd556a6ae3b30c84e6eb"}],"neutron/plugins/ml2/managers.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"e52e556c484d358c88d14b56a8eb3135ab77cc69","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    def _add_network_segment(self, context, network_id, segment):"},{"line_number":188,"context_line":"        segment_plugin_cls \u003d manager.NeutronManager.load_class_for_provider("},{"line_number":189,"context_line":"            \u0027neutron.service_plugins\u0027, \u0027segments\u0027)"},{"line_number":190,"context_line":"        segment_plugin \u003d segment_plugin_cls()"},{"line_number":191,"context_line":"        segment[\u0027network_id\u0027] \u003d network_id"},{"line_number":192,"context_line":"        segment_plugin.handle_create_segment(context, segment, False)"},{"line_number":193,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_98c2bce7","line":190,"range":{"start_line":190,"start_character":8,"end_line":190,"end_character":45},"updated":"2016-08-23 17:25:52.000000000","message":"Two questions here:\n\n1) Why load the segments plugin all the time? Why not load it once and save the reference to it? \n\n2) Here we are making the decision to load the segments plugin all the time. Has that been agreed upon?","commit_id":"fd38608ea91582b1de86bd556a6ae3b30c84e6eb"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"fd2422f6dfdeeadcc16f51a583f347ff844a6c28","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    def _add_network_segment(self, context, network_id, segment):"},{"line_number":188,"context_line":"        segment_plugin_cls \u003d manager.NeutronManager.load_class_for_provider("},{"line_number":189,"context_line":"            \u0027neutron.service_plugins\u0027, \u0027segments\u0027)"},{"line_number":190,"context_line":"        segment_plugin \u003d segment_plugin_cls()"},{"line_number":191,"context_line":"        segment[\u0027network_id\u0027] \u003d network_id"},{"line_number":192,"context_line":"        segment_plugin.handle_create_segment(context, segment, False)"},{"line_number":193,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_4b8174fa","line":190,"range":{"start_line":190,"start_character":8,"end_line":190,"end_character":45},"in_reply_to":"1ac06dbe_98c2bce7","updated":"2016-08-24 03:48:38.000000000","message":"It could be saved in reference. To load it all the time, it is to use the code path of segment_plugin here.","commit_id":"fd38608ea91582b1de86bd556a6ae3b30c84e6eb"},{"author":{"_account_id":13933,"name":"Niko Hermanns","email":"nikolas.hermanns@ericsson.com","username":"enikher"},"change_message_id":"7046c9f7af41d72c2759714ab98a1d0287f2c27b","unresolved":false,"context_lines":[{"line_number":254,"context_line":"        driver \u003d self.drivers.get(network_type)"},{"line_number":255,"context_line":"        return driver.obj.reserve_provider_segment(session, segment)"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"    def _allocate_segment(self, session, network_type):"},{"line_number":258,"context_line":"        driver \u003d self.drivers.get(network_type)"},{"line_number":259,"context_line":"        return driver.obj.allocate_tenant_segment(session)"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"    def _allocate_tenant_net_segment(self, context, network_id):"},{"line_number":262,"context_line":"        for network_type in self.tenant_network_types:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_77d1aa22","line":259,"range":{"start_line":257,"start_character":3,"end_line":259,"end_character":58},"updated":"2016-08-24 08:06:00.000000000","message":"this function is not used anymore or?","commit_id":"fd38608ea91582b1de86bd556a6ae3b30c84e6eb"},{"author":{"_account_id":13933,"name":"Niko Hermanns","email":"nikolas.hermanns@ericsson.com","username":"enikher"},"change_message_id":"7046c9f7af41d72c2759714ab98a1d0287f2c27b","unresolved":false,"context_lines":[{"line_number":270,"context_line":"                pass"},{"line_number":271,"context_line":"        raise exc.NoNetworkAvailable()"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    def _allocate_ext_net_segment(self, session):"},{"line_number":274,"context_line":"        network_type \u003d cfg.CONF.ml2.external_network_type"},{"line_number":275,"context_line":"        segment \u003d self._allocate_segment(session, network_type)"},{"line_number":276,"context_line":"        if segment:"},{"line_number":277,"context_line":"            return segment"},{"line_number":278,"context_line":"        raise exc.NoNetworkAvailable()"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    def release_network_segments(self, session, network_id):"},{"line_number":281,"context_line":"        segments \u003d segments_db.get_network_segments(session, network_id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_97eb86db","line":278,"range":{"start_line":273,"start_character":3,"end_line":278,"end_character":38},"updated":"2016-08-24 08:06:00.000000000","message":"this function is not used anymore or?","commit_id":"fd38608ea91582b1de86bd556a6ae3b30c84e6eb"}],"neutron/plugins/ml2/plugin.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"e52e556c484d358c88d14b56a8eb3135ab77cc69","unresolved":false,"context_lines":[{"line_number":1815,"context_line":"        session \u003d context.session"},{"line_number":1816,"context_line":"        network_id \u003d segment.get(\u0027network_id\u0027)"},{"line_number":1817,"context_line":""},{"line_number":1818,"context_line":"        if not from_external:"},{"line_number":1819,"context_line":"            # It is a event that originated from external request. Notify"},{"line_number":1820,"context_line":"            # mechanism driver about network segments change."},{"line_number":1821,"context_line":"            try:"},{"line_number":1822,"context_line":"                self._notify_mechanism_driver_for_segment_change("}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_18252c08","line":1819,"range":{"start_line":1818,"start_character":8,"end_line":1819,"end_character":65},"updated":"2016-08-23 17:25:52.000000000","message":"Code and comment don\u0027t match","commit_id":"fd38608ea91582b1de86bd556a6ae3b30c84e6eb"}]}
