)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"c1f56f97ac0d7dd5dafa2512eaaf1f367334a0c3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"a37e2ddd_ca3e43f1","updated":"2022-02-28 13:33:28.000000000","message":"good catch","commit_id":"56774da4265288952f98c93f854f2f209da58292"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ee1b7381533b8f4654669b6b1f7c06614f4cdd64","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"06517b78_38133797","updated":"2022-02-28 08:06:39.000000000","message":"recheck","commit_id":"56774da4265288952f98c93f854f2f209da58292"}],"neutron/db/l3_db.py":[{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"96e2990678e0842ef6f359308ca3cf5fc7d624b0","unresolved":true,"context_lines":[{"line_number":570,"context_line":"        attached_ports \u003d [rp.port_id for rp in router.attached_ports if"},{"line_number":571,"context_line":"                          rp.port_type \u003d\u003d device_owner]"},{"line_number":572,"context_line":"        if attached_ports:"},{"line_number":573,"context_line":"            reason \u003d \u0027has ports still attached: \u0027 + \u0027, \u0027.join(p for p in"},{"line_number":574,"context_line":"                                                              attached_ports)"},{"line_number":575,"context_line":"            raise l3_exc.RouterInUse(router_id\u003drouter_id, reason\u003dreason)"},{"line_number":576,"context_line":"        return router"}],"source_content_type":"text/x-python","patch_set":2,"id":"37c7800f_80f1848a","line":573,"range":{"start_line":573,"start_character":22,"end_line":573,"end_character":46},"updated":"2022-02-25 15:22:03.000000000","message":"may be can reword to \"still has ports \u003cport ids\u003e attached\"?","commit_id":"3a9d6ad5b0a90ecaa2965929518e495e417fbf99"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ee1b7381533b8f4654669b6b1f7c06614f4cdd64","unresolved":false,"context_lines":[{"line_number":570,"context_line":"        attached_ports \u003d [rp.port_id for rp in router.attached_ports if"},{"line_number":571,"context_line":"                          rp.port_type \u003d\u003d device_owner]"},{"line_number":572,"context_line":"        if attached_ports:"},{"line_number":573,"context_line":"            reason \u003d \u0027has ports still attached: \u0027 + \u0027, \u0027.join(p for p in"},{"line_number":574,"context_line":"                                                              attached_ports)"},{"line_number":575,"context_line":"            raise l3_exc.RouterInUse(router_id\u003drouter_id, reason\u003dreason)"},{"line_number":576,"context_line":"        return router"}],"source_content_type":"text/x-python","patch_set":2,"id":"74ef9fe3_b87d8f74","line":573,"range":{"start_line":573,"start_character":22,"end_line":573,"end_character":46},"in_reply_to":"34fdc01a_60edb1c7","updated":"2022-02-28 08:06:39.000000000","message":"I prefer the string I initially wrote","commit_id":"3a9d6ad5b0a90ecaa2965929518e495e417fbf99"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d13e0a78a44de06f003d4300078b2896f0b83261","unresolved":false,"context_lines":[{"line_number":570,"context_line":"        attached_ports \u003d [rp.port_id for rp in router.attached_ports if"},{"line_number":571,"context_line":"                          rp.port_type \u003d\u003d device_owner]"},{"line_number":572,"context_line":"        if attached_ports:"},{"line_number":573,"context_line":"            reason \u003d \u0027has ports still attached: \u0027 + \u0027, \u0027.join(p for p in"},{"line_number":574,"context_line":"                                                              attached_ports)"},{"line_number":575,"context_line":"            raise l3_exc.RouterInUse(router_id\u003drouter_id, reason\u003dreason)"},{"line_number":576,"context_line":"        return router"}],"source_content_type":"text/x-python","patch_set":2,"id":"751433da_43c3c9eb","line":573,"range":{"start_line":573,"start_character":22,"end_line":573,"end_character":46},"in_reply_to":"37c7800f_80f1848a","updated":"2022-02-25 17:51:14.000000000","message":".","commit_id":"3a9d6ad5b0a90ecaa2965929518e495e417fbf99"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"516de4b16f11249a0f637ef8a34195120d7465f1","unresolved":false,"context_lines":[{"line_number":570,"context_line":"        attached_ports \u003d [rp.port_id for rp in router.attached_ports if"},{"line_number":571,"context_line":"                          rp.port_type \u003d\u003d device_owner]"},{"line_number":572,"context_line":"        if attached_ports:"},{"line_number":573,"context_line":"            reason \u003d \u0027has ports still attached: \u0027 + \u0027, \u0027.join(p for p in"},{"line_number":574,"context_line":"                                                              attached_ports)"},{"line_number":575,"context_line":"            raise l3_exc.RouterInUse(router_id\u003drouter_id, reason\u003dreason)"},{"line_number":576,"context_line":"        return router"}],"source_content_type":"text/x-python","patch_set":2,"id":"52645b09_593154c0","line":573,"range":{"start_line":573,"start_character":22,"end_line":573,"end_character":46},"in_reply_to":"74ef9fe3_b87d8f74","updated":"2022-02-28 08:08:55.000000000","message":"ack Thanks for confirming, ok for me then.","commit_id":"3a9d6ad5b0a90ecaa2965929518e495e417fbf99"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"180849c8610f02b36b2f378e16c66263a7c027d9","unresolved":false,"context_lines":[{"line_number":570,"context_line":"        attached_ports \u003d [rp.port_id for rp in router.attached_ports if"},{"line_number":571,"context_line":"                          rp.port_type \u003d\u003d device_owner]"},{"line_number":572,"context_line":"        if attached_ports:"},{"line_number":573,"context_line":"            reason \u003d \u0027has ports still attached: \u0027 + \u0027, \u0027.join(p for p in"},{"line_number":574,"context_line":"                                                              attached_ports)"},{"line_number":575,"context_line":"            raise l3_exc.RouterInUse(router_id\u003drouter_id, reason\u003dreason)"},{"line_number":576,"context_line":"        return router"}],"source_content_type":"text/x-python","patch_set":2,"id":"34fdc01a_60edb1c7","line":573,"range":{"start_line":573,"start_character":22,"end_line":573,"end_character":46},"in_reply_to":"751433da_43c3c9eb","updated":"2022-02-28 04:59:03.000000000","message":"sorry didn\u0027t got this. What i meant was:-\nCurrent msg:- Router XXX still has ports\nProposed patch:- Router XXX has ports still attached: \u003cports_comma_delimited\u003e\n\nMy ask was to use similar to original just in case someone parses the message: Router XXX still has ports \u003cports_comma_delimited\u003e attached\n\nBut i am ok if that\u0027s something not in policy to consider.","commit_id":"3a9d6ad5b0a90ecaa2965929518e495e417fbf99"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"96e2990678e0842ef6f359308ca3cf5fc7d624b0","unresolved":true,"context_lines":[{"line_number":570,"context_line":"        attached_ports \u003d [rp.port_id for rp in router.attached_ports if"},{"line_number":571,"context_line":"                          rp.port_type \u003d\u003d device_owner]"},{"line_number":572,"context_line":"        if attached_ports:"},{"line_number":573,"context_line":"            reason \u003d \u0027has ports still attached: \u0027 + \u0027, \u0027.join(p for p in"},{"line_number":574,"context_line":"                                                              attached_ports)"},{"line_number":575,"context_line":"            raise l3_exc.RouterInUse(router_id\u003drouter_id, reason\u003dreason)"},{"line_number":576,"context_line":"        return router"},{"line_number":577,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"349fb2f4_c4f74b59","line":574,"range":{"start_line":573,"start_character":52,"end_line":574,"end_character":77},"updated":"2022-02-25 15:22:03.000000000","message":"\u0027, \u0027.join(attached_ports) should be enough, or i miss something?","commit_id":"3a9d6ad5b0a90ecaa2965929518e495e417fbf99"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d02495ddc36a735a3f22cdd5fe16d3c2bbd3de2c","unresolved":false,"context_lines":[{"line_number":570,"context_line":"        attached_ports \u003d [rp.port_id for rp in router.attached_ports if"},{"line_number":571,"context_line":"                          rp.port_type \u003d\u003d device_owner]"},{"line_number":572,"context_line":"        if attached_ports:"},{"line_number":573,"context_line":"            reason \u003d \u0027has ports still attached: \u0027 + \u0027, \u0027.join(p for p in"},{"line_number":574,"context_line":"                                                              attached_ports)"},{"line_number":575,"context_line":"            raise l3_exc.RouterInUse(router_id\u003drouter_id, reason\u003dreason)"},{"line_number":576,"context_line":"        return router"},{"line_number":577,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3f21d841_43b81a0e","line":574,"range":{"start_line":573,"start_character":52,"end_line":574,"end_character":77},"in_reply_to":"349fb2f4_c4f74b59","updated":"2022-02-25 15:46:41.000000000","message":"Done","commit_id":"3a9d6ad5b0a90ecaa2965929518e495e417fbf99"}],"neutron/tests/unit/db/test_l3_hamode_db.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"eee83ba9bafab53d5e575811c8bc5bd8f6956357","unresolved":true,"context_lines":[{"line_number":1038,"context_line":"            self.admin_ctx, router[\u0027id\u0027], interface_info)"},{"line_number":1039,"context_line":"        try:"},{"line_number":1040,"context_line":"            self.plugin.delete_router(self.admin_ctx, router[\u0027id\u0027])"},{"line_number":1041,"context_line":"        except l3_exc.RouterInUse as exc:"},{"line_number":1042,"context_line":"            msg \u003d \u0027Router %s has ports still attached: %s\u0027 % ("},{"line_number":1043,"context_line":"                router[\u0027id\u0027], interface[\u0027port_id\u0027])"},{"line_number":1044,"context_line":"            self.assertEqual(msg, exc.msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"40f66ebb_cbb92c4c","line":1041,"range":{"start_line":1041,"start_character":8,"end_line":1041,"end_character":40},"updated":"2022-02-24 14:44:21.000000000","message":"nit: could add \u0027else:\u0027 to this try/except to fail in case exception wasn\u0027t raised at all","commit_id":"17517a163f2dc25f5414a9dba96d7a3c0d7a51a4"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7acc829be90ac5e9030504812ad5df4de702e385","unresolved":true,"context_lines":[{"line_number":1038,"context_line":"            self.admin_ctx, router[\u0027id\u0027], interface_info)"},{"line_number":1039,"context_line":"        try:"},{"line_number":1040,"context_line":"            self.plugin.delete_router(self.admin_ctx, router[\u0027id\u0027])"},{"line_number":1041,"context_line":"        except l3_exc.RouterInUse as exc:"},{"line_number":1042,"context_line":"            msg \u003d \u0027Router %s has ports still attached: %s\u0027 % ("},{"line_number":1043,"context_line":"                router[\u0027id\u0027], interface[\u0027port_id\u0027])"},{"line_number":1044,"context_line":"            self.assertEqual(msg, exc.msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"48d6826f_db682d57","line":1041,"range":{"start_line":1041,"start_character":8,"end_line":1041,"end_character":40},"in_reply_to":"40f66ebb_cbb92c4c","updated":"2022-02-24 16:15:33.000000000","message":"Right, I\u0027m not considering the case of not raising an exception. This should exit the test case with an error. Good catch.","commit_id":"17517a163f2dc25f5414a9dba96d7a3c0d7a51a4"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"10c5a11c6ff20215d077327564f158df9bcd1ba3","unresolved":false,"context_lines":[{"line_number":1038,"context_line":"            self.admin_ctx, router[\u0027id\u0027], interface_info)"},{"line_number":1039,"context_line":"        try:"},{"line_number":1040,"context_line":"            self.plugin.delete_router(self.admin_ctx, router[\u0027id\u0027])"},{"line_number":1041,"context_line":"        except l3_exc.RouterInUse as exc:"},{"line_number":1042,"context_line":"            msg \u003d \u0027Router %s has ports still attached: %s\u0027 % ("},{"line_number":1043,"context_line":"                router[\u0027id\u0027], interface[\u0027port_id\u0027])"},{"line_number":1044,"context_line":"            self.assertEqual(msg, exc.msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5e626138_7ff12615","line":1041,"range":{"start_line":1041,"start_character":8,"end_line":1041,"end_character":40},"in_reply_to":"48d6826f_db682d57","updated":"2022-02-25 07:17:47.000000000","message":"Ack, thanks!","commit_id":"17517a163f2dc25f5414a9dba96d7a3c0d7a51a4"}]}
