)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"6ffd90c00231a3feb610802656378d4b7bd2a0a2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5261f12f_3cf6b79d","updated":"2024-02-02 10:01:51.000000000","message":"this probably requires a launchpad bug","commit_id":"13374a72674053b1f31c78f8232d0b7b59124f6f"},{"author":{"_account_id":25468,"name":"Michel Nederlof","email":"michel@nederlof.info","username":"pellucid"},"change_message_id":"36872af8ac1a97afe2e27fa460d2ff9cdfb6d1dc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e1ef60eb_de3615e7","in_reply_to":"5261f12f_3cf6b79d","updated":"2024-02-02 10:26:51.000000000","message":"I will create one.","commit_id":"13374a72674053b1f31c78f8232d0b7b59124f6f"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"adf7793cf1beffe9f7b5ce7e096f6e42279a9866","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"71fa2413_f1ea8c9b","updated":"2024-02-22 09:20:10.000000000","message":"code wise it looks ok, just a couple of nits. Also, please add some information about this in the NB driver documentation","commit_id":"2b8e41e5218fe526a4941b6f59c2debe81960573"},{"author":{"_account_id":25468,"name":"Michel Nederlof","email":"michel@nederlof.info","username":"pellucid"},"change_message_id":"22d8a306a22a5d8c730d13ebddcbc4004ca635e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"63a11474_7d55597e","updated":"2024-02-26 11:01:31.000000000","message":"Added some documentation too.","commit_id":"905c8bc05124db5efb486035a583acbe74eb2120"}],"ovn_bgp_agent/drivers/openstack/nb_ovn_bgp_driver.py":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"6ffd90c00231a3feb610802656378d4b7bd2a0a2","unresolved":true,"context_lines":[{"line_number":671,"context_line":"                         subnet_info[\u0027network\u0027], gateway_router)"},{"line_number":672,"context_line":"                return"},{"line_number":673,"context_line":""},{"line_number":674,"context_line":"            if len(set(ips)) !\u003d len(ips_without_snat):"},{"line_number":675,"context_line":"                LOG.info(\u0027When exposing subnet %s for router %s, these ips \u0027"},{"line_number":676,"context_line":"                         \u0027were removed for SNAT: %s\u0027, subnet_info[\u0027network\u0027],"},{"line_number":677,"context_line":"                         gateway_router, set(ips) - ips_without_snat)"},{"line_number":678,"context_line":""},{"line_number":679,"context_line":"        if not self._expose_router_lsp(ips, subnet_info, cr_lrp_info):"},{"line_number":680,"context_line":"            LOG.debug(\"Something happen while exposing the Subnet CIRDs %s \""}],"source_content_type":"text/x-python","patch_set":3,"id":"c0a2adb6_077d5561","line":677,"range":{"start_line":674,"start_character":0,"end_line":677,"end_character":69},"updated":"2024-02-02 10:01:51.000000000","message":"I still don\u0027t get this. This is just logging info, and then the IPs used in the following lines are using ips, instead of ips_without_snat, which means you would expose it regardless of this.\n\nOn the other hand, as the snat is at router port level,  amd tjos os abpit exposing a subnet, won\u0027t this be either expose or not expose, instead of exposing some IPs and not others?","commit_id":"13374a72674053b1f31c78f8232d0b7b59124f6f"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"adf7793cf1beffe9f7b5ce7e096f6e42279a9866","unresolved":false,"context_lines":[{"line_number":671,"context_line":"                         subnet_info[\u0027network\u0027], gateway_router)"},{"line_number":672,"context_line":"                return"},{"line_number":673,"context_line":""},{"line_number":674,"context_line":"            if len(set(ips)) !\u003d len(ips_without_snat):"},{"line_number":675,"context_line":"                LOG.info(\u0027When exposing subnet %s for router %s, these ips \u0027"},{"line_number":676,"context_line":"                         \u0027were removed for SNAT: %s\u0027, subnet_info[\u0027network\u0027],"},{"line_number":677,"context_line":"                         gateway_router, set(ips) - ips_without_snat)"},{"line_number":678,"context_line":""},{"line_number":679,"context_line":"        if not self._expose_router_lsp(ips, subnet_info, cr_lrp_info):"},{"line_number":680,"context_line":"            LOG.debug(\"Something happen while exposing the Subnet CIRDs %s \""}],"source_content_type":"text/x-python","patch_set":3,"id":"7ed509b5_62b34551","line":677,"range":{"start_line":674,"start_character":0,"end_line":677,"end_character":69},"in_reply_to":"52108cf6_a295d1c5","updated":"2024-02-22 09:20:10.000000000","message":"Done","commit_id":"13374a72674053b1f31c78f8232d0b7b59124f6f"},{"author":{"_account_id":25468,"name":"Michel Nederlof","email":"michel@nederlof.info","username":"pellucid"},"change_message_id":"36872af8ac1a97afe2e27fa460d2ff9cdfb6d1dc","unresolved":true,"context_lines":[{"line_number":671,"context_line":"                         subnet_info[\u0027network\u0027], gateway_router)"},{"line_number":672,"context_line":"                return"},{"line_number":673,"context_line":""},{"line_number":674,"context_line":"            if len(set(ips)) !\u003d len(ips_without_snat):"},{"line_number":675,"context_line":"                LOG.info(\u0027When exposing subnet %s for router %s, these ips \u0027"},{"line_number":676,"context_line":"                         \u0027were removed for SNAT: %s\u0027, subnet_info[\u0027network\u0027],"},{"line_number":677,"context_line":"                         gateway_router, set(ips) - ips_without_snat)"},{"line_number":678,"context_line":""},{"line_number":679,"context_line":"        if not self._expose_router_lsp(ips, subnet_info, cr_lrp_info):"},{"line_number":680,"context_line":"            LOG.debug(\"Something happen while exposing the Subnet CIRDs %s \""}],"source_content_type":"text/x-python","patch_set":3,"id":"52108cf6_a295d1c5","line":677,"range":{"start_line":674,"start_character":0,"end_line":677,"end_character":69},"in_reply_to":"c0a2adb6_077d5561","updated":"2024-02-02 10:26:51.000000000","message":"Ah yes, i get what you mean, i forgot to overwrite the `ips`.\n\n`ips \u003d list(ips_without_snat)`","commit_id":"13374a72674053b1f31c78f8232d0b7b59124f6f"}],"ovn_bgp_agent/tests/unit/drivers/openstack/test_nb_ovn_bgp_driver.py":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"adf7793cf1beffe9f7b5ce7e096f6e42279a9866","unresolved":true,"context_lines":[{"line_number":935,"context_line":"        self.nb_bgp_driver.expose_subnet(ips, subnet_info)"},{"line_number":936,"context_line":"        mock_expose_router_lsp.assert_not_called()"},{"line_number":937,"context_line":""},{"line_number":938,"context_line":"    def test_expose_subnet_require_snat_disabled(self, partial_continue\u003dFalse):"},{"line_number":939,"context_line":""},{"line_number":940,"context_line":"        CONF.set_override(\u0027require_snat_disabled_for_tenant_networks\u0027, True)"},{"line_number":941,"context_line":"        self.addCleanup(CONF.clear_override,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9e6c8e74_3c5f0b3a","line":938,"range":{"start_line":938,"start_character":7,"end_line":938,"end_character":48},"updated":"2024-02-22 09:20:10.000000000","message":"this is auxiliar method, perhaps start it with _ (_test_expose_sub...)","commit_id":"2b8e41e5218fe526a4941b6f59c2debe81960573"},{"author":{"_account_id":25468,"name":"Michel Nederlof","email":"michel@nederlof.info","username":"pellucid"},"change_message_id":"22d8a306a22a5d8c730d13ebddcbc4004ca635e6","unresolved":false,"context_lines":[{"line_number":935,"context_line":"        self.nb_bgp_driver.expose_subnet(ips, subnet_info)"},{"line_number":936,"context_line":"        mock_expose_router_lsp.assert_not_called()"},{"line_number":937,"context_line":""},{"line_number":938,"context_line":"    def test_expose_subnet_require_snat_disabled(self, partial_continue\u003dFalse):"},{"line_number":939,"context_line":""},{"line_number":940,"context_line":"        CONF.set_override(\u0027require_snat_disabled_for_tenant_networks\u0027, True)"},{"line_number":941,"context_line":"        self.addCleanup(CONF.clear_override,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1544b3f7_5c2a67c9","line":938,"range":{"start_line":938,"start_character":7,"end_line":938,"end_character":48},"in_reply_to":"9e6c8e74_3c5f0b3a","updated":"2024-02-26 11:01:31.000000000","message":"Done","commit_id":"2b8e41e5218fe526a4941b6f59c2debe81960573"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"adf7793cf1beffe9f7b5ce7e096f6e42279a9866","unresolved":true,"context_lines":[{"line_number":989,"context_line":"                              mock.call([\u0027192.168.0.6\u0027], ips_info1)]"},{"line_number":990,"context_line":"            mock_expose_remote_ip.assert_has_calls(expected_calls)"},{"line_number":991,"context_line":""},{"line_number":992,"context_line":"    def test_expose_subnet_require_snat_disabled_partial_continue(self):"},{"line_number":993,"context_line":"        # Setup get_active_lsp for partial_continue scenario"},{"line_number":994,"context_line":"        port0 \u003d utils.create_row("},{"line_number":995,"context_line":"            type\u003dconstants.OVN_VM_VIF_PORT_TYPE,"},{"line_number":996,"context_line":"            addresses\u003d[\u0027mac 192.168.0.5\u0027],"},{"line_number":997,"context_line":"            external_ids\u003d{"},{"line_number":998,"context_line":"                constants.OVN_CIDRS_EXT_ID_KEY: \"192.168.0.5/24\","},{"line_number":999,"context_line":"                constants.OVN_LS_NAME_EXT_ID_KEY: \u0027network1\u0027"},{"line_number":1000,"context_line":"            })"},{"line_number":1001,"context_line":"        port1 \u003d utils.create_row("},{"line_number":1002,"context_line":"            type\u003dconstants.OVN_VIRTUAL_VIF_PORT_TYPE,"},{"line_number":1003,"context_line":"            addresses\u003d[\u0027mac 192.168.0.6\u0027],"},{"line_number":1004,"context_line":"            external_ids\u003d{"},{"line_number":1005,"context_line":"                constants.OVN_CIDRS_EXT_ID_KEY: \"192.168.0.6/24\","},{"line_number":1006,"context_line":"                constants.OVN_LS_NAME_EXT_ID_KEY: \u0027network1\u0027"},{"line_number":1007,"context_line":"            })"},{"line_number":1008,"context_line":"        self.nb_idl.get_active_lsp.return_value \u003d [port0, port1]"},{"line_number":1009,"context_line":""},{"line_number":1010,"context_line":"        self.test_expose_subnet_require_snat_disabled(partial_continue\u003dTrue)"},{"line_number":1011,"context_line":""},{"line_number":1012,"context_line":"    def test_withdraw_subnet(self):"},{"line_number":1013,"context_line":"        ips \u003d [\u002710.0.0.1/24\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"85b4e5ee_7d9b890f","line":1010,"range":{"start_line":992,"start_character":2,"end_line":1010,"end_character":76},"updated":"2024-02-22 09:20:10.000000000","message":"should you add another with partial_continue\u003dFalse?","commit_id":"2b8e41e5218fe526a4941b6f59c2debe81960573"},{"author":{"_account_id":25468,"name":"Michel Nederlof","email":"michel@nederlof.info","username":"pellucid"},"change_message_id":"96de9d503364387a4df8391f091e308e0e116a49","unresolved":true,"context_lines":[{"line_number":989,"context_line":"                              mock.call([\u0027192.168.0.6\u0027], ips_info1)]"},{"line_number":990,"context_line":"            mock_expose_remote_ip.assert_has_calls(expected_calls)"},{"line_number":991,"context_line":""},{"line_number":992,"context_line":"    def test_expose_subnet_require_snat_disabled_partial_continue(self):"},{"line_number":993,"context_line":"        # Setup get_active_lsp for partial_continue scenario"},{"line_number":994,"context_line":"        port0 \u003d utils.create_row("},{"line_number":995,"context_line":"            type\u003dconstants.OVN_VM_VIF_PORT_TYPE,"},{"line_number":996,"context_line":"            addresses\u003d[\u0027mac 192.168.0.5\u0027],"},{"line_number":997,"context_line":"            external_ids\u003d{"},{"line_number":998,"context_line":"                constants.OVN_CIDRS_EXT_ID_KEY: \"192.168.0.5/24\","},{"line_number":999,"context_line":"                constants.OVN_LS_NAME_EXT_ID_KEY: \u0027network1\u0027"},{"line_number":1000,"context_line":"            })"},{"line_number":1001,"context_line":"        port1 \u003d utils.create_row("},{"line_number":1002,"context_line":"            type\u003dconstants.OVN_VIRTUAL_VIF_PORT_TYPE,"},{"line_number":1003,"context_line":"            addresses\u003d[\u0027mac 192.168.0.6\u0027],"},{"line_number":1004,"context_line":"            external_ids\u003d{"},{"line_number":1005,"context_line":"                constants.OVN_CIDRS_EXT_ID_KEY: \"192.168.0.6/24\","},{"line_number":1006,"context_line":"                constants.OVN_LS_NAME_EXT_ID_KEY: \u0027network1\u0027"},{"line_number":1007,"context_line":"            })"},{"line_number":1008,"context_line":"        self.nb_idl.get_active_lsp.return_value \u003d [port0, port1]"},{"line_number":1009,"context_line":""},{"line_number":1010,"context_line":"        self.test_expose_subnet_require_snat_disabled(partial_continue\u003dTrue)"},{"line_number":1011,"context_line":""},{"line_number":1012,"context_line":"    def test_withdraw_subnet(self):"},{"line_number":1013,"context_line":"        ips \u003d [\u002710.0.0.1/24\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"ee55ca1d_2badf447","line":1010,"range":{"start_line":992,"start_character":2,"end_line":1010,"end_character":76},"in_reply_to":"85b4e5ee_7d9b890f","updated":"2024-02-22 09:41:08.000000000","message":"that is why the `test_expose_subnet_require_snat_disabled` method was not prefixed with a _ 😄\nI\u0027ll separate them for better understanding for now 😊","commit_id":"2b8e41e5218fe526a4941b6f59c2debe81960573"},{"author":{"_account_id":25468,"name":"Michel Nederlof","email":"michel@nederlof.info","username":"pellucid"},"change_message_id":"22d8a306a22a5d8c730d13ebddcbc4004ca635e6","unresolved":false,"context_lines":[{"line_number":989,"context_line":"                              mock.call([\u0027192.168.0.6\u0027], ips_info1)]"},{"line_number":990,"context_line":"            mock_expose_remote_ip.assert_has_calls(expected_calls)"},{"line_number":991,"context_line":""},{"line_number":992,"context_line":"    def test_expose_subnet_require_snat_disabled_partial_continue(self):"},{"line_number":993,"context_line":"        # Setup get_active_lsp for partial_continue scenario"},{"line_number":994,"context_line":"        port0 \u003d utils.create_row("},{"line_number":995,"context_line":"            type\u003dconstants.OVN_VM_VIF_PORT_TYPE,"},{"line_number":996,"context_line":"            addresses\u003d[\u0027mac 192.168.0.5\u0027],"},{"line_number":997,"context_line":"            external_ids\u003d{"},{"line_number":998,"context_line":"                constants.OVN_CIDRS_EXT_ID_KEY: \"192.168.0.5/24\","},{"line_number":999,"context_line":"                constants.OVN_LS_NAME_EXT_ID_KEY: \u0027network1\u0027"},{"line_number":1000,"context_line":"            })"},{"line_number":1001,"context_line":"        port1 \u003d utils.create_row("},{"line_number":1002,"context_line":"            type\u003dconstants.OVN_VIRTUAL_VIF_PORT_TYPE,"},{"line_number":1003,"context_line":"            addresses\u003d[\u0027mac 192.168.0.6\u0027],"},{"line_number":1004,"context_line":"            external_ids\u003d{"},{"line_number":1005,"context_line":"                constants.OVN_CIDRS_EXT_ID_KEY: \"192.168.0.6/24\","},{"line_number":1006,"context_line":"                constants.OVN_LS_NAME_EXT_ID_KEY: \u0027network1\u0027"},{"line_number":1007,"context_line":"            })"},{"line_number":1008,"context_line":"        self.nb_idl.get_active_lsp.return_value \u003d [port0, port1]"},{"line_number":1009,"context_line":""},{"line_number":1010,"context_line":"        self.test_expose_subnet_require_snat_disabled(partial_continue\u003dTrue)"},{"line_number":1011,"context_line":""},{"line_number":1012,"context_line":"    def test_withdraw_subnet(self):"},{"line_number":1013,"context_line":"        ips \u003d [\u002710.0.0.1/24\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"9d6d5ba9_28aec1bb","line":1010,"range":{"start_line":992,"start_character":2,"end_line":1010,"end_character":76},"in_reply_to":"ee55ca1d_2badf447","updated":"2024-02-26 11:01:31.000000000","message":"Done","commit_id":"2b8e41e5218fe526a4941b6f59c2debe81960573"}]}
