)]}'
{"dragonflow/controller/l2_ml2_app.py":[{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"3bea14381e847e60e32768277b57541e1654844c","unresolved":false,"context_lines":[{"line_number":566,"context_line":"            match\u003dmatch)"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"    def _get_initialized_local_network(self, network_id):"},{"line_number":569,"context_line":"        return self.local_networks.setdefaul(network_id, _LocalNetwork())"},{"line_number":570,"context_line":""},{"line_number":571,"context_line":"    def _add_multicast_broadcast_handling_for_local_port(self,"},{"line_number":572,"context_line":"                                                         lport_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5da102_b06d05ce","line":569,"range":{"start_line":569,"start_character":35,"end_line":569,"end_character":44},"updated":"2016-11-03 01:45:32.000000000","message":"setdefault?","commit_id":"561e57345ff9a6ec25a9b314b8b4291fecbc537d"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"b1ff1ce5f952250295d6240018aa9778ac93c41c","unresolved":false,"context_lines":[{"line_number":566,"context_line":"            match\u003dmatch)"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"    def _get_initialized_local_network(self, network_id):"},{"line_number":569,"context_line":"        return self.local_networks.setdefaul(network_id, _LocalNetwork())"},{"line_number":570,"context_line":""},{"line_number":571,"context_line":"    def _add_multicast_broadcast_handling_for_local_port(self,"},{"line_number":572,"context_line":"                                                         lport_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5da102_167ce2ea","line":569,"range":{"start_line":569,"start_character":35,"end_line":569,"end_character":44},"in_reply_to":"ba5da102_30fc953d","updated":"2016-11-03 08:39:43.000000000","message":"I agree, will change","commit_id":"561e57345ff9a6ec25a9b314b8b4291fecbc537d"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"a7bbc8f4616ca446537379909f6cbb4649560b7b","unresolved":false,"context_lines":[{"line_number":566,"context_line":"            match\u003dmatch)"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"    def _get_initialized_local_network(self, network_id):"},{"line_number":569,"context_line":"        return self.local_networks.setdefaul(network_id, _LocalNetwork())"},{"line_number":570,"context_line":""},{"line_number":571,"context_line":"    def _add_multicast_broadcast_handling_for_local_port(self,"},{"line_number":572,"context_line":"                                                         lport_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5da102_30fc953d","line":569,"range":{"start_line":569,"start_character":35,"end_line":569,"end_character":44},"in_reply_to":"ba5da102_b06d05ce","updated":"2016-11-03 02:10:39.000000000","message":"Another thought, If you use defaultdict, then this method may not be needed.\n\nhttps://docs.python.org/2/library/collections.html#collections.defaultdict","commit_id":"561e57345ff9a6ec25a9b314b8b4291fecbc537d"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"14de39cb17e569288108974c575416bda0147046","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from collections import defaultdict"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import netaddr"},{"line_number":19,"context_line":"from neutron_lib import constants as common_const"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5da102_3ec8b854","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":35},"updated":"2016-11-04 01:00:52.000000000","message":"you should just import module(import collections) not the content in the module. And, since the netaddr and six are imported with neutron, you should put this line just before line 17.","commit_id":"35179a9871b99d5f7113a07216e376230ed0498c"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"73c338f3d10a4685e0c98aa2e4992ee507786dea","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from collections import defaultdict"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import netaddr"},{"line_number":19,"context_line":"from neutron_lib import constants as common_const"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5da102_a273bf14","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":35},"in_reply_to":"ba5da102_3ec8b854","updated":"2016-11-04 10:57:43.000000000","message":"I agree about not importing the function directly, will fix.\nAbout the whitespace, I think it should stay, stdlib before third party:\n\nhttp://docs.openstack.org/developer/hacking/#import-order-template","commit_id":"35179a9871b99d5f7113a07216e376230ed0498c"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"7ab716c9eda11373727eb5e2b2e50f6335ab9dc3","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from collections import defaultdict"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import netaddr"},{"line_number":19,"context_line":"from neutron_lib import constants as common_const"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5da102_2d987b6a","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":35},"in_reply_to":"ba5da102_a273bf14","updated":"2016-11-04 14:28:37.000000000","message":"You are correct.","commit_id":"35179a9871b99d5f7113a07216e376230ed0498c"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"0d8ac533472df2ff07b9762bd28bbfba2f49a3ff","unresolved":false,"context_lines":[{"line_number":272,"context_line":"                                                    topic,"},{"line_number":273,"context_line":"                                                    local_network_id):"},{"line_number":274,"context_line":"        # update local ports"},{"line_number":275,"context_line":"        if local_network_id not in self.local_networks:"},{"line_number":276,"context_line":"            return"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"        network \u003d self.local_networks[local_network_id]"},{"line_number":279,"context_line":"        if lport_id not in network.local_ports:"},{"line_number":280,"context_line":"            return"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a629dbe_32cc4f35","line":278,"range":{"start_line":275,"start_character":0,"end_line":278,"end_character":55},"updated":"2016-11-07 16:47:43.000000000","message":"In this case, I\u0027d leave the code unchanged. The original code has one lookup less in the dictionary.","commit_id":"a00617b0cb47592ea379c5d8ddab66ed61cfb61d"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"403c098c766f8efb5fb2ec6e27231daa4d05446b","unresolved":false,"context_lines":[{"line_number":272,"context_line":"                                                    topic,"},{"line_number":273,"context_line":"                                                    local_network_id):"},{"line_number":274,"context_line":"        # update local ports"},{"line_number":275,"context_line":"        if local_network_id not in self.local_networks:"},{"line_number":276,"context_line":"            return"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"        network \u003d self.local_networks[local_network_id]"},{"line_number":279,"context_line":"        if lport_id not in network.local_ports:"},{"line_number":280,"context_line":"            return"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a629dbe_56528e14","line":278,"range":{"start_line":275,"start_character":0,"end_line":278,"end_character":55},"in_reply_to":"9a629dbe_32cc4f35","updated":"2016-11-07 20:03:23.000000000","message":"I\u0027ll change this to use .get() to avoid double lookup","commit_id":"a00617b0cb47592ea379c5d8ddab66ed61cfb61d"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"0d8ac533472df2ff07b9762bd28bbfba2f49a3ff","unresolved":false,"context_lines":[{"line_number":641,"context_line":"                                                     lport_id,"},{"line_number":642,"context_line":"                                                     network_id,"},{"line_number":643,"context_line":"                                                     segmentation_id):"},{"line_number":644,"context_line":"        if network_id not in self.local_networks:"},{"line_number":645,"context_line":"            return"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"        network \u003d self.local_networks[network_id]"},{"line_number":648,"context_line":"        if lport_id not in network.remote_ports:"},{"line_number":649,"context_line":"            return"},{"line_number":650,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a629dbe_12ee6b8b","line":647,"range":{"start_line":644,"start_character":0,"end_line":647,"end_character":49},"updated":"2016-11-07 16:47:43.000000000","message":"Same here","commit_id":"a00617b0cb47592ea379c5d8ddab66ed61cfb61d"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"403c098c766f8efb5fb2ec6e27231daa4d05446b","unresolved":false,"context_lines":[{"line_number":641,"context_line":"                                                     lport_id,"},{"line_number":642,"context_line":"                                                     network_id,"},{"line_number":643,"context_line":"                                                     segmentation_id):"},{"line_number":644,"context_line":"        if network_id not in self.local_networks:"},{"line_number":645,"context_line":"            return"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"        network \u003d self.local_networks[network_id]"},{"line_number":648,"context_line":"        if lport_id not in network.remote_ports:"},{"line_number":649,"context_line":"            return"},{"line_number":650,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a629dbe_b6412a3c","line":647,"range":{"start_line":644,"start_character":0,"end_line":647,"end_character":49},"in_reply_to":"9a629dbe_12ee6b8b","updated":"2016-11-07 20:03:23.000000000","message":"Same here","commit_id":"a00617b0cb47592ea379c5d8ddab66ed61cfb61d"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"a54091b7d35fc34afba4d37aa4064696af8daecb","unresolved":false,"context_lines":[{"line_number":558,"context_line":"        ofproto \u003d datapath.ofproto"},{"line_number":559,"context_line":"        command \u003d ofproto.OFPFC_MODIFY"},{"line_number":560,"context_line":""},{"line_number":561,"context_line":"        local_network \u003d self.local_networks[network_id]"},{"line_number":562,"context_line":"        if not local_network.local_ports:"},{"line_number":563,"context_line":"            command \u003d ofproto.OFPFC_ADD"},{"line_number":564,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_e77e1318","line":561,"range":{"start_line":561,"start_character":8,"end_line":561,"end_character":21},"updated":"2016-11-10 08:17:25.000000000","message":"if local_network is None, raise exception","commit_id":"6bb7b2be1dd019fc1041ee6655024daeeaf861c3"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"80fced56d47f7553ff61bf23fb88f890e249aebb","unresolved":false,"context_lines":[{"line_number":558,"context_line":"        ofproto \u003d datapath.ofproto"},{"line_number":559,"context_line":"        command \u003d ofproto.OFPFC_MODIFY"},{"line_number":560,"context_line":""},{"line_number":561,"context_line":"        local_network \u003d self.local_networks[network_id]"},{"line_number":562,"context_line":"        if not local_network.local_ports:"},{"line_number":563,"context_line":"            command \u003d ofproto.OFPFC_ADD"},{"line_number":564,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_a3a24eac","line":561,"range":{"start_line":561,"start_character":8,"end_line":561,"end_character":21},"in_reply_to":"9a629dbe_636af682","updated":"2016-11-10 08:24:12.000000000","message":"sorry, make sense","commit_id":"6bb7b2be1dd019fc1041ee6655024daeeaf861c3"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"507827f6a139b9921f2092750db16def2cb3a205","unresolved":false,"context_lines":[{"line_number":558,"context_line":"        ofproto \u003d datapath.ofproto"},{"line_number":559,"context_line":"        command \u003d ofproto.OFPFC_MODIFY"},{"line_number":560,"context_line":""},{"line_number":561,"context_line":"        local_network \u003d self.local_networks[network_id]"},{"line_number":562,"context_line":"        if not local_network.local_ports:"},{"line_number":563,"context_line":"            command \u003d ofproto.OFPFC_ADD"},{"line_number":564,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_636af682","line":561,"range":{"start_line":561,"start_character":8,"end_line":561,"end_character":21},"in_reply_to":"9a629dbe_e77e1318","updated":"2016-11-10 08:20:00.000000000","message":"local_networks is defaultdict, so here we\u0027ll always get a _LocalNetwork object.","commit_id":"6bb7b2be1dd019fc1041ee6655024daeeaf861c3"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"a54091b7d35fc34afba4d37aa4064696af8daecb","unresolved":false,"context_lines":[{"line_number":705,"context_line":"        ofproto \u003d datapath.ofproto"},{"line_number":706,"context_line":"        command \u003d ofproto.OFPFC_MODIFY"},{"line_number":707,"context_line":""},{"line_number":708,"context_line":"        local_network \u003d self.local_networks[network_id]"},{"line_number":709,"context_line":"        if not local_network.remote_ports:"},{"line_number":710,"context_line":"            command \u003d ofproto.OFPFC_ADD"},{"line_number":711,"context_line":"        local_network.remote_ports[lport_id] \u003d port_key"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_a7589b8b","line":708,"range":{"start_line":708,"start_character":8,"end_line":708,"end_character":21},"updated":"2016-11-10 08:17:25.000000000","message":"ditto","commit_id":"6bb7b2be1dd019fc1041ee6655024daeeaf861c3"}]}
