)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"8ab8b3543158937905be725b6a8cceda28d0a886","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"21916f3d_f0b81ce3","updated":"2024-12-05 06:31:20.000000000","message":"recheck tempest-multinode-full-ubuntu-jammy","commit_id":"40bee77123db669606c02fe8cb48d4b145b2fa60"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"156bbd62cf8a352e403d34b50bc137a3a24919fc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"781ead3c_53f51aff","updated":"2024-12-20 11:32:36.000000000","message":"Hi Ghanshyam, if you have some minutes, please check this patch.","commit_id":"f2aa158d4b8d49cb3ae2532b9b8ed49a1a93b564"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"c217c34b50876ea0b25e44ae530dc84e8c6e1a3c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"305e1290_7ea470d7","updated":"2024-12-24 11:44:31.000000000","message":"Nice, generalization of the active wait for all relevant tests","commit_id":"f2aa158d4b8d49cb3ae2532b9b8ed49a1a93b564"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"01b8b0709438a4ff728b3ead8cbc65ef155cc48d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"fef5f708_05da42b0","updated":"2024-12-05 12:42:39.000000000","message":"Thanks Rodolfo, LGTM!","commit_id":"f2aa158d4b8d49cb3ae2532b9b8ed49a1a93b564"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"136586e4e20bdd254b12386ff962b3d9988ab91c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"d9bfe6eb_e1cbd965","updated":"2024-12-17 13:07:25.000000000","message":"lgtm","commit_id":"f2aa158d4b8d49cb3ae2532b9b8ed49a1a93b564"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"efb7eb5d2d3412ea98d41378117e506bb9f10b9e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ce25b0ed_7fd18807","updated":"2024-12-30 19:24:15.000000000","message":"lgtm, thanks","commit_id":"f2aa158d4b8d49cb3ae2532b9b8ed49a1a93b564"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"cbcf9e3841839a001714ad96eceb3882183b1d63","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"0978083f_12d6ab89","updated":"2024-12-09 06:58:50.000000000","message":"recheck tempest-full-py3","commit_id":"f2aa158d4b8d49cb3ae2532b9b8ed49a1a93b564"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f264ef75081e37820d898a15da33b7e67b7885f3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"77bf5be1_106f5998","updated":"2024-12-06 12:34:06.000000000","message":"recheck tempest-multinode-full-py3","commit_id":"f2aa158d4b8d49cb3ae2532b9b8ed49a1a93b564"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"23d84696ca3831b919d0526ac1ee04ec9eb5067f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"119095f9_32a42929","in_reply_to":"fef5f708_05da42b0","updated":"2024-12-05 12:43:49.000000000","message":"\u003e Thanks Rodolfo, LGTM!\n\nThe failures are unrelated to this patch.","commit_id":"f2aa158d4b8d49cb3ae2532b9b8ed49a1a93b564"}],"tempest/api/network/base.py":[{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"ba26a9888f05dc45acea7f43a9835b74d77e12e1","unresolved":true,"context_lines":[{"line_number":227,"context_line":"                subnet_id\u003di[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027])"},{"line_number":228,"context_line":"        cls.routers_client.delete_router(router[\u0027id\u0027])"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    @classmethod"},{"line_number":231,"context_line":"    def remove_router_interface(cls, router_id, port_id, subnet_id\u003dNone):"},{"line_number":232,"context_line":"        # NOTE: with DVR and without a VM port, it is not possible to know"},{"line_number":233,"context_line":"        # what agent will host the router interface thus won\u0027t be bound."}],"source_content_type":"text/x-python","patch_set":3,"id":"10485c77_a33a6819","line":230,"range":{"start_line":230,"start_character":4,"end_line":230,"end_character":16},"updated":"2024-12-04 13:09:24.000000000","message":"Does it need to be a class method?\nI see it\u0027s only used within the test cases.","commit_id":"872a0c9cb9064a1a82c7ab7a96a57b475ad664eb"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"56bac2bfa6cb4eec1982ae046d3fb245611308cb","unresolved":true,"context_lines":[{"line_number":227,"context_line":"                subnet_id\u003di[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027])"},{"line_number":228,"context_line":"        cls.routers_client.delete_router(router[\u0027id\u0027])"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    @classmethod"},{"line_number":231,"context_line":"    def remove_router_interface(cls, router_id, port_id, subnet_id\u003dNone):"},{"line_number":232,"context_line":"        # NOTE: with DVR and without a VM port, it is not possible to know"},{"line_number":233,"context_line":"        # what agent will host the router interface thus won\u0027t be bound."}],"source_content_type":"text/x-python","patch_set":3,"id":"4a303d88_5eeeaefd","line":230,"range":{"start_line":230,"start_character":4,"end_line":230,"end_character":16},"in_reply_to":"10485c77_a33a6819","updated":"2024-12-04 13:27:36.000000000","message":"I just followed the same criteria used to define the resource operations in this base class. If that is a problem for this particular method, I can change it of course.","commit_id":"872a0c9cb9064a1a82c7ab7a96a57b475ad664eb"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"2748aadaf42bf3dc56fcf41d54b2758f758f258f","unresolved":true,"context_lines":[{"line_number":227,"context_line":"                subnet_id\u003di[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027])"},{"line_number":228,"context_line":"        cls.routers_client.delete_router(router[\u0027id\u0027])"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    @classmethod"},{"line_number":231,"context_line":"    def remove_router_interface(cls, router_id, port_id, subnet_id\u003dNone):"},{"line_number":232,"context_line":"        # NOTE: with DVR and without a VM port, it is not possible to know"},{"line_number":233,"context_line":"        # what agent will host the router interface thus won\u0027t be bound."}],"source_content_type":"text/x-python","patch_set":3,"id":"9ea366c6_6d7721c6","line":230,"range":{"start_line":230,"start_character":4,"end_line":230,"end_character":16},"in_reply_to":"4a303d88_5eeeaefd","updated":"2024-12-05 07:10:55.000000000","message":"If you convert it to an instance method, you can use it with self.addCleanup and eliminate the duplicate method here:\nhttps://github.com/openstack/tempest/blob/master/tempest/api/network/test_routers.py#L41","commit_id":"872a0c9cb9064a1a82c7ab7a96a57b475ad664eb"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"24fa03310d610e12a38f36e6dedae4f578b9e2bf","unresolved":false,"context_lines":[{"line_number":227,"context_line":"                subnet_id\u003di[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027])"},{"line_number":228,"context_line":"        cls.routers_client.delete_router(router[\u0027id\u0027])"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    @classmethod"},{"line_number":231,"context_line":"    def remove_router_interface(cls, router_id, port_id, subnet_id\u003dNone):"},{"line_number":232,"context_line":"        # NOTE: with DVR and without a VM port, it is not possible to know"},{"line_number":233,"context_line":"        # what agent will host the router interface thus won\u0027t be bound."}],"source_content_type":"text/x-python","patch_set":3,"id":"71b7c6ae_2a79e208","line":230,"range":{"start_line":230,"start_character":4,"end_line":230,"end_character":16},"in_reply_to":"4ce96e8d_bc267862","updated":"2024-12-05 09:43:54.000000000","message":"Done","commit_id":"872a0c9cb9064a1a82c7ab7a96a57b475ad664eb"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"e2b12e65155fb456d5d7cfb4547cb79c7fd94be6","unresolved":true,"context_lines":[{"line_number":227,"context_line":"                subnet_id\u003di[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027])"},{"line_number":228,"context_line":"        cls.routers_client.delete_router(router[\u0027id\u0027])"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    @classmethod"},{"line_number":231,"context_line":"    def remove_router_interface(cls, router_id, port_id, subnet_id\u003dNone):"},{"line_number":232,"context_line":"        # NOTE: with DVR and without a VM port, it is not possible to know"},{"line_number":233,"context_line":"        # what agent will host the router interface thus won\u0027t be bound."}],"source_content_type":"text/x-python","patch_set":3,"id":"4ce96e8d_bc267862","line":230,"range":{"start_line":230,"start_character":4,"end_line":230,"end_character":16},"in_reply_to":"9ea366c6_6d7721c6","updated":"2024-12-05 07:53:13.000000000","message":"Apologies, please disregard the elimination I mentioned. I recommend converting it to either an instance method or using the @cleanup_order decorator:\nhttps://github.com/openstack/tempest/blob/master/tempest/lib/decorators.py#L195","commit_id":"872a0c9cb9064a1a82c7ab7a96a57b475ad664eb"}],"tempest/api/network/test_routers.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"76f236e28878c1902efb4fbbb10087062f0c1e2f","unresolved":true,"context_lines":[{"line_number":104,"context_line":"            router[\u0027id\u0027], subnet_id\u003dsubnet[\u0027id\u0027])"},{"line_number":105,"context_line":"        self.addCleanup(self.remove_router_interface,"},{"line_number":106,"context_line":"                        router[\u0027id\u0027], interface[\u0027port_id\u0027],"},{"line_number":107,"context_line":"                        subnet_id\u003d subnet[\u0027id\u0027])"},{"line_number":108,"context_line":"        self.assertIn(\u0027subnet_id\u0027, interface.keys())"},{"line_number":109,"context_line":"        self.assertIn(\u0027port_id\u0027, interface.keys())"},{"line_number":110,"context_line":"        # Verify router id is equal to device id in port details"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ed73d70_a16e93f4","line":107,"range":{"start_line":107,"start_character":34,"end_line":107,"end_character":35},"updated":"2024-12-02 14:38:18.000000000","message":"pep8 complaining about this space, otherwise change looks good","commit_id":"91ded5ebcbd1572e6152cd8bda1f19511be3b93b"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1fc6d4d620b2dc3373ae43bb3abe65198d85372c","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            router[\u0027id\u0027], subnet_id\u003dsubnet[\u0027id\u0027])"},{"line_number":105,"context_line":"        self.addCleanup(self.remove_router_interface,"},{"line_number":106,"context_line":"                        router[\u0027id\u0027], interface[\u0027port_id\u0027],"},{"line_number":107,"context_line":"                        subnet_id\u003d subnet[\u0027id\u0027])"},{"line_number":108,"context_line":"        self.assertIn(\u0027subnet_id\u0027, interface.keys())"},{"line_number":109,"context_line":"        self.assertIn(\u0027port_id\u0027, interface.keys())"},{"line_number":110,"context_line":"        # Verify router id is equal to device id in port details"}],"source_content_type":"text/x-python","patch_set":1,"id":"84034524_3e26dcea","line":107,"range":{"start_line":107,"start_character":34,"end_line":107,"end_character":35},"in_reply_to":"3ed73d70_a16e93f4","updated":"2024-12-02 14:50:17.000000000","message":"Done","commit_id":"91ded5ebcbd1572e6152cd8bda1f19511be3b93b"}]}
