)]}'
{"dragonflow/controller/common/constants.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"1956a2b05d55920a20addb807d98f45fbfc94846","unresolved":false,"context_lines":[{"line_number":27,"context_line":"EGRESS_NAT_TABLE \u003d 30"},{"line_number":28,"context_line":"EGRESS_TABLE \u003d 64"},{"line_number":29,"context_line":"CANARY_TABLE \u003d 200"},{"line_number":30,"context_line":"# Pipeline Table numbers  Ingress"},{"line_number":31,"context_line":"INGRESS_DESTINATION_PORT_LOOKUP_TABLE \u003d 7"},{"line_number":32,"context_line":"INGRESS_CONNTRACK_TABLE \u003d 72"},{"line_number":33,"context_line":"INGRESS_SECURITY_GROUP_TABLE \u003d 77"},{"line_number":34,"context_line":"INGRESS_DISPATCH_TABLE \u003d 78"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_7b662152","line":31,"range":{"start_line":30,"start_character":0,"end_line":31,"end_character":41},"updated":"2016-05-29 16:15:14.000000000","message":"Consider keeping the ordering by table id.","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"9bb4eab3217d51803709d6af14fec8e524f2832e","unresolved":false,"context_lines":[{"line_number":27,"context_line":"EGRESS_NAT_TABLE \u003d 30"},{"line_number":28,"context_line":"EGRESS_TABLE \u003d 64"},{"line_number":29,"context_line":"CANARY_TABLE \u003d 200"},{"line_number":30,"context_line":"# Pipeline Table numbers  Ingress"},{"line_number":31,"context_line":"INGRESS_DESTINATION_PORT_LOOKUP_TABLE \u003d 7"},{"line_number":32,"context_line":"INGRESS_CONNTRACK_TABLE \u003d 72"},{"line_number":33,"context_line":"INGRESS_SECURITY_GROUP_TABLE \u003d 77"},{"line_number":34,"context_line":"INGRESS_DISPATCH_TABLE \u003d 78"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_c2e18800","line":31,"range":{"start_line":30,"start_character":0,"end_line":31,"end_character":41},"in_reply_to":"bab6814e_7b662152","updated":"2016-06-28 06:42:43.000000000","message":"Done","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"}],"dragonflow/controller/df_local_controller.py":[{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"b8656c9f014ae7e6d37c6a246721f3830c7e78ab","unresolved":false,"context_lines":[{"line_number":199,"context_line":"            lport.get_lswitch_id(),"},{"line_number":200,"context_line":"        )"},{"line_number":201,"context_line":"        lswitch \u003d self.db_store.get_lswitch(lport.get_lswitch_id())"},{"line_number":202,"context_line":"        if lswitch is not None:"},{"line_number":203,"context_line":"            lport.set_external_value(\u0027network_type\u0027, lswitch.get_type())"},{"line_number":204,"context_line":"            lport.set_external_value(\u0027segmentation_id\u0027,"},{"line_number":205,"context_line":"                                     lswitch.get_segmentation())"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_ba433cae","line":202,"range":{"start_line":202,"start_character":11,"end_line":202,"end_character":18},"updated":"2016-06-14 13:54:17.000000000","message":"What if lswitch is None, it\u0027s better to exit and log the error?","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":18186,"name":"Denis Makogon","username":"denismakogon","inactive":true},"change_message_id":"5657b4b83c394fd8f72c3424a2e36391dfebe523","unresolved":false,"context_lines":[{"line_number":199,"context_line":"            lport.get_lswitch_id(),"},{"line_number":200,"context_line":"        )"},{"line_number":201,"context_line":"        lswitch \u003d self.db_store.get_lswitch(lport.get_lswitch_id())"},{"line_number":202,"context_line":"        if lswitch is not None:"},{"line_number":203,"context_line":"            lport.set_external_value(\u0027network_type\u0027, lswitch.get_type())"},{"line_number":204,"context_line":"            lport.set_external_value(\u0027segmentation_id\u0027,"},{"line_number":205,"context_line":"                                     lswitch.get_segmentation())"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_a901e6b1","line":202,"range":{"start_line":202,"start_character":11,"end_line":202,"end_character":18},"in_reply_to":"7aa08908_ba433cae","updated":"2016-06-15 11:17:23.000000000","message":"Agreed","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"}],"dragonflow/controller/l2_app.py":[{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"b8656c9f014ae7e6d37c6a246721f3830c7e78ab","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from dragonflow.controller.common.arp_responder import ArpResponder"},{"line_number":23,"context_line":"from dragonflow.controller.common import constants as const"},{"line_number":24,"context_line":"from dragonflow.controller.df_base_app import DFlowApp"},{"line_number":25,"context_line":"from dragonflow._i18n import _LI"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from oslo_config import cfg"},{"line_number":28,"context_line":"from oslo_log import log"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_5a06981c","line":25,"range":{"start_line":25,"start_character":16,"end_line":25,"end_character":21},"updated":"2016-06-14 13:54:17.000000000","message":"combine this with line 21","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"9bb4eab3217d51803709d6af14fec8e524f2832e","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from dragonflow.controller.common.arp_responder import ArpResponder"},{"line_number":23,"context_line":"from dragonflow.controller.common import constants as const"},{"line_number":24,"context_line":"from dragonflow.controller.df_base_app import DFlowApp"},{"line_number":25,"context_line":"from dragonflow._i18n import _LI"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from oslo_config import cfg"},{"line_number":28,"context_line":"from oslo_log import log"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_02e4300b","line":25,"range":{"start_line":25,"start_character":16,"end_line":25,"end_character":21},"in_reply_to":"7aa08908_5a06981c","updated":"2016-06-28 06:42:43.000000000","message":"Done","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"1956a2b05d55920a20addb807d98f45fbfc94846","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        self._remove_arp_responder(lport)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        if network_type is not None and segmentation_id is not None:"},{"line_number":169,"context_line":"            self._remove_local_port_with_seg(lport_id,"},{"line_number":170,"context_line":"                                             mac,"},{"line_number":171,"context_line":"                                             topic,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_bba1a948","line":168,"range":{"start_line":168,"start_character":0,"end_line":168,"end_character":68},"updated":"2016-05-29 16:15:14.000000000","message":"Consider changing to:\nif network_type and segmentation_id:\n\nIt is shorter, and more readable.","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"9bb4eab3217d51803709d6af14fec8e524f2832e","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        self._remove_arp_responder(lport)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        if network_type is not None and segmentation_id is not None:"},{"line_number":169,"context_line":"            self._remove_local_port_with_seg(lport_id,"},{"line_number":170,"context_line":"                                             mac,"},{"line_number":171,"context_line":"                                             topic,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_42ee38ed","line":168,"range":{"start_line":168,"start_character":0,"end_line":168,"end_character":68},"in_reply_to":"bab6814e_bba1a948","updated":"2016-06-28 06:42:43.000000000","message":"Done","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":18186,"name":"Denis Makogon","username":"denismakogon","inactive":true},"change_message_id":"5657b4b83c394fd8f72c3424a2e36391dfebe523","unresolved":false,"context_lines":[{"line_number":171,"context_line":"                                             topic,"},{"line_number":172,"context_line":"                                             network_id,"},{"line_number":173,"context_line":"                                             segmentation_id)"},{"line_number":174,"context_line":"            return"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        # Remove dispatch to local port according to unique tunnel_id"},{"line_number":177,"context_line":"        match \u003d parser.OFPMatch(tunnel_id_nxm\u003dport_key)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_a9c60666","line":174,"updated":"2016-06-15 11:17:23.000000000","message":"worth to add some logging here","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"9bb4eab3217d51803709d6af14fec8e524f2832e","unresolved":false,"context_lines":[{"line_number":171,"context_line":"                                             topic,"},{"line_number":172,"context_line":"                                             network_id,"},{"line_number":173,"context_line":"                                             segmentation_id)"},{"line_number":174,"context_line":"            return"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        # Remove dispatch to local port according to unique tunnel_id"},{"line_number":177,"context_line":"        match \u003d parser.OFPMatch(tunnel_id_nxm\u003dport_key)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_a2b9dcee","line":174,"in_reply_to":"7aa08908_a9c60666","updated":"2016-06-28 06:42:43.000000000","message":"Done","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":18186,"name":"Denis Makogon","username":"denismakogon","inactive":true},"change_message_id":"5657b4b83c394fd8f72c3424a2e36391dfebe523","unresolved":false,"context_lines":[{"line_number":182,"context_line":"            priority\u003dconst.PRIORITY_MEDIUM,"},{"line_number":183,"context_line":"            out_port\u003dofproto.OFPP_ANY,"},{"line_number":184,"context_line":"            out_group\u003dofproto.OFPG_ANY,"},{"line_number":185,"context_line":"            match\u003dmatch)"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        self._del_multicast_broadcast_handling_for_port(network_id, lport_id)"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_e98c8e30","line":185,"updated":"2016-06-15 11:17:23.000000000","message":"can we do some refactoring to reduce LOC for this call and call at #189 ?","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"9bb4eab3217d51803709d6af14fec8e524f2832e","unresolved":false,"context_lines":[{"line_number":182,"context_line":"            priority\u003dconst.PRIORITY_MEDIUM,"},{"line_number":183,"context_line":"            out_port\u003dofproto.OFPP_ANY,"},{"line_number":184,"context_line":"            out_group\u003dofproto.OFPG_ANY,"},{"line_number":185,"context_line":"            match\u003dmatch)"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        self._del_multicast_broadcast_handling_for_port(network_id, lport_id)"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_22ce8c83","line":185,"in_reply_to":"7aa08908_e98c8e30","updated":"2016-06-28 06:42:43.000000000","message":"Done","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"1956a2b05d55920a20addb807d98f45fbfc94846","unresolved":false,"context_lines":[{"line_number":235,"context_line":"            return"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        del local_ports[lport_id]"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"        ingress \u003d []"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        egress \u003d []"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_fc1de462","line":238,"updated":"2016-05-29 16:15:14.000000000","message":"From this point on, isn\u0027t this the same code for _add_...?","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"9bb4eab3217d51803709d6af14fec8e524f2832e","unresolved":false,"context_lines":[{"line_number":235,"context_line":"            return"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        del local_ports[lport_id]"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"        ingress \u003d []"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        egress \u003d []"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_2295ec3f","line":238,"in_reply_to":"bab6814e_fc1de462","updated":"2016-06-28 06:42:43.000000000","message":"It\u0027s  not the same code.","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":18186,"name":"Denis Makogon","username":"denismakogon","inactive":true},"change_message_id":"5657b4b83c394fd8f72c3424a2e36391dfebe523","unresolved":false,"context_lines":[{"line_number":235,"context_line":"            return"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        del local_ports[lport_id]"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"        ingress \u003d []"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        egress \u003d []"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_a9aba674","line":238,"in_reply_to":"bab6814e_fc1de462","updated":"2016-06-15 11:17:23.000000000","message":"Looks like it is","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"1956a2b05d55920a20addb807d98f45fbfc94846","unresolved":false,"context_lines":[{"line_number":252,"context_line":"            egress.append(parser.NXActionResubmitTable(OF_IN_PORT,"},{"line_number":253,"context_line":"                                                       const.EGRESS_TABLE))"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"            ingress.append(parser.OFPActionSetField(reg7\u003dport_key_in_network))"},{"line_number":256,"context_line":"            ingress.append(parser.NXActionResubmitTable("},{"line_number":257,"context_line":"                OF_IN_PORT, const.INGRESS_CONNTRACK_TABLE))"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        # Egress broadcast"},{"line_number":260,"context_line":"        match \u003d parser.OFPMatch(eth_dst\u003d\u002701:00:00:00:00:00\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_f97fb614","line":257,"range":{"start_line":255,"start_character":0,"end_line":257,"end_character":59},"updated":"2016-05-29 16:15:14.000000000","message":"I think EGRESS_TABLE already sends to INGRESS_CONNTRACK_TABLE. Won\u0027t that cause the packet to be duplicated twice.","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"9bb4eab3217d51803709d6af14fec8e524f2832e","unresolved":false,"context_lines":[{"line_number":252,"context_line":"            egress.append(parser.NXActionResubmitTable(OF_IN_PORT,"},{"line_number":253,"context_line":"                                                       const.EGRESS_TABLE))"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"            ingress.append(parser.OFPActionSetField(reg7\u003dport_key_in_network))"},{"line_number":256,"context_line":"            ingress.append(parser.NXActionResubmitTable("},{"line_number":257,"context_line":"                OF_IN_PORT, const.INGRESS_CONNTRACK_TABLE))"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        # Egress broadcast"},{"line_number":260,"context_line":"        match \u003d parser.OFPMatch(eth_dst\u003d\u002701:00:00:00:00:00\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_22a32ca0","line":257,"range":{"start_line":255,"start_character":0,"end_line":257,"end_character":59},"in_reply_to":"bab6814e_f97fb614","updated":"2016-06-28 06:42:43.000000000","message":"EGRESS_TABLE is for outbound direction, and INGRESS here is for inbound direction.","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":21007,"name":"yuan wei","email":"wei.yuan@huawei.com","username":"yuanwei"},"change_message_id":"f6be3c02a847df866e8fd7eed98a76a14c3be9f1","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        lport_id \u003d lport.get_id()"},{"line_number":293,"context_line":"        mac \u003d lport.get_mac()"},{"line_number":294,"context_line":"        network_id \u003d lport.get_external_value(\u0027local_network_id\u0027)"},{"line_number":295,"context_line":"        tunnel_key \u003d lport.get_tunnel_key()"},{"line_number":296,"context_line":"        topic \u003d lport.get_topic()"},{"line_number":297,"context_line":"        network_type \u003d lport.get_external_value(\u0027network_type\u0027)"},{"line_number":298,"context_line":"        segmentation_id \u003d lport.get_external_value(\u0027segmentation_id\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_0c43b314","line":295,"range":{"start_line":295,"start_character":8,"end_line":295,"end_character":18},"updated":"2016-06-16 09:38:49.000000000","message":"why not change to port_key?","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"9bb4eab3217d51803709d6af14fec8e524f2832e","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        lport_id \u003d lport.get_id()"},{"line_number":293,"context_line":"        mac \u003d lport.get_mac()"},{"line_number":294,"context_line":"        network_id \u003d lport.get_external_value(\u0027local_network_id\u0027)"},{"line_number":295,"context_line":"        tunnel_key \u003d lport.get_tunnel_key()"},{"line_number":296,"context_line":"        topic \u003d lport.get_topic()"},{"line_number":297,"context_line":"        network_type \u003d lport.get_external_value(\u0027network_type\u0027)"},{"line_number":298,"context_line":"        segmentation_id \u003d lport.get_external_value(\u0027segmentation_id\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_c2b4e8d2","line":295,"range":{"start_line":295,"start_character":8,"end_line":295,"end_character":18},"in_reply_to":"7aa08908_0c43b314","updated":"2016-06-28 06:42:43.000000000","message":"Tunnel key means for tunnel, with this patch vni will be used.","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"1956a2b05d55920a20addb807d98f45fbfc94846","unresolved":false,"context_lines":[{"line_number":346,"context_line":"        network_id \u003d lport.get_external_value(\u0027local_network_id\u0027)"},{"line_number":347,"context_line":"        network_type \u003d lport.get_external_value(\u0027network_type\u0027)"},{"line_number":348,"context_line":"        segmentation_id \u003d lport.get_external_value(\u0027segmentation_id\u0027)"},{"line_number":349,"context_line":"        if segmentation_id is not None:"},{"line_number":350,"context_line":"            segmentation_id \u003d int(segmentation_id)"},{"line_number":351,"context_line":"        topic \u003d lport.get_topic()"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"        parser \u003d self.get_datapath().ofproto_parser"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_86b72cd7","line":350,"range":{"start_line":349,"start_character":0,"end_line":350,"end_character":50},"updated":"2016-05-29 16:15:14.000000000","message":"Consider moving this to lport creation code in local controller.","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"9bb4eab3217d51803709d6af14fec8e524f2832e","unresolved":false,"context_lines":[{"line_number":346,"context_line":"        network_id \u003d lport.get_external_value(\u0027local_network_id\u0027)"},{"line_number":347,"context_line":"        network_type \u003d lport.get_external_value(\u0027network_type\u0027)"},{"line_number":348,"context_line":"        segmentation_id \u003d lport.get_external_value(\u0027segmentation_id\u0027)"},{"line_number":349,"context_line":"        if segmentation_id is not None:"},{"line_number":350,"context_line":"            segmentation_id \u003d int(segmentation_id)"},{"line_number":351,"context_line":"        topic \u003d lport.get_topic()"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"        parser \u003d self.get_datapath().ofproto_parser"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_a2dc3c19","line":350,"range":{"start_line":349,"start_character":0,"end_line":350,"end_character":50},"in_reply_to":"bab6814e_86b72cd7","updated":"2016-06-28 06:42:43.000000000","message":"OK","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"1956a2b05d55920a20addb807d98f45fbfc94846","unresolved":false,"context_lines":[{"line_number":453,"context_line":"        self._add_multicast_broadcast_handling_for_port(network_id, lport_id,"},{"line_number":454,"context_line":"                                                        port_key)"},{"line_number":455,"context_line":""},{"line_number":456,"context_line":"        self._add_arp_responder(lport)"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"    def _add_local_port_with_seg(self, lport, lport_id,"},{"line_number":459,"context_line":"                                 port_key, mac, network_id, network_type,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_a6007067","line":456,"updated":"2016-05-29 16:15:14.000000000","message":"Consider moving the call to _add_arp_responder to the code that runs in both cases.","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"9bb4eab3217d51803709d6af14fec8e524f2832e","unresolved":false,"context_lines":[{"line_number":453,"context_line":"        self._add_multicast_broadcast_handling_for_port(network_id, lport_id,"},{"line_number":454,"context_line":"                                                        port_key)"},{"line_number":455,"context_line":""},{"line_number":456,"context_line":"        self._add_arp_responder(lport)"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"    def _add_local_port_with_seg(self, lport, lport_id,"},{"line_number":459,"context_line":"                                 port_key, mac, network_id, network_type,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_226dec32","line":456,"in_reply_to":"bab6814e_a6007067","updated":"2016-06-28 06:42:43.000000000","message":"Done","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"b8656c9f014ae7e6d37c6a246721f3830c7e78ab","unresolved":false,"context_lines":[{"line_number":502,"context_line":"                                                segmentation_id,"},{"line_number":503,"context_line":"                                                local_network_id):"},{"line_number":504,"context_line":""},{"line_number":505,"context_line":"        LOG.info(_LI(\"Install network flows on frist port up \""},{"line_number":506,"context_line":"                     \"segmentation_id \u003d%(segmentation_id), \""},{"line_number":507,"context_line":"                     \"local_network_id port \u003d %(local_network_id)\") %"},{"line_number":508,"context_line":"                 {\u0027segmentation_id\u0027: str(segmentation_id),"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_f84773b9","line":505,"range":{"start_line":505,"start_character":47,"end_line":505,"end_character":52},"updated":"2016-06-14 13:54:17.000000000","message":"typo","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"9bb4eab3217d51803709d6af14fec8e524f2832e","unresolved":false,"context_lines":[{"line_number":502,"context_line":"                                                segmentation_id,"},{"line_number":503,"context_line":"                                                local_network_id):"},{"line_number":504,"context_line":""},{"line_number":505,"context_line":"        LOG.info(_LI(\"Install network flows on frist port up \""},{"line_number":506,"context_line":"                     \"segmentation_id \u003d%(segmentation_id), \""},{"line_number":507,"context_line":"                     \"local_network_id port \u003d %(local_network_id)\") %"},{"line_number":508,"context_line":"                 {\u0027segmentation_id\u0027: str(segmentation_id),"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_e2592490","line":505,"range":{"start_line":505,"start_character":47,"end_line":505,"end_character":52},"in_reply_to":"7aa08908_f84773b9","updated":"2016-06-28 06:42:43.000000000","message":"Done","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":21007,"name":"yuan wei","email":"wei.yuan@huawei.com","username":"yuanwei"},"change_message_id":"f6be3c02a847df866e8fd7eed98a76a14c3be9f1","unresolved":false,"context_lines":[{"line_number":531,"context_line":"            if local_ports is not None and local_ports.values is not None:"},{"line_number":532,"context_line":"                return"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"        self._del_network_flows_for_tunnel(segmentation_id)"},{"line_number":535,"context_line":""},{"line_number":536,"context_line":"    # Install Ingress network flow for vxlan"},{"line_number":537,"context_line":"    # Table\u003dINGRESS_CLASSIFICATION_DISPATCH_TABLE, priority\u003dMedium"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_ac2edfa2","line":534,"range":{"start_line":534,"start_character":8,"end_line":534,"end_character":59},"updated":"2016-06-16 09:38:49.000000000","message":"this sentence will not be reached ever, because the \u0027local_ports\u0027 don\u0027t be deleted from the \u0027network\u0027 when the \u0027local_ports\u0027 is empty, and the values of a empty dictionary isn\u0027t None.","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"9bb4eab3217d51803709d6af14fec8e524f2832e","unresolved":false,"context_lines":[{"line_number":531,"context_line":"            if local_ports is not None and local_ports.values is not None:"},{"line_number":532,"context_line":"                return"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"        self._del_network_flows_for_tunnel(segmentation_id)"},{"line_number":535,"context_line":""},{"line_number":536,"context_line":"    # Install Ingress network flow for vxlan"},{"line_number":537,"context_line":"    # Table\u003dINGRESS_CLASSIFICATION_DISPATCH_TABLE, priority\u003dMedium"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_22db2cef","line":534,"range":{"start_line":534,"start_character":8,"end_line":534,"end_character":59},"in_reply_to":"7aa08908_ac2edfa2","updated":"2016-06-28 06:42:43.000000000","message":"Done","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"b8656c9f014ae7e6d37c6a246721f3830c7e78ab","unresolved":false,"context_lines":[{"line_number":580,"context_line":"        self.mod_flow("},{"line_number":581,"context_line":"            self.get_datapath(),"},{"line_number":582,"context_line":"            table_id\u003dconst.INGRESS_CLASSIFICATION_DISPATCH_TABLE,"},{"line_number":583,"context_line":"            priority\u003dconst.PRIORITY_MEDIUM,"},{"line_number":584,"context_line":"            match\u003dmatch)"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"    def _add_multicast_broadcast_handling_for_local_port(self,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_53102800","line":583,"range":{"start_line":583,"start_character":12,"end_line":583,"end_character":20},"updated":"2016-06-14 13:54:17.000000000","message":"miss command\u003dofproto.OFPFC_DELETE?","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"9bb4eab3217d51803709d6af14fec8e524f2832e","unresolved":false,"context_lines":[{"line_number":580,"context_line":"        self.mod_flow("},{"line_number":581,"context_line":"            self.get_datapath(),"},{"line_number":582,"context_line":"            table_id\u003dconst.INGRESS_CLASSIFICATION_DISPATCH_TABLE,"},{"line_number":583,"context_line":"            priority\u003dconst.PRIORITY_MEDIUM,"},{"line_number":584,"context_line":"            match\u003dmatch)"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"    def _add_multicast_broadcast_handling_for_local_port(self,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_e2e764aa","line":583,"range":{"start_line":583,"start_character":12,"end_line":583,"end_character":20},"in_reply_to":"7aa08908_53102800","updated":"2016-06-28 06:42:43.000000000","message":"Done","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":21007,"name":"yuan wei","email":"wei.yuan@huawei.com","username":"yuanwei"},"change_message_id":"f6be3c02a847df866e8fd7eed98a76a14c3be9f1","unresolved":false,"context_lines":[{"line_number":699,"context_line":"                continue"},{"line_number":700,"context_line":"            tunnel_port \u003d lport.get_external_value(\u0027ofport\u0027)"},{"line_number":701,"context_line":""},{"line_number":702,"context_line":"            if tunnels[tunnel_port] is None:"},{"line_number":703,"context_line":"                tunnels[tunnel_port] \u003d tunnel_port"},{"line_number":704,"context_line":"                actions.append(parser.OFPActionSetField("},{"line_number":705,"context_line":"                    tunel_id_nxm\u003dsegmentation_id))"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_6676d6d9","line":702,"range":{"start_line":702,"start_character":15,"end_line":702,"end_character":35},"updated":"2016-06-16 09:38:49.000000000","message":"there will throw a exception if tunnel_port isn\u0027t a key in tunnels","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"9bb4eab3217d51803709d6af14fec8e524f2832e","unresolved":false,"context_lines":[{"line_number":699,"context_line":"                continue"},{"line_number":700,"context_line":"            tunnel_port \u003d lport.get_external_value(\u0027ofport\u0027)"},{"line_number":701,"context_line":""},{"line_number":702,"context_line":"            if tunnels[tunnel_port] is None:"},{"line_number":703,"context_line":"                tunnels[tunnel_port] \u003d tunnel_port"},{"line_number":704,"context_line":"                actions.append(parser.OFPActionSetField("},{"line_number":705,"context_line":"                    tunel_id_nxm\u003dsegmentation_id))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_82678024","line":702,"range":{"start_line":702,"start_character":15,"end_line":702,"end_character":35},"in_reply_to":"7aa08908_6676d6d9","updated":"2016-06-28 06:42:43.000000000","message":"Done","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":21007,"name":"yuan wei","email":"wei.yuan@huawei.com","username":"yuanwei"},"change_message_id":"f6be3c02a847df866e8fd7eed98a76a14c3be9f1","unresolved":false,"context_lines":[{"line_number":707,"context_line":""},{"line_number":708,"context_line":"        inst \u003d [parser.OFPInstructionActions(ofproto.OFPIT_APPLY_ACTIONS,"},{"line_number":709,"context_line":"                                             actions)]"},{"line_number":710,"context_line":"        self.mod_flow("},{"line_number":711,"context_line":"            self.get_datapath(),"},{"line_number":712,"context_line":"            inst\u003dinst,"},{"line_number":713,"context_line":"            table_id\u003dconst.EGRESS_TABLE,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_49be4d01","line":710,"range":{"start_line":710,"start_character":12,"end_line":710,"end_character":13},"updated":"2016-06-16 09:38:49.000000000","message":"if it\u0027s needed to delete this flow rather than to modify it if this there isn\u0027t any remote port in this network?","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"9bb4eab3217d51803709d6af14fec8e524f2832e","unresolved":false,"context_lines":[{"line_number":707,"context_line":""},{"line_number":708,"context_line":"        inst \u003d [parser.OFPInstructionActions(ofproto.OFPIT_APPLY_ACTIONS,"},{"line_number":709,"context_line":"                                             actions)]"},{"line_number":710,"context_line":"        self.mod_flow("},{"line_number":711,"context_line":"            self.get_datapath(),"},{"line_number":712,"context_line":"            inst\u003dinst,"},{"line_number":713,"context_line":"            table_id\u003dconst.EGRESS_TABLE,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_2277acd5","line":710,"range":{"start_line":710,"start_character":12,"end_line":710,"end_character":13},"in_reply_to":"7aa08908_49be4d01","updated":"2016-06-28 06:42:43.000000000","message":"Done","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"b8656c9f014ae7e6d37c6a246721f3830c7e78ab","unresolved":false,"context_lines":[{"line_number":715,"context_line":"            priority\u003dconst.PRIORITY_HIGH,"},{"line_number":716,"context_line":"            match\u003dmatch)"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"    def _add_multicast_broadcast_handling_for_remote_port(self,"},{"line_number":719,"context_line":"                                                          lport_id,"},{"line_number":720,"context_line":"                                                          port_key,"},{"line_number":721,"context_line":"                                                          network_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_39ebbd14","line":718,"range":{"start_line":718,"start_character":8,"end_line":718,"end_character":57},"updated":"2016-06-14 13:54:17.000000000","message":"this function is very similar to the previous one. Consider put what in common to another private function.","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"9bb4eab3217d51803709d6af14fec8e524f2832e","unresolved":false,"context_lines":[{"line_number":715,"context_line":"            priority\u003dconst.PRIORITY_HIGH,"},{"line_number":716,"context_line":"            match\u003dmatch)"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"    def _add_multicast_broadcast_handling_for_remote_port(self,"},{"line_number":719,"context_line":"                                                          lport_id,"},{"line_number":720,"context_line":"                                                          port_key,"},{"line_number":721,"context_line":"                                                          network_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_a249dc90","line":718,"range":{"start_line":718,"start_character":8,"end_line":718,"end_character":57},"in_reply_to":"7aa08908_39ebbd14","updated":"2016-06-28 06:42:43.000000000","message":"Done","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":21007,"name":"yuan wei","email":"wei.yuan@huawei.com","username":"yuanwei"},"change_message_id":"f6be3c02a847df866e8fd7eed98a76a14c3be9f1","unresolved":false,"context_lines":[{"line_number":747,"context_line":"        match.set_metadata(network_id)"},{"line_number":748,"context_line":""},{"line_number":749,"context_line":"        actions \u003d []"},{"line_number":750,"context_line":"        actions.append(parser.OFPActionSetField(tunnel_id_nxm\u003dsegmentation_id))"},{"line_number":751,"context_line":"        actions.append(parser.OFPActionOutput(port\u003dofport))"},{"line_number":752,"context_line":""},{"line_number":753,"context_line":"        tunnels \u003d {}"},{"line_number":754,"context_line":"        tunnels[ofport] \u003d ofport"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_e69f6663","line":751,"range":{"start_line":750,"start_character":8,"end_line":751,"end_character":59},"updated":"2016-06-16 09:38:49.000000000","message":"those two sentences may be unnecessary because this remote port has already been in remote_ports, and the loop below will do the work.","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"9bb4eab3217d51803709d6af14fec8e524f2832e","unresolved":false,"context_lines":[{"line_number":747,"context_line":"        match.set_metadata(network_id)"},{"line_number":748,"context_line":""},{"line_number":749,"context_line":"        actions \u003d []"},{"line_number":750,"context_line":"        actions.append(parser.OFPActionSetField(tunnel_id_nxm\u003dsegmentation_id))"},{"line_number":751,"context_line":"        actions.append(parser.OFPActionOutput(port\u003dofport))"},{"line_number":752,"context_line":""},{"line_number":753,"context_line":"        tunnels \u003d {}"},{"line_number":754,"context_line":"        tunnels[ofport] \u003d ofport"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_422c78ab","line":751,"range":{"start_line":750,"start_character":8,"end_line":751,"end_character":59},"in_reply_to":"7aa08908_e69f6663","updated":"2016-06-28 06:42:43.000000000","message":"not the same thing","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":21007,"name":"yuan wei","email":"wei.yuan@huawei.com","username":"yuanwei"},"change_message_id":"f6be3c02a847df866e8fd7eed98a76a14c3be9f1","unresolved":false,"context_lines":[{"line_number":753,"context_line":"        tunnels \u003d {}"},{"line_number":754,"context_line":"        tunnels[ofport] \u003d ofport"},{"line_number":755,"context_line":""},{"line_number":756,"context_line":"        # todo"},{"line_number":757,"context_line":"        # aggregate  remote tunnel"},{"line_number":758,"context_line":"        for port_id_in_network in remote_ports:"},{"line_number":759,"context_line":"            lport \u003d self.db_store.get_port(self, port_id_in_network)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_e6164657","line":756,"range":{"start_line":756,"start_character":10,"end_line":756,"end_character":14},"updated":"2016-06-16 09:38:49.000000000","message":"todo? seems you already did the aggregation","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"9bb4eab3217d51803709d6af14fec8e524f2832e","unresolved":false,"context_lines":[{"line_number":753,"context_line":"        tunnels \u003d {}"},{"line_number":754,"context_line":"        tunnels[ofport] \u003d ofport"},{"line_number":755,"context_line":""},{"line_number":756,"context_line":"        # todo"},{"line_number":757,"context_line":"        # aggregate  remote tunnel"},{"line_number":758,"context_line":"        for port_id_in_network in remote_ports:"},{"line_number":759,"context_line":"            lport \u003d self.db_store.get_port(self, port_id_in_network)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_e211245f","line":756,"range":{"start_line":756,"start_character":10,"end_line":756,"end_character":14},"in_reply_to":"7aa08908_e6164657","updated":"2016-06-28 06:42:43.000000000","message":"not the same thing","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":21007,"name":"yuan wei","email":"wei.yuan@huawei.com","username":"yuanwei"},"change_message_id":"f6be3c02a847df866e8fd7eed98a76a14c3be9f1","unresolved":false,"context_lines":[{"line_number":761,"context_line":"                continue"},{"line_number":762,"context_line":"            tunnel_port \u003d lport.get_external_value(\u0027ofport\u0027)"},{"line_number":763,"context_line":""},{"line_number":764,"context_line":"            if tunnels[tunnel_port] is None:"},{"line_number":765,"context_line":"                tunnels[tunnel_port] \u003d tunnel_port"},{"line_number":766,"context_line":"                actions.append(parser.OFPActionSetField("},{"line_number":767,"context_line":"                    tunel_id_nxm\u003dsegmentation_id))"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_e9fd7909","line":764,"range":{"start_line":764,"start_character":22,"end_line":764,"end_character":35},"updated":"2016-06-16 09:38:49.000000000","message":"same","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"9bb4eab3217d51803709d6af14fec8e524f2832e","unresolved":false,"context_lines":[{"line_number":761,"context_line":"                continue"},{"line_number":762,"context_line":"            tunnel_port \u003d lport.get_external_value(\u0027ofport\u0027)"},{"line_number":763,"context_line":""},{"line_number":764,"context_line":"            if tunnels[tunnel_port] is None:"},{"line_number":765,"context_line":"                tunnels[tunnel_port] \u003d tunnel_port"},{"line_number":766,"context_line":"                actions.append(parser.OFPActionSetField("},{"line_number":767,"context_line":"                    tunel_id_nxm\u003dsegmentation_id))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_0209d031","line":764,"range":{"start_line":764,"start_character":22,"end_line":764,"end_character":35},"in_reply_to":"7aa08908_e9fd7909","updated":"2016-06-28 06:42:43.000000000","message":"Done","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"b8656c9f014ae7e6d37c6a246721f3830c7e78ab","unresolved":false,"context_lines":[{"line_number":912,"context_line":"            priority\u003dpriority,"},{"line_number":913,"context_line":"            match\u003dmatch)"},{"line_number":914,"context_line":""},{"line_number":915,"context_line":"        if network_type is not None and segmentation_id is not None:"},{"line_number":916,"context_line":"            self._add_remote_with_seg(lport, lport_id, port_key,"},{"line_number":917,"context_line":"                                      ofport,"},{"line_number":918,"context_line":"                                      network_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_0d6b1f86","line":915,"range":{"start_line":915,"start_character":11,"end_line":915,"end_character":23},"updated":"2016-06-14 13:54:17.000000000","message":"mix these two scenario is too complex. Can we split the code to two class, one deal with network with segmentation_id, the other deal with network without segmentation_id?","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"9bb4eab3217d51803709d6af14fec8e524f2832e","unresolved":false,"context_lines":[{"line_number":912,"context_line":"            priority\u003dpriority,"},{"line_number":913,"context_line":"            match\u003dmatch)"},{"line_number":914,"context_line":""},{"line_number":915,"context_line":"        if network_type is not None and segmentation_id is not None:"},{"line_number":916,"context_line":"            self._add_remote_with_seg(lport, lport_id, port_key,"},{"line_number":917,"context_line":"                                      ofport,"},{"line_number":918,"context_line":"                                      network_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_4203d80f","line":915,"range":{"start_line":915,"start_character":11,"end_line":915,"end_character":23},"in_reply_to":"7aa08908_0d6b1f86","updated":"2016-06-28 06:42:43.000000000","message":"Done","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"b8656c9f014ae7e6d37c6a246721f3830c7e78ab","unresolved":false,"context_lines":[{"line_number":939,"context_line":""},{"line_number":940,"context_line":"        self._add_arp_responder(lport)"},{"line_number":941,"context_line":""},{"line_number":942,"context_line":"    def _add_remote_with_seg(self, lport, lport_id, port_key,"},{"line_number":943,"context_line":"                             ofport, network_id,"},{"line_number":944,"context_line":"                             segmentation_id):"},{"line_number":945,"context_line":"        LOG.info(_LI(\"Add remote with segmentation\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_7924255f","line":942,"range":{"start_line":942,"start_character":8,"end_line":942,"end_character":28},"updated":"2016-06-14 13:54:17.000000000","message":"not clear. add_remote_port_with_seg may be better.","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":18186,"name":"Denis Makogon","username":"denismakogon","inactive":true},"change_message_id":"5657b4b83c394fd8f72c3424a2e36391dfebe523","unresolved":false,"context_lines":[{"line_number":939,"context_line":""},{"line_number":940,"context_line":"        self._add_arp_responder(lport)"},{"line_number":941,"context_line":""},{"line_number":942,"context_line":"    def _add_remote_with_seg(self, lport, lport_id, port_key,"},{"line_number":943,"context_line":"                             ofport, network_id,"},{"line_number":944,"context_line":"                             segmentation_id):"},{"line_number":945,"context_line":"        LOG.info(_LI(\"Add remote with segmentation\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_69c89e57","line":942,"range":{"start_line":942,"start_character":8,"end_line":942,"end_character":28},"in_reply_to":"7aa08908_7924255f","updated":"2016-06-15 11:17:23.000000000","message":"+1","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"9bb4eab3217d51803709d6af14fec8e524f2832e","unresolved":false,"context_lines":[{"line_number":939,"context_line":""},{"line_number":940,"context_line":"        self._add_arp_responder(lport)"},{"line_number":941,"context_line":""},{"line_number":942,"context_line":"    def _add_remote_with_seg(self, lport, lport_id, port_key,"},{"line_number":943,"context_line":"                             ofport, network_id,"},{"line_number":944,"context_line":"                             segmentation_id):"},{"line_number":945,"context_line":"        LOG.info(_LI(\"Add remote with segmentation\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_85030a0d","line":942,"range":{"start_line":942,"start_character":8,"end_line":942,"end_character":28},"in_reply_to":"7aa08908_7924255f","updated":"2016-06-28 06:42:43.000000000","message":"Done","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"}],"dragonflow/db/api_nb.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"1956a2b05d55920a20addb807d98f45fbfc94846","unresolved":false,"context_lines":[{"line_number":755,"context_line":""},{"line_number":756,"context_line":"    def is_external(self):"},{"line_number":757,"context_line":"        try:"},{"line_number":758,"context_line":"            return self.lswitch[\u0027router_external\u0027]"},{"line_number":759,"context_line":"        except Exception as e:"},{"line_number":760,"context_line":"            LOG.exception(e)"},{"line_number":761,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_9b4b0587","line":758,"updated":"2016-05-29 16:15:14.000000000","message":"Consider replacing with:\nself.lswitch.get(\u0027router_external\u0027, None)\n\nThen the try/except blocks will be redundant.","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":18186,"name":"Denis Makogon","username":"denismakogon","inactive":true},"change_message_id":"5657b4b83c394fd8f72c3424a2e36391dfebe523","unresolved":false,"context_lines":[{"line_number":755,"context_line":""},{"line_number":756,"context_line":"    def is_external(self):"},{"line_number":757,"context_line":"        try:"},{"line_number":758,"context_line":"            return self.lswitch[\u0027router_external\u0027]"},{"line_number":759,"context_line":"        except Exception as e:"},{"line_number":760,"context_line":"            LOG.exception(e)"},{"line_number":761,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_69cffe57","line":758,"in_reply_to":"bab6814e_9b4b0587","updated":"2016-06-15 11:17:23.000000000","message":"+1","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"b8656c9f014ae7e6d37c6a246721f3830c7e78ab","unresolved":false,"context_lines":[{"line_number":756,"context_line":"    def is_external(self):"},{"line_number":757,"context_line":"        try:"},{"line_number":758,"context_line":"            return self.lswitch[\u0027router_external\u0027]"},{"line_number":759,"context_line":"        except Exception as e:"},{"line_number":760,"context_line":"            LOG.exception(e)"},{"line_number":761,"context_line":"            return None"},{"line_number":762,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_da5f280d","line":759,"range":{"start_line":759,"start_character":25,"end_line":759,"end_character":27},"updated":"2016-06-14 13:54:17.000000000","message":"The default value is None? or False?","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":21007,"name":"yuan wei","email":"wei.yuan@huawei.com","username":"yuanwei"},"change_message_id":"f6be3c02a847df866e8fd7eed98a76a14c3be9f1","unresolved":false,"context_lines":[{"line_number":772,"context_line":"    def get_version(self):"},{"line_number":773,"context_line":"        return self.lswitch[\u0027version\u0027]"},{"line_number":774,"context_line":""},{"line_number":775,"context_line":"    def get_type(self):"},{"line_number":776,"context_line":"        try:"},{"line_number":777,"context_line":"            return self.lswitch[\u0027network_type\u0027]"},{"line_number":778,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_80dbed20","line":775,"range":{"start_line":775,"start_character":11,"end_line":775,"end_character":17},"updated":"2016-06-16 09:38:49.000000000","message":"In current codes of master branch, the type and the segment_id of a logical_network are always none. Why not add support of those two options in dragonflow/neutron/plugin.sh in this patch? Otherwise how could you test codes of this patch?","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"1956a2b05d55920a20addb807d98f45fbfc94846","unresolved":false,"context_lines":[{"line_number":774,"context_line":""},{"line_number":775,"context_line":"    def get_type(self):"},{"line_number":776,"context_line":"        try:"},{"line_number":777,"context_line":"            return self.lswitch[\u0027network_type\u0027]"},{"line_number":778,"context_line":"        except Exception as e:"},{"line_number":779,"context_line":"            LOG.exception(e)"},{"line_number":780,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_7b50e132","line":777,"updated":"2016-05-29 16:15:14.000000000","message":"Same here.","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":18186,"name":"Denis Makogon","username":"denismakogon","inactive":true},"change_message_id":"5657b4b83c394fd8f72c3424a2e36391dfebe523","unresolved":false,"context_lines":[{"line_number":774,"context_line":""},{"line_number":775,"context_line":"    def get_type(self):"},{"line_number":776,"context_line":"        try:"},{"line_number":777,"context_line":"            return self.lswitch[\u0027network_type\u0027]"},{"line_number":778,"context_line":"        except Exception as e:"},{"line_number":779,"context_line":"            LOG.exception(e)"},{"line_number":780,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_49ccc261","line":777,"in_reply_to":"bab6814e_7b50e132","updated":"2016-06-15 11:17:23.000000000","message":"+1","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"b8656c9f014ae7e6d37c6a246721f3830c7e78ab","unresolved":false,"context_lines":[{"line_number":775,"context_line":"    def get_type(self):"},{"line_number":776,"context_line":"        try:"},{"line_number":777,"context_line":"            return self.lswitch[\u0027network_type\u0027]"},{"line_number":778,"context_line":"        except Exception as e:"},{"line_number":779,"context_line":"            LOG.exception(e)"},{"line_number":780,"context_line":"            return None"},{"line_number":781,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_5a797881","line":778,"range":{"start_line":778,"start_character":15,"end_line":778,"end_character":24},"updated":"2016-06-14 13:54:17.000000000","message":"What if we just raise the exception?  Because this is a unrecoverable error. Or you need to log the exception at least?","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"1956a2b05d55920a20addb807d98f45fbfc94846","unresolved":false,"context_lines":[{"line_number":781,"context_line":""},{"line_number":782,"context_line":"    def get_segmentation(self):"},{"line_number":783,"context_line":"        try:"},{"line_number":784,"context_line":"            return self.lswitch[\u0027segmentation_id\u0027]"},{"line_number":785,"context_line":"        except Exception as e:"},{"line_number":786,"context_line":"            LOG.exception(e)"},{"line_number":787,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_db410d65","line":784,"updated":"2016-05-29 16:15:14.000000000","message":"And here","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"},{"author":{"_account_id":18186,"name":"Denis Makogon","username":"denismakogon","inactive":true},"change_message_id":"5657b4b83c394fd8f72c3424a2e36391dfebe523","unresolved":false,"context_lines":[{"line_number":781,"context_line":""},{"line_number":782,"context_line":"    def get_segmentation(self):"},{"line_number":783,"context_line":"        try:"},{"line_number":784,"context_line":"            return self.lswitch[\u0027segmentation_id\u0027]"},{"line_number":785,"context_line":"        except Exception as e:"},{"line_number":786,"context_line":"            LOG.exception(e)"},{"line_number":787,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_a9d9e624","line":784,"in_reply_to":"bab6814e_db410d65","updated":"2016-06-15 11:17:23.000000000","message":"+1","commit_id":"d30113beceb7a93a36cc2128912eb7f54b12f575"}]}
