)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9b49394683afa8a2e9018e347d8fb5cc6468ffbd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"32c6f30c_badcb0f2","updated":"2022-04-20 12:26:06.000000000","message":"NOTE: now instead of migration-destination, set requested-chassis\u003dsrc,dst\n","commit_id":"acf086320d39f2352a78e53c2bed0f723b5d5c46"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"fe8365d080ffe3c53e447a377266553dcfc5e400","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ca720879_6877edaa","updated":"2022-04-20 14:20:11.000000000","message":"New branch location with WIP implementation: https://github.com/booxter/ovn/tree/live_migration_list_wip","commit_id":"acf086320d39f2352a78e53c2bed0f723b5d5c46"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a290112f770ed07707f0047d3d79700a68b359a3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"36469ac0_b438b2e1","updated":"2022-06-02 02:52:48.000000000","message":"gotta check if migration tests are executed and pass with the patch","commit_id":"4401e4f30c1c3666b9f30e39439bfc19acbe641f"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0a4f5d2b260df4169e85c51a68c6116a0b588f1b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"f470cd9b_aa0449fb","updated":"2022-06-08 18:15:44.000000000","message":"recheck neutron-functional-with-uwsgi\n\ntest case validating ip_lib behavior failed, unrelated to the patch","commit_id":"64769d03cca79af7983e0f610b33bed740cdb192"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"49b6d7162d8ba24ae0eac63a3e9d73892115eba1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"e942585f_1b75a26e","updated":"2022-06-30 18:43:40.000000000","message":"Please see my comments, I think we can prevent future CI breakage or I am missing something.","commit_id":"20ca68eabad6526e4e7866d902baf88890c02ea9"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"caccffd416b6286e8022b6728300cbb02e3de9de","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"3062b177_d2dfe027","updated":"2022-07-01 13:09:08.000000000","message":"Thanks for implementing the code in OVN and Neutron","commit_id":"35fade3b5fbe898885338cbe74843e903d4e8a87"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1b236249a8ee98e9ac77e650608c06f57b297fc3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"40e8f5a5_626eeda2","updated":"2022-07-08 06:13:44.000000000","message":"sorry for being late to this review, but IMO it would be good to have release note related to that new feature. Wdyt?","commit_id":"35fade3b5fbe898885338cbe74843e903d4e8a87"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"40c30afb5be6eb7966982be612183e902f7cade9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"5043dcad_f978a689","in_reply_to":"40e8f5a5_626eeda2","updated":"2022-07-08 07:08:51.000000000","message":"Done","commit_id":"35fade3b5fbe898885338cbe74843e903d4e8a87"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"fa95cdbd379e1dee53f3281e5fbfe56f27a1d7a1","unresolved":true,"context_lines":[{"line_number":305,"context_line":"        migration_destination \u003d port.get(portbindings.PROFILE, {}).get("},{"line_number":306,"context_line":"            ovn_const.MIGRATING_ATTR)"},{"line_number":307,"context_line":"        if migration_destination:"},{"line_number":308,"context_line":"            options[\u0027migration-destination\u0027] \u003d migration_destination"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        # TODO(lucasagomes): Enable the mcast_flood_reports by default,"},{"line_number":311,"context_line":"        # according to core OVN developers it shouldn\u0027t cause any harm"}],"source_content_type":"text/x-python","patch_set":1,"id":"290b2fc6_16f65ba4","line":308,"updated":"2022-04-20 12:24:35.000000000","message":"now instead of migration-destination, set requested-chassis\u003dsrc,dst","commit_id":"acf086320d39f2352a78e53c2bed0f723b5d5c46"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"01a398b8fd1482cc9c584273ce031243f67d19dc","unresolved":true,"context_lines":[{"line_number":305,"context_line":"        migration_destination \u003d port.get(portbindings.PROFILE, {}).get("},{"line_number":306,"context_line":"            ovn_const.MIGRATING_ATTR)"},{"line_number":307,"context_line":"        if migration_destination:"},{"line_number":308,"context_line":"            options[\u0027migration-destination\u0027] \u003d migration_destination"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        # TODO(lucasagomes): Enable the mcast_flood_reports by default,"},{"line_number":311,"context_line":"        # according to core OVN developers it shouldn\u0027t cause any harm"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfc858d5_6e602b00","line":308,"in_reply_to":"290b2fc6_16f65ba4","updated":"2022-04-20 12:29:07.000000000","message":"Also add activation-strategy\u003drarp as an option to wait for RARP","commit_id":"acf086320d39f2352a78e53c2bed0f723b5d5c46"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"5b83b7ba4e4c0ea5ec0c54c323c1d1d8850d76e8","unresolved":false,"context_lines":[{"line_number":305,"context_line":"        migration_destination \u003d port.get(portbindings.PROFILE, {}).get("},{"line_number":306,"context_line":"            ovn_const.MIGRATING_ATTR)"},{"line_number":307,"context_line":"        if migration_destination:"},{"line_number":308,"context_line":"            options[\u0027migration-destination\u0027] \u003d migration_destination"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        # TODO(lucasagomes): Enable the mcast_flood_reports by default,"},{"line_number":311,"context_line":"        # according to core OVN developers it shouldn\u0027t cause any harm"}],"source_content_type":"text/x-python","patch_set":1,"id":"78a862d6_4f0f005f","line":308,"in_reply_to":"bfc858d5_6e602b00","updated":"2022-06-24 22:44:31.000000000","message":"Done","commit_id":"acf086320d39f2352a78e53c2bed0f723b5d5c46"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a336b88a555f5da5aa9feb8f082be52dd8048a70","unresolved":true,"context_lines":[{"line_number":366,"context_line":"        # If OVN supports multi-chassis port bindings, use it for live"},{"line_number":367,"context_line":"        # migration to asynchronously configure destination port while VM is"},{"line_number":368,"context_line":"        # migrating"},{"line_number":369,"context_line":"        if self._sb_idl.schema_has_column(\u0027Port_Binding\u0027,"},{"line_number":370,"context_line":"                                          \u0027additional_chassis\u0027):"},{"line_number":371,"context_line":"            mdst \u003d port.get("},{"line_number":372,"context_line":"                portbindings.PROFILE, {}).get("}],"source_content_type":"text/x-python","patch_set":3,"id":"c398c753_0268c963","line":369,"range":{"start_line":369,"start_character":24,"end_line":369,"end_character":41},"updated":"2022-06-02 07:23:00.000000000","message":"We don\u0027t have this method implemented in ``Backend`` class [1]\n\nThis could be something like:\n\n    @classmethod\n    def schema_has_table(cls, table_name, column_name):\n        try:\n            column_name in cls.schema_helper.schema_json[\n                \u0027tables\u0027][table_name][\u0027columns\u0027]\n        except KeyError:\n            return False\n\n[1]https://github.com/openstack/neutron/blob/ae66417cee7af1eb2692353282f5c9b1c9c57947/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/impl_idl_ovn.py#L163-L164","commit_id":"4401e4f30c1c3666b9f30e39439bfc19acbe641f"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"5b83b7ba4e4c0ea5ec0c54c323c1d1d8850d76e8","unresolved":false,"context_lines":[{"line_number":366,"context_line":"        # If OVN supports multi-chassis port bindings, use it for live"},{"line_number":367,"context_line":"        # migration to asynchronously configure destination port while VM is"},{"line_number":368,"context_line":"        # migrating"},{"line_number":369,"context_line":"        if self._sb_idl.schema_has_column(\u0027Port_Binding\u0027,"},{"line_number":370,"context_line":"                                          \u0027additional_chassis\u0027):"},{"line_number":371,"context_line":"            mdst \u003d port.get("},{"line_number":372,"context_line":"                portbindings.PROFILE, {}).get("}],"source_content_type":"text/x-python","patch_set":3,"id":"03b3c4a2_47a0169b","line":369,"range":{"start_line":369,"start_character":24,"end_line":369,"end_character":41},"in_reply_to":"c398c753_0268c963","updated":"2022-06-24 22:44:31.000000000","message":"Done","commit_id":"4401e4f30c1c3666b9f30e39439bfc19acbe641f"}],"neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/test_mech_driver.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"49b6d7162d8ba24ae0eac63a3e9d73892115eba1","unresolved":true,"context_lines":[{"line_number":1852,"context_line":"            \u0027fixed_ips\u0027: [],"},{"line_number":1853,"context_line":"            portbindings.HOST_ID: \u0027fake-src\u0027,"},{"line_number":1854,"context_line":"            portbindings.PROFILE: {"},{"line_number":1855,"context_line":"                ovn_const.MIGRATING_ATTR: \u0027fake-dest\u0027,"},{"line_number":1856,"context_line":"            }"},{"line_number":1857,"context_line":"        }"},{"line_number":1858,"context_line":"        options \u003d self.mech_driver._ovn_client._get_port_options(port)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1d20bb28_91e3f4ee","line":1855,"updated":"2022-06-30 18:43:40.000000000","message":"It would be good to have another test case where the migrating_attr is missing.","commit_id":"20ca68eabad6526e4e7866d902baf88890c02ea9"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"c0150e985f9f2be401d5649186e5bae79e8a19fb","unresolved":false,"context_lines":[{"line_number":1852,"context_line":"            \u0027fixed_ips\u0027: [],"},{"line_number":1853,"context_line":"            portbindings.HOST_ID: \u0027fake-src\u0027,"},{"line_number":1854,"context_line":"            portbindings.PROFILE: {"},{"line_number":1855,"context_line":"                ovn_const.MIGRATING_ATTR: \u0027fake-dest\u0027,"},{"line_number":1856,"context_line":"            }"},{"line_number":1857,"context_line":"        }"},{"line_number":1858,"context_line":"        options \u003d self.mech_driver._ovn_client._get_port_options(port)"}],"source_content_type":"text/x-python","patch_set":5,"id":"fb72ff08_bab4cc93","line":1855,"in_reply_to":"1d20bb28_91e3f4ee","updated":"2022-06-30 19:32:56.000000000","message":"Done","commit_id":"20ca68eabad6526e4e7866d902baf88890c02ea9"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"49b6d7162d8ba24ae0eac63a3e9d73892115eba1","unresolved":true,"context_lines":[{"line_number":1854,"context_line":"            portbindings.PROFILE: {"},{"line_number":1855,"context_line":"                ovn_const.MIGRATING_ATTR: \u0027fake-dest\u0027,"},{"line_number":1856,"context_line":"            }"},{"line_number":1857,"context_line":"        }"},{"line_number":1858,"context_line":"        options \u003d self.mech_driver._ovn_client._get_port_options(port)"},{"line_number":1859,"context_line":"        self.assertNotIn(\u0027activation-strategy\u0027, options.options)"},{"line_number":1860,"context_line":"        self.assertEqual(\u0027fake-src\u0027, options.options[\u0027requested-chassis\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f3e0e1d_493fbf0e","line":1857,"updated":"2022-06-30 18:43:40.000000000","message":"Given that this depends on the used OVN version, I think it would be good to also mock is_col_present and set it to False because once OVN is updated then this patch is gonna start failing.","commit_id":"20ca68eabad6526e4e7866d902baf88890c02ea9"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"c0150e985f9f2be401d5649186e5bae79e8a19fb","unresolved":false,"context_lines":[{"line_number":1854,"context_line":"            portbindings.PROFILE: {"},{"line_number":1855,"context_line":"                ovn_const.MIGRATING_ATTR: \u0027fake-dest\u0027,"},{"line_number":1856,"context_line":"            }"},{"line_number":1857,"context_line":"        }"},{"line_number":1858,"context_line":"        options \u003d self.mech_driver._ovn_client._get_port_options(port)"},{"line_number":1859,"context_line":"        self.assertNotIn(\u0027activation-strategy\u0027, options.options)"},{"line_number":1860,"context_line":"        self.assertEqual(\u0027fake-src\u0027, options.options[\u0027requested-chassis\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"82890872_a823d98a","line":1857,"in_reply_to":"5f3e0e1d_493fbf0e","updated":"2022-06-30 19:32:56.000000000","message":"_sb_idl is FakeOvsdbSbOvnIdl and has the entry point mocked as follows:\n\n        self.is_col_present \u003d mock.Mock()\n        self.is_col_present.return_value \u003d False\n\nI don\u0027t think this will break on upgrade of ovsdbapp / python bindings.","commit_id":"20ca68eabad6526e4e7866d902baf88890c02ea9"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"05a02e6a132788dd5bd48acf5e6107aeeac1ebab","unresolved":false,"context_lines":[{"line_number":1854,"context_line":"            portbindings.PROFILE: {"},{"line_number":1855,"context_line":"                ovn_const.MIGRATING_ATTR: \u0027fake-dest\u0027,"},{"line_number":1856,"context_line":"            }"},{"line_number":1857,"context_line":"        }"},{"line_number":1858,"context_line":"        options \u003d self.mech_driver._ovn_client._get_port_options(port)"},{"line_number":1859,"context_line":"        self.assertNotIn(\u0027activation-strategy\u0027, options.options)"},{"line_number":1860,"context_line":"        self.assertEqual(\u0027fake-src\u0027, options.options[\u0027requested-chassis\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"61080306_2109815c","line":1857,"in_reply_to":"82890872_a823d98a","updated":"2022-07-01 18:44:47.000000000","message":"I missed that, thanks for the explanation.","commit_id":"20ca68eabad6526e4e7866d902baf88890c02ea9"}]}
