)]}'
{"dragonflow/controller/dnat_app.py":[{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"3d099d0e363fb2eec60b512d1d2934fdb0cceac8","unresolved":false,"context_lines":[{"line_number":358,"context_line":"            parser.OFPActionSetField(ipv4_src\u003dfip_ip),"},{"line_number":359,"context_line":"            parser.OFPActionOutput(self.external_ofport, 0)]"},{"line_number":360,"context_line":"        if floatingip.get_network_type() \u003d\u003d \u0027vlan\u0027:"},{"line_number":361,"context_line":"            actions.append(parser.OFPActionPushVlan(ether.ETH_TYPE_8021Q))"},{"line_number":362,"context_line":"            actions.append(parser.OFPActionSetField("},{"line_number":363,"context_line":"                vlan_vid\u003d(floatingip.get_segmentation_id() \u0026 0x1fff) | 0x1000"},{"line_number":364,"context_line":"            ))"},{"line_number":365,"context_line":"        inst \u003d [self.get_datapath().ofproto_parser.OFPInstructionActions("},{"line_number":366,"context_line":"            ofproto.OFPIT_APPLY_ACTIONS, actions)]"},{"line_number":367,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_e6e81a7f","line":364,"range":{"start_line":361,"start_character":2,"end_line":364,"end_character":14},"updated":"2016-05-28 10:44:25.000000000","message":"If network_type is vxlan or others, can dnat_app support it?\nThe final action is sending packet to patch that is connected to br-ex bridge. And br-ex bridge only can forward vlan and flat packets.","commit_id":"b10c31d0c41dc0c5d0b1aee0272bff76c9b64583"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"3d099d0e363fb2eec60b512d1d2934fdb0cceac8","unresolved":false,"context_lines":[{"line_number":427,"context_line":"                const.PRIORITY_DEFAULT,"},{"line_number":428,"context_line":"                const.INGRESS_NAT_TABLE,"},{"line_number":429,"context_line":"                match\u003dmatch)"},{"line_number":430,"context_line":"            lport \u003d self.db_store.get_local_port(floatingip.lport_id)"},{"line_number":431,"context_line":"            local_network_id \u003d lport.get_external_value(\u0027local_network_id\u0027)"},{"line_number":432,"context_line":"            match \u003d parser.OFPMatch()"},{"line_number":433,"context_line":"            match.set_metadata(local_network_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_469126f0","line":430,"range":{"start_line":430,"start_character":11,"end_line":430,"end_character":69},"updated":"2016-05-28 10:44:25.000000000","message":"1.Is \u0027floationip.lport_id\u0027 properties exist?\n2. Lport of floating ip itself may not exist on local controller.\n   You have save network_id to floating_ip, why not use it?","commit_id":"b10c31d0c41dc0c5d0b1aee0272bff76c9b64583"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"3d099d0e363fb2eec60b512d1d2934fdb0cceac8","unresolved":false,"context_lines":[{"line_number":434,"context_line":"            self.add_flow_go_to_table("},{"line_number":435,"context_line":"                self.get_datapath(),"},{"line_number":436,"context_line":"                const.INGRESS_DESTINATION_PORT_LOOKUP_TABLE,"},{"line_number":437,"context_line":"                const.PRIORITY_DEFAULT,"},{"line_number":438,"context_line":"                const.INGRESS_NAT_TABLE,"},{"line_number":439,"context_line":"                match\u003dmatch)"},{"line_number":440,"context_line":"            if floatingip.get_network_type() \u003d\u003d \u0027vlan\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_66ab8a1e","line":437,"range":{"start_line":437,"start_character":15,"end_line":437,"end_character":39},"updated":"2016-05-28 10:44:25.000000000","message":"The proprity should be higher than others.","commit_id":"b10c31d0c41dc0c5d0b1aee0272bff76c9b64583"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"3d099d0e363fb2eec60b512d1d2934fdb0cceac8","unresolved":false,"context_lines":[{"line_number":438,"context_line":"                const.INGRESS_NAT_TABLE,"},{"line_number":439,"context_line":"                match\u003dmatch)"},{"line_number":440,"context_line":"            if floatingip.get_network_type() \u003d\u003d \u0027vlan\u0027:"},{"line_number":441,"context_line":"                self._install_network_flows_for_ingress_vlan("},{"line_number":442,"context_line":"                    floatingip.get_segmentation_id(), local_network_id)"},{"line_number":443,"context_line":"            if floatingip.get_network_type() \u003d\u003d \u0027vxlan\u0027:"},{"line_number":444,"context_line":"                self._install_network_flows_for_ingress_tunnel("},{"line_number":445,"context_line":"                    floatingip.get_segmentation_id(), local_network_id)"},{"line_number":446,"context_line":"            if floatingip.get_network_type() \u003d\u003d \u0027flat\u0027:"},{"line_number":447,"context_line":"                self._install_network_flows_for_ingress_flat(local_network_id)"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"        self._install_floatingip_arp_responder(floatingip)"},{"line_number":450,"context_line":"        self._install_mac_learning_rules(floatingip)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_e6b65a89","line":447,"range":{"start_line":441,"start_character":5,"end_line":447,"end_character":78},"updated":"2016-05-28 10:44:25.000000000","message":"It\u0027s the same problem as out direction.\nDoes these network_types need to be supported?","commit_id":"b10c31d0c41dc0c5d0b1aee0272bff76c9b64583"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"3d099d0e363fb2eec60b512d1d2934fdb0cceac8","unresolved":false,"context_lines":[{"line_number":629,"context_line":""},{"line_number":630,"context_line":"    def _install_network_flows_for_ingress_tunnel(self, segmentation_id,"},{"line_number":631,"context_line":"                                                  local_network_id):"},{"line_number":632,"context_line":"        if segmentation_id is None:"},{"line_number":633,"context_line":"            return"},{"line_number":634,"context_line":"        actions \u003d []"},{"line_number":635,"context_line":"        parser \u003d self.get_datapath().ofproto_parser"},{"line_number":636,"context_line":"        ofproto \u003d self.get_datapath().ofproto"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"        match \u003d parser.OFPMatch(tunnel_id_nuxm\u003dsegmentation_id)"},{"line_number":639,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_66826a96","line":636,"range":{"start_line":632,"start_character":7,"end_line":636,"end_character":42},"updated":"2016-05-28 10:44:25.000000000","message":"If out direction does not support vxlan, is it necessary to support in direction?","commit_id":"b10c31d0c41dc0c5d0b1aee0272bff76c9b64583"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"2d89b2cbc236985647a7e1a0b6a0d6ce8eba63ba","unresolved":false,"context_lines":[{"line_number":38,"context_line":"DF_DNAT_APP_OPTS \u003d ["},{"line_number":39,"context_line":"    cfg.StrOpt(\u0027external_network_bridge\u0027,"},{"line_number":40,"context_line":"               default\u003d\u0027br-ex\u0027,"},{"line_number":41,"context_line":"               help\u003d_(\"Name of bridge used for external network traffic\")),"},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027int_peer_patch_port\u0027, default\u003d\u0027patch-ex\u0027,"},{"line_number":43,"context_line":"               help\u003d_(\"Peer patch port in integration bridge for external \""},{"line_number":44,"context_line":"                      \"bridge.\")),"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_d23c7ee4","line":41,"updated":"2016-05-30 17:40:26.000000000","message":"Please keep cosmetic changes in a separate, dedicated patch.","commit_id":"957cf9e3187bab26948c8417ac6b66f3c44a9fb8"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"2d89b2cbc236985647a7e1a0b6a0d6ce8eba63ba","unresolved":false,"context_lines":[{"line_number":597,"context_line":""},{"line_number":598,"context_line":"        actions.append(parser.OFPActionSetField(metadata\u003dlocal_network_id))"},{"line_number":599,"context_line":""},{"line_number":600,"context_line":"        action_inst \u003d self.get_datapath().ofproto_parser.OFPInstructionActions("},{"line_number":601,"context_line":"            ofproto.OFPIT_APPLY_ACTIONS, actions"},{"line_number":602,"context_line":"        )"},{"line_number":603,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_dd5bef85","line":600,"range":{"start_line":600,"start_character":22,"end_line":600,"end_character":57},"updated":"2016-05-30 17:40:26.000000000","message":"This value is already present in variable \u0027parser\u0027. Consider using \u0027parser\u0027 to improve readability.","commit_id":"957cf9e3187bab26948c8417ac6b66f3c44a9fb8"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"2d89b2cbc236985647a7e1a0b6a0d6ce8eba63ba","unresolved":false,"context_lines":[{"line_number":631,"context_line":""},{"line_number":632,"context_line":"    def _install_network_flows_for_ingress_tunnel(self, segmentation_id,"},{"line_number":633,"context_line":"                                                  local_network_id):"},{"line_number":634,"context_line":"        if segmentation_id is None:"},{"line_number":635,"context_line":"            return"},{"line_number":636,"context_line":"        actions \u003d []"},{"line_number":637,"context_line":"        parser \u003d self.get_datapath().ofproto_parser"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_9dbde76a","line":634,"updated":"2016-05-30 17:40:26.000000000","message":"This is the only _install_... method with this test. Can this happen (e.g. in vlan?)?","commit_id":"957cf9e3187bab26948c8417ac6b66f3c44a9fb8"},{"author":{"_account_id":15967,"name":"vikas choudhary","email":"choudharyvikas16@gmail.com","username":"vikaschoudhary16"},"change_message_id":"d7ab1f09230f3dbe46da489311b6d1715f4ac7c5","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            parser.OFPActionSetField(reg7\u003dvm_tunnel_key),"},{"line_number":201,"context_line":"            parser.OFPActionSetField(metadata\u003dnetwork_id)"},{"line_number":202,"context_line":"        ]"},{"line_number":203,"context_line":"        if floatingip.get_network_type() \u003d\u003d \u0027vlan\u0027:"},{"line_number":204,"context_line":"            actions.append(parser.OFPActionPopVlan())"},{"line_number":205,"context_line":"        action_inst \u003d parser.OFPInstructionActions("},{"line_number":206,"context_line":"            ofproto.OFPIT_APPLY_ACTIONS, actions)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_e4b8be13","line":203,"range":{"start_line":203,"start_character":22,"end_line":203,"end_character":38},"updated":"2016-06-12 15:53:04.000000000","message":"What if network type is vxlan or gre? Why we are not using something tunnel decap action here?","commit_id":"7e12695b7972524f6a4dc1c99cae5731f845fc8e"},{"author":{"_account_id":15967,"name":"vikas choudhary","email":"choudharyvikas16@gmail.com","username":"vikaschoudhary16"},"change_message_id":"d7ab1f09230f3dbe46da489311b6d1715f4ac7c5","unresolved":false,"context_lines":[{"line_number":368,"context_line":"            if floatingip.get_network_type() \u003d\u003d \u0027vlan\u0027:"},{"line_number":369,"context_line":"                self._del_network_flows_for_ingress_vlan("},{"line_number":370,"context_line":"                    floatingip.get_segmentation_id())"},{"line_number":371,"context_line":"            if floatingip.get_network_type() \u003d\u003d \u0027vxlan\u0027:"},{"line_number":372,"context_line":"                self._del_network_flows_for_ingress_tunnel("},{"line_number":373,"context_line":"                    floatingip.get_segmentation_id())"},{"line_number":374,"context_line":"            if floatingip.get_network_type() \u003d\u003d \u0027flat\u0027:"}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_a4db567b","line":371,"range":{"start_line":371,"start_character":26,"end_line":371,"end_character":42},"updated":"2016-06-12 15:53:04.000000000","message":"what about GRE?","commit_id":"7e12695b7972524f6a4dc1c99cae5731f845fc8e"},{"author":{"_account_id":9044,"name":"Will","email":"wangjian.ika@bytedance.com","username":"Will"},"change_message_id":"de3c3d0cf10831f48dc1aff9eb482b3b1ee0b32d","unresolved":false,"context_lines":[{"line_number":417,"context_line":"                id\u003dfip.get_id(),"},{"line_number":418,"context_line":"                topic\u003dfip.get_topic(),"},{"line_number":419,"context_line":"                notify\u003dFalse,"},{"line_number":420,"context_line":"                external_gateway_ip\u003dfip.get_external_gateway_ip())"},{"line_number":421,"context_line":"    def _install_network_flows_for_ingress_vlan(self, segmentation_id,"},{"line_number":422,"context_line":"                                                local_network_id):"},{"line_number":423,"context_line":"        actions \u003d []"}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_8e914549","line":420,"range":{"start_line":420,"start_character":40,"end_line":420,"end_character":63},"updated":"2016-06-10 15:50:16.000000000","message":"space line","commit_id":"7e12695b7972524f6a4dc1c99cae5731f845fc8e"},{"author":{"_account_id":9044,"name":"Will","email":"wangjian.ika@bytedance.com","username":"Will"},"change_message_id":"de3c3d0cf10831f48dc1aff9eb482b3b1ee0b32d","unresolved":false,"context_lines":[{"line_number":539,"context_line":"        )"},{"line_number":540,"context_line":""},{"line_number":541,"context_line":"    def _del_network_flows_for_ingress_tunnel(self, segmentation_id):"},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"        if segmentation_id is None:"},{"line_number":544,"context_line":"            return"},{"line_number":545,"context_line":"        parser \u003d self.get_datapath().ofproto_parser"}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_ae11a1b1","line":542,"updated":"2016-06-10 15:50:16.000000000","message":"redundant space line","commit_id":"7e12695b7972524f6a4dc1c99cae5731f845fc8e"},{"author":{"_account_id":18903,"name":"Yuli","email":"stremovsky@gmail.com","username":"yuli"},"change_message_id":"8238f8da27e939ea78351a747b872a3d157dd268","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        if floatingip.get_network_type() \u003d\u003d \u0027vlan\u0027:"},{"line_number":250,"context_line":"            actions.append(parser.OFPActionPushVlan(ether.ETH_TYPE_8021Q))"},{"line_number":251,"context_line":"            actions.append(parser.OFPActionSetField("},{"line_number":252,"context_line":"                vlan_vid\u003d(floatingip.get_segmentation_id() \u0026 0x1fff) | 0x1000"},{"line_number":253,"context_line":"            ))"},{"line_number":254,"context_line":"        inst \u003d [self.get_datapath().ofproto_parser.OFPInstructionActions("},{"line_number":255,"context_line":"            ofproto.OFPIT_APPLY_ACTIONS, actions)]"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a71b18c_a031655c","line":252,"range":{"start_line":252,"start_character":16,"end_line":252,"end_character":77},"updated":"2016-12-11 13:14:09.000000000","message":"IMHO you can simply use \"vlan_vid \u003d floatingip.get_segmentation_id()\" here.\n\nWhen calling allocate_tenant_segment() in\nneutron/plugins/ml2/drivers/type_vlan.py\nyou should get the correct segment id.","commit_id":"94be7599dea6927181a3209cb9680215eac7d196"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"671487ea4741d08c0c0c246d54be7d39222fd75e","unresolved":false,"context_lines":[{"line_number":331,"context_line":"            if floatingip.get_network_type() \u003d\u003d \u0027vlan\u0027:"},{"line_number":332,"context_line":"                self._install_network_flows_for_ingress_vlan("},{"line_number":333,"context_line":"                    floatingip.get_segmentation_id(), local_network_id)"},{"line_number":334,"context_line":"            if floatingip.get_network_type() \u003d\u003d \u0027vxlan\u0027:"},{"line_number":335,"context_line":"                self._install_network_flows_for_ingress_tunnel("},{"line_number":336,"context_line":"                    floatingip.get_segmentation_id(), local_network_id)"},{"line_number":337,"context_line":"            if floatingip.get_network_type() \u003d\u003d \u0027flat\u0027:"}],"source_content_type":"text/x-python","patch_set":14,"id":"7aa08908_de5878fb","line":334,"updated":"2016-06-15 04:59:19.000000000","message":"what about other tunnel protocols? GRE, geneve, STT? Or are they not needed/supported here?","commit_id":"94be7599dea6927181a3209cb9680215eac7d196"},{"author":{"_account_id":18186,"name":"Denis Makogon","username":"denismakogon","inactive":true},"change_message_id":"5a1a655386b10168d81dc767a1a23b33adf31ca0","unresolved":false,"context_lines":[{"line_number":331,"context_line":"            if floatingip.get_network_type() \u003d\u003d \u0027vlan\u0027:"},{"line_number":332,"context_line":"                self._install_network_flows_for_ingress_vlan("},{"line_number":333,"context_line":"                    floatingip.get_segmentation_id(), local_network_id)"},{"line_number":334,"context_line":"            if floatingip.get_network_type() \u003d\u003d \u0027vxlan\u0027:"},{"line_number":335,"context_line":"                self._install_network_flows_for_ingress_tunnel("},{"line_number":336,"context_line":"                    floatingip.get_segmentation_id(), local_network_id)"},{"line_number":337,"context_line":"            if floatingip.get_network_type() \u003d\u003d \u0027flat\u0027:"}],"source_content_type":"text/x-python","patch_set":14,"id":"7aa08908_c9d2725b","line":334,"in_reply_to":"7aa08908_de5878fb","updated":"2016-06-15 11:11:42.000000000","message":"I would say that GRE, etc. are out of the scope here.","commit_id":"94be7599dea6927181a3209cb9680215eac7d196"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"671487ea4741d08c0c0c246d54be7d39222fd75e","unresolved":false,"context_lines":[{"line_number":368,"context_line":"            if floatingip.get_network_type() \u003d\u003d \u0027vlan\u0027:"},{"line_number":369,"context_line":"                self._del_network_flows_for_ingress_vlan("},{"line_number":370,"context_line":"                    floatingip.get_segmentation_id())"},{"line_number":371,"context_line":"            if floatingip.get_network_type() \u003d\u003d \u0027vxlan\u0027:"},{"line_number":372,"context_line":"                self._del_network_flows_for_ingress_tunnel("},{"line_number":373,"context_line":"                    floatingip.get_segmentation_id())"},{"line_number":374,"context_line":"            if floatingip.get_network_type() \u003d\u003d \u0027flat\u0027:"}],"source_content_type":"text/x-python","patch_set":14,"id":"7aa08908_5e4e4838","line":371,"updated":"2016-06-15 04:59:19.000000000","message":"@vikas that\u0027s a good point.\n@feipeng - what about other tunnel protocols? GRE, geneve, STT?","commit_id":"94be7599dea6927181a3209cb9680215eac7d196"},{"author":{"_account_id":20336,"name":"heshan","email":"shan.he@huawei.com","username":"shanhe"},"change_message_id":"c16616d54b166b4c747750f1e634c48540d1f7c5","unresolved":false,"context_lines":[{"line_number":379,"context_line":""},{"line_number":380,"context_line":"    def update_floatingip_status(self, floatingip, status):"},{"line_number":381,"context_line":"        floatingip.update_fip_status(status)"},{"line_number":382,"context_line":"        self.nb_api.update_floatingip(id\u003dfloatingip.get_id(),"},{"line_number":383,"context_line":"                                      topic\u003dfloatingip.get_topic(),"},{"line_number":384,"context_line":"                                      notify\u003dFalse,"},{"line_number":385,"context_line":"                                      status\u003dstatus)"}],"source_content_type":"text/x-python","patch_set":14,"id":"dada55a8_f38ec0ce","line":382,"range":{"start_line":382,"start_character":20,"end_line":382,"end_character":37},"updated":"2016-07-20 08:26:19.000000000","message":"neutron server should be care of this event, and update the status of fip in neutron db.","commit_id":"94be7599dea6927181a3209cb9680215eac7d196"}],"dragonflow/db/api_nb.py":[{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"11b1977c8da3f1b2af60443846ac751ba59f58f6","unresolved":false,"context_lines":[{"line_number":606,"context_line":"                            floatingip[\u0027topic\u0027])"},{"line_number":607,"context_line":"        if notify:"},{"line_number":608,"context_line":"            self._send_db_change_event(\u0027floatingip\u0027, id, \u0027set\u0027,"},{"line_number":609,"context_line":"                                       floatingip_json, floatingip[\u0027topic\u0027])"},{"line_number":610,"context_line":""},{"line_number":611,"context_line":"    def get_floatingip(self, id, topic\u003dNone):"},{"line_number":612,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_191dc273","line":609,"range":{"start_line":609,"start_character":23,"end_line":609,"end_character":32},"updated":"2016-05-28 08:05:02.000000000","message":"Please merge all these format differences before submitting.","commit_id":"b10c31d0c41dc0c5d0b1aee0272bff76c9b64583"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"11b1977c8da3f1b2af60443846ac751ba59f58f6","unresolved":false,"context_lines":[{"line_number":707,"context_line":"        )"},{"line_number":708,"context_line":""},{"line_number":709,"context_line":""},{"line_number":710,"context_line":"def get_network_property(self, networkid, topic\u003dNone):"},{"line_number":711,"context_line":"    res \u003d {}"},{"line_number":712,"context_line":"    try:"},{"line_number":713,"context_line":"        for lswitch_value in self.driver.get_all_entries(\u0027lswitch\u0027, topic):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_a0a1daab","line":710,"range":{"start_line":710,"start_character":4,"end_line":710,"end_character":24},"updated":"2016-05-28 08:05:02.000000000","message":"when this function get called?","commit_id":"b10c31d0c41dc0c5d0b1aee0272bff76c9b64583"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"3d099d0e363fb2eec60b512d1d2934fdb0cceac8","unresolved":false,"context_lines":[{"line_number":710,"context_line":"def get_network_property(self, networkid, topic\u003dNone):"},{"line_number":711,"context_line":"    res \u003d {}"},{"line_number":712,"context_line":"    try:"},{"line_number":713,"context_line":"        for lswitch_value in self.driver.get_all_entries(\u0027lswitch\u0027, topic):"},{"line_number":714,"context_line":"            lswitch \u003d LogicalSwitch(lswitch_value)"},{"line_number":715,"context_line":"            if networkid \u003d\u003d lswitch.get_id():"},{"line_number":716,"context_line":"                res[\u0027networkid\u0027] \u003d networkid"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_26550250","line":713,"range":{"start_line":713,"start_character":5,"end_line":713,"end_character":75},"updated":"2016-05-28 10:44:25.000000000","message":"Does it not support get entry by key?","commit_id":"b10c31d0c41dc0c5d0b1aee0272bff76c9b64583"},{"author":{"_account_id":9044,"name":"Will","email":"wangjian.ika@bytedance.com","username":"Will"},"change_message_id":"df176bfa20b1c4432b74bbb9d1b98fedc0933e04","unresolved":false,"context_lines":[{"line_number":730,"context_line":"        )"},{"line_number":731,"context_line":""},{"line_number":732,"context_line":""},{"line_number":733,"context_line":"def get_network_property(self, networkid, topic\u003dNone):"},{"line_number":734,"context_line":"    res \u003d {}"},{"line_number":735,"context_line":"    try:"},{"line_number":736,"context_line":"        for lswitch_value in self.driver.get_all_entries(\u0027lswitch\u0027, topic):"}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_89065f83","line":733,"range":{"start_line":733,"start_character":2,"end_line":733,"end_character":37},"updated":"2016-06-10 15:55:29.000000000","message":"One more question, when and where should this function be called","commit_id":"7e12695b7972524f6a4dc1c99cae5731f845fc8e"},{"author":{"_account_id":15967,"name":"vikas choudhary","email":"choudharyvikas16@gmail.com","username":"vikaschoudhary16"},"change_message_id":"8b54e151e47822b5bcf0e86b753e4f3199d53ad7","unresolved":false,"context_lines":[{"line_number":730,"context_line":"        )"},{"line_number":731,"context_line":""},{"line_number":732,"context_line":""},{"line_number":733,"context_line":"def get_network_property(self, networkid, topic\u003dNone):"},{"line_number":734,"context_line":"    res \u003d {}"},{"line_number":735,"context_line":"    try:"},{"line_number":736,"context_line":"        for lswitch_value in self.driver.get_all_entries(\u0027lswitch\u0027, topic):"}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_840e1d30","line":733,"range":{"start_line":733,"start_character":4,"end_line":733,"end_character":24},"updated":"2016-06-12 10:39:23.000000000","message":"how about renaming to something like \u0027get_network_properties\u0027 as there are more than one attributes in response? \"get_network_details\" sounds even better to me. \n\nThoughts?","commit_id":"7e12695b7972524f6a4dc1c99cae5731f845fc8e"},{"author":{"_account_id":9044,"name":"Will","email":"wangjian.ika@bytedance.com","username":"Will"},"change_message_id":"de3c3d0cf10831f48dc1aff9eb482b3b1ee0b32d","unresolved":false,"context_lines":[{"line_number":740,"context_line":"                res[\u0027network_type\u0027] \u003d lswitch.get_type()"},{"line_number":741,"context_line":"                res[\u0027segmentation_id\u0027] \u003d lswitch.get_segmentation()"},{"line_number":742,"context_line":"                return res"},{"line_number":743,"context_line":"    except Exception:"},{"line_number":744,"context_line":"        LOG.exception(_LE(\u0027Could not get network property %s\u0027), networkid)"},{"line_number":745,"context_line":"        return None"},{"line_number":746,"context_line":"@six.add_metaclass(abc.ABCMeta)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_a88eb924","line":743,"range":{"start_line":743,"start_character":11,"end_line":743,"end_character":20},"updated":"2016-06-10 15:50:16.000000000","message":"In what cases this will happen?","commit_id":"7e12695b7972524f6a4dc1c99cae5731f845fc8e"},{"author":{"_account_id":9044,"name":"Will","email":"wangjian.ika@bytedance.com","username":"Will"},"change_message_id":"de3c3d0cf10831f48dc1aff9eb482b3b1ee0b32d","unresolved":false,"context_lines":[{"line_number":742,"context_line":"                return res"},{"line_number":743,"context_line":"    except Exception:"},{"line_number":744,"context_line":"        LOG.exception(_LE(\u0027Could not get network property %s\u0027), networkid)"},{"line_number":745,"context_line":"        return None"},{"line_number":746,"context_line":"@six.add_metaclass(abc.ABCMeta)"},{"line_number":747,"context_line":"class DbStoreObject(object):"},{"line_number":748,"context_line":"    @abc.abstractmethod"}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_bd9a7dc3","line":745,"updated":"2016-06-10 15:50:16.000000000","message":"two space lines are needed","commit_id":"7e12695b7972524f6a4dc1c99cae5731f845fc8e"},{"author":{"_account_id":9044,"name":"Will","email":"wangjian.ika@bytedance.com","username":"Will"},"change_message_id":"de3c3d0cf10831f48dc1aff9eb482b3b1ee0b32d","unresolved":false,"context_lines":[{"line_number":807,"context_line":"        return self.lswitch[\u0027topic\u0027]"},{"line_number":808,"context_line":""},{"line_number":809,"context_line":"    def get_version(self):"},{"line_number":810,"context_line":"        return self.lswitch[\u0027version\u0027]"},{"line_number":811,"context_line":"    def get_type(self):"},{"line_number":812,"context_line":"        return self.lswitch[\u0027network_type\u0027]"},{"line_number":813,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_28b0098b","line":810,"range":{"start_line":810,"start_character":8,"end_line":810,"end_character":38},"updated":"2016-06-10 15:50:16.000000000","message":"space line","commit_id":"7e12695b7972524f6a4dc1c99cae5731f845fc8e"}],"dragonflow/tests/unit/test_floatingIp_vlan.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"2d89b2cbc236985647a7e1a0b6a0d6ce8eba63ba","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        self.DNATApp \u003d DNATApp(api\u003dmock.Mock(),vswitch_api\u003d\u0027test_vswitch_api\u0027,nb_api\u003d\u0027test_nb_api\u0027)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def test_install_network_flows_for_ingress_vlan(self):"},{"line_number":31,"context_line":"        result \u003d self.DNATApp._install_network_flows_for_ingress_vlan(\u00272\u0027, \u00272\u0027)"},{"line_number":32,"context_line":"        self.assertEqual(result, None)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def test_del_network_flows_for_ingress_vlan(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_bde1cb00","line":31,"updated":"2016-05-30 17:40:26.000000000","message":"These methods have side effects. Consider verifying their behaviour in the tests. (You may need fullstack tests for this, since they require a connection to OVS).\n\nThis repeats throughout this file.\n\nAdditionally, some of these tests fail due to syntactic errors.","commit_id":"957cf9e3187bab26948c8417ac6b66f3c44a9fb8"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"74a5b126ba479571f1eb7d67cc35710851e5489c","unresolved":false,"context_lines":[{"line_number":26,"context_line":"                               vswitch_api\u003d\u0027test_vswitch_api\u0027,"},{"line_number":27,"context_line":"                               nb_api\u003d\u0027test_nb_api\u0027)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def test_install_network_flows_for_ingress_vlan(self):"},{"line_number":30,"context_line":"        result \u003d self.DNATApp._install_network_flows_for_ingress_vlan(\u00272\u0027, \u00272\u0027)"},{"line_number":31,"context_line":"        self.assertEqual(result, None)"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9abb7d3a_af3acc96","line":29,"updated":"2016-06-01 12:44:43.000000000","message":"The actual behaviour of the methods are not tested in these tests. Consider removing them, and adding full-stack tests (possibly in another patch, since it requires ML2), to very the correct behaviour occurs.","commit_id":"19a45398b7a28d7b86e6b8f64d619378445b2949"}]}
