)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"22571dbf66c5c9ec9b4e77a51660ffaeff3bbd6a","unresolved":false,"context_lines":[{"line_number":10,"context_line":"port updates to take effect. In particular, events with missing data"},{"line_number":11,"context_line":"(ofport, type). Moving this logic to vswitch_impl because it makes a lot"},{"line_number":12,"context_line":"of sense to hold off those events even for apps that consume OvsPorts."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I0bc8053d6fb3ed277028cf6bce9c6a0269e601af"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"df87a7cf_0eebea12","line":13,"updated":"2017-12-07 11:55:26.000000000","message":"please link to relevant issue on launchpad","commit_id":"04bf5c367e69122796929ec523ef3e5af60bd2d9"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"71212c77d4fbf28dca7861bc843228a8d214f905","unresolved":false,"context_lines":[{"line_number":10,"context_line":"port updates to take effect. In particular, events with missing data"},{"line_number":11,"context_line":"(ofport, type). Moving this logic to vswitch_impl because it makes a lot"},{"line_number":12,"context_line":"of sense to hold off those events even for apps that consume OvsPorts."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I0bc8053d6fb3ed277028cf6bce9c6a0269e601af"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"df87a7cf_cf20699e","line":13,"in_reply_to":"df87a7cf_0eebea12","updated":"2017-12-09 17:26:58.000000000","message":"Done","commit_id":"04bf5c367e69122796929ec523ef3e5af60bd2d9"}],"dragonflow/ovsdb/impl_idl.py":[{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"96f98276d4d5dcc1d2f10b1a3863093550b3e776","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        return False"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    ofport \u003d ovsport.ofport"},{"line_number":86,"context_line":"    if (ofport is None) or (ofport \u003c 0):"},{"line_number":87,"context_line":"        return False"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    if (ovsport.type \u003d\u003d constants.OVS_VM_INTERFACE and"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_be25190b","line":86,"updated":"2017-11-28 12:36:22.000000000","message":"why do you removed the condition of (port_type is None) ?","commit_id":"e6053abf89db4f00e96e2a65894aaf736ada3f89"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"1cbbee6f47cc102f433aec2f77c876ab03427b9d","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        return False"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    ofport \u003d ovsport.ofport"},{"line_number":86,"context_line":"    if (ofport is None) or (ofport \u003c 0):"},{"line_number":87,"context_line":"        return False"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    if (ovsport.type \u003d\u003d constants.OVS_VM_INTERFACE and"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_014b2887","line":86,"in_reply_to":"ff82abbf_be25190b","updated":"2017-12-01 09:03:22.000000000","message":"I think line 79 covers it.","commit_id":"e6053abf89db4f00e96e2a65894aaf736ada3f89"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"0b9853a1aa2dd192a0c393562ad9e654e56e3baf","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        local_interface \u003d ovs.OvsPort.from_idl_row(row)"},{"line_number":108,"context_line":"        action \u003d event if event !\u003d \u0027update\u0027 else \u0027set\u0027"},{"line_number":109,"context_line":"        if _is_ovsport_update_valid(local_interface):"},{"line_number":110,"context_line":"            self.nb_api.db_change_callback("},{"line_number":111,"context_line":"                local_interface.table_name,"},{"line_number":112,"context_line":"                local_interface.id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_51a2699c","line":109,"range":{"start_line":109,"start_character":11,"end_line":109,"end_character":35},"updated":"2017-12-03 10:29:45.000000000","message":"I think that now when a VM is deleted, the interface information you get here is incomplete, so the update message is not sent and other registrars do not get it (other than topology)","commit_id":"e6053abf89db4f00e96e2a65894aaf736ada3f89"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"34133424a8f6db81c7ae1e4399704ca71e9eeae7","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        local_interface \u003d ovs.OvsPort.from_idl_row(row)"},{"line_number":108,"context_line":"        action \u003d event if event !\u003d \u0027update\u0027 else \u0027set\u0027"},{"line_number":109,"context_line":"        if _is_ovsport_update_valid(local_interface):"},{"line_number":110,"context_line":"            self.nb_api.db_change_callback("},{"line_number":111,"context_line":"                local_interface.table_name,"},{"line_number":112,"context_line":"                local_interface.id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_cc0e858c","line":109,"range":{"start_line":109,"start_character":11,"end_line":109,"end_character":35},"in_reply_to":"df87a7cf_51a2699c","updated":"2017-12-06 15:57:24.000000000","message":"Thanks, will take a look","commit_id":"e6053abf89db4f00e96e2a65894aaf736ada3f89"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"9cd141e39164d8c32b563d7a621ab74f88779f62","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            ovsport.lport is None):"},{"line_number":87,"context_line":"        return False"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    if action \u003d\u003d \u0027set\u0027:"},{"line_number":90,"context_line":"        # No need for \u0027updated\u0027 event if the ofport is being deleted"},{"line_number":91,"context_line":"        ofport \u003d ovsport.ofport"},{"line_number":92,"context_line":"        if (ofport is None) or (ofport \u003c 0):"}],"source_content_type":"text/x-python","patch_set":4,"id":"df87a7cf_f04ea96d","line":89,"updated":"2017-12-07 10:12:21.000000000","message":"how do you know the port is being deleted? AFAIU from the code, it is being updated..","commit_id":"04bf5c367e69122796929ec523ef3e5af60bd2d9"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"71212c77d4fbf28dca7861bc843228a8d214f905","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            ovsport.lport is None):"},{"line_number":87,"context_line":"        return False"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    if action \u003d\u003d \u0027set\u0027:"},{"line_number":90,"context_line":"        # No need for \u0027updated\u0027 event if the ofport is being deleted"},{"line_number":91,"context_line":"        ofport \u003d ovsport.ofport"},{"line_number":92,"context_line":"        if (ofport is None) or (ofport \u003c 0):"}],"source_content_type":"text/x-python","patch_set":4,"id":"df87a7cf_4f3459de","line":89,"in_reply_to":"df87a7cf_f04ea96d","updated":"2017-12-09 17:26:58.000000000","message":"ofport becomes -1 when port becomes unbound/removed, but it is not gone yet. A delete event will follow.","commit_id":"04bf5c367e69122796929ec523ef3e5af60bd2d9"}],"dragonflow/tests/unit/test_topology.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"8880b0009c1732d0acd306e8362b87bfa0bd31ab","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        self.fake_invalid_ovs_port.ofport \u003d -1"},{"line_number":110,"context_line":"        self.controller.update.reset_mock()"},{"line_number":111,"context_line":"        self.topology.ovs_port_updated(self.fake_invalid_ovs_port)"},{"line_number":112,"context_line":"        self.controller.update.assert_not_called()"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def test_vm_online_after_topology_pulled(self):"},{"line_number":115,"context_line":"        self.nb_api.get_all.side_effect \u003d nb_api_get_all_func("}],"source_content_type":"text/x-python","patch_set":1,"id":"1f485f77_7b6f1192","side":"PARENT","line":112,"updated":"2017-11-15 04:49:19.000000000","message":"Don\u0027t we have a test ovsdb where this thing can move to?","commit_id":"30ad8ff23c862ece21e26ba51e3a763482993a44"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"93d79d9db81f7712fef3276404cc6fef838c014f","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        self.fake_invalid_ovs_port.ofport \u003d -1"},{"line_number":110,"context_line":"        self.controller.update.reset_mock()"},{"line_number":111,"context_line":"        self.topology.ovs_port_updated(self.fake_invalid_ovs_port)"},{"line_number":112,"context_line":"        self.controller.update.assert_not_called()"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def test_vm_online_after_topology_pulled(self):"},{"line_number":115,"context_line":"        self.nb_api.get_all.side_effect \u003d nb_api_get_all_func("}],"source_content_type":"text/x-python","patch_set":1,"id":"ff82abbf_cb5fbd0c","side":"PARENT","line":112,"in_reply_to":"1f485f77_7b6f1192","updated":"2017-11-20 05:46:23.000000000","message":"+1","commit_id":"30ad8ff23c862ece21e26ba51e3a763482993a44"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"534ee948aa1987d8528e11eeda1aa7010f67d11f","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        self.fake_invalid_ovs_port.ofport \u003d -1"},{"line_number":110,"context_line":"        self.controller.update.reset_mock()"},{"line_number":111,"context_line":"        self.topology.ovs_port_updated(self.fake_invalid_ovs_port)"},{"line_number":112,"context_line":"        self.controller.update.assert_not_called()"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def test_vm_online_after_topology_pulled(self):"},{"line_number":115,"context_line":"        self.nb_api.get_all.side_effect \u003d nb_api_get_all_func("}],"source_content_type":"text/x-python","patch_set":1,"id":"ff82abbf_1a91df47","side":"PARENT","line":112,"in_reply_to":"ff82abbf_cb5fbd0c","updated":"2017-11-25 20:02:30.000000000","message":"Will move","commit_id":"30ad8ff23c862ece21e26ba51e3a763482993a44"}]}
