)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"f3cd7458d96121ffca8512c868ce2ad4dc25903e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e2a1dd3b_1320030a","updated":"2024-07-03 11:17:40.000000000","message":"I saw the failures multiple times recently, too, do you happen to know what happened that caused these to be so frequent suddenly? the tests themselves don\u0027t seem to be new","commit_id":"db6872f258500b970d0d961ad69ce4766c10e7fd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6956f1b865b91ccde5af514bc8d59854869632a7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"bce2c0f2_dfd9d999","updated":"2024-07-03 12:41:34.000000000","message":"Soft -1 but I think there\u0027s enough there to warrant a respin. lmk if you want to do that in a follow-up.","commit_id":"db6872f258500b970d0d961ad69ce4766c10e7fd"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"600844ad9a7c69b8fe784fea9f7687e200a594db","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"55705f39_e23c1c4b","updated":"2024-07-03 13:40:37.000000000","message":"approving as this is blocking getting cve fixes merged in nova, I think all comments can be addressed in a follow-up","commit_id":"db6872f258500b970d0d961ad69ce4766c10e7fd"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"24b06967ea666485676afaae4f84c857d8b13f39","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"4c02cf26_6f9dbc85","updated":"2024-07-03 11:56:31.000000000","message":"good idea 🤞","commit_id":"db6872f258500b970d0d961ad69ce4766c10e7fd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a53be90e875290b4ca26f721f0d8b3ee4af2c7ac","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"704c97c5_961cd0a1","in_reply_to":"bce2c0f2_dfd9d999","updated":"2024-07-03 13:35:24.000000000","message":"this is currently blocking us merging some CVE fixes can we adress your nits in a follwoup?","commit_id":"db6872f258500b970d0d961ad69ce4766c10e7fd"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"ddcfdd508383dd76a74e1e20e7fbc832c832f17f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"71d32ddb_1c8fa617","in_reply_to":"e2a1dd3b_1320030a","updated":"2024-07-03 14:02:03.000000000","message":"TBH I don\u0027t know. The only recent change in Neutron, related to the auto_allocate_topology feature is https://review.opendev.org/c/openstack/neutron/+/920174 but I don\u0027t know how it could cause that those tests are now failing more often.","commit_id":"db6872f258500b970d0d961ad69ce4766c10e7fd"}],"openstack/tests/functional/network/v2/test_auto_allocated_topology.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6956f1b865b91ccde5af514bc8d59854869632a7","unresolved":true,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        project \u003d self._create_project()"},{"line_number":34,"context_line":"        self.PROJECT_ID \u003d project[\u0027id\u0027]"},{"line_number":35,"context_line":"        self.cloud \u003d self._get_cloud_client(project)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def tearDown(self):"},{"line_number":38,"context_line":"        res \u003d self.cloud.network.delete_auto_allocated_topology("}],"source_content_type":"text/x-python","patch_set":1,"id":"dedf36e6_584d44a4","line":35,"range":{"start_line":35,"start_character":13,"end_line":35,"end_character":18},"updated":"2024-07-03 12:41:34.000000000","message":"nit: Can we call this e.g. `test_cloud` to better distinguish it from `operator_cloud` and `user_cloud`?","commit_id":"db6872f258500b970d0d961ad69ce4766c10e7fd"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"ef3462801a5d9f2259c81eb6c2af78cdbf53dafe","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        project \u003d self._create_project()"},{"line_number":34,"context_line":"        self.PROJECT_ID \u003d project[\u0027id\u0027]"},{"line_number":35,"context_line":"        self.cloud \u003d self._get_cloud_client(project)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def tearDown(self):"},{"line_number":38,"context_line":"        res \u003d self.cloud.network.delete_auto_allocated_topology("}],"source_content_type":"text/x-python","patch_set":1,"id":"439d1058_94c95eff","line":35,"range":{"start_line":35,"start_character":13,"end_line":35,"end_character":18},"in_reply_to":"dedf36e6_584d44a4","updated":"2024-07-03 14:00:36.000000000","message":"Done","commit_id":"db6872f258500b970d0d961ad69ce4766c10e7fd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6956f1b865b91ccde5af514bc8d59854869632a7","unresolved":true,"context_lines":[{"line_number":39,"context_line":"            self.PROJECT_ID"},{"line_number":40,"context_line":"        )"},{"line_number":41,"context_line":"        self.assertIsNone(res)"},{"line_number":42,"context_line":"        self.operator_cloud.revoke_role("},{"line_number":43,"context_line":"            \u0027member\u0027,"},{"line_number":44,"context_line":"            user\u003dself.operator_cloud.current_user_id,"},{"line_number":45,"context_line":"            project\u003dself.PROJECT_ID,"},{"line_number":46,"context_line":"        )"},{"line_number":47,"context_line":"        self.operator_cloud.delete_project(self.PROJECT_ID)"},{"line_number":48,"context_line":"        super().tearDown()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def _create_project(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"a060b5d5_5ed4a59b","line":47,"range":{"start_line":42,"start_character":0,"end_line":47,"end_character":59},"updated":"2024-07-03 12:41:34.000000000","message":"Can you move these to a separate method e.g. `_destroy_project`? It took me a bit to figure out why you were revoking a role here in `tearDown` when there was no granting happening in `setUp`","commit_id":"db6872f258500b970d0d961ad69ce4766c10e7fd"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"ef3462801a5d9f2259c81eb6c2af78cdbf53dafe","unresolved":false,"context_lines":[{"line_number":39,"context_line":"            self.PROJECT_ID"},{"line_number":40,"context_line":"        )"},{"line_number":41,"context_line":"        self.assertIsNone(res)"},{"line_number":42,"context_line":"        self.operator_cloud.revoke_role("},{"line_number":43,"context_line":"            \u0027member\u0027,"},{"line_number":44,"context_line":"            user\u003dself.operator_cloud.current_user_id,"},{"line_number":45,"context_line":"            project\u003dself.PROJECT_ID,"},{"line_number":46,"context_line":"        )"},{"line_number":47,"context_line":"        self.operator_cloud.delete_project(self.PROJECT_ID)"},{"line_number":48,"context_line":"        super().tearDown()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def _create_project(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"d65553de_d2c323ea","line":47,"range":{"start_line":42,"start_character":0,"end_line":47,"end_character":59},"in_reply_to":"a060b5d5_5ed4a59b","updated":"2024-07-03 14:00:36.000000000","message":"Done","commit_id":"db6872f258500b970d0d961ad69ce4766c10e7fd"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"cda0c9d313e17c2d5b4650a0692c79698afd7f31","unresolved":true,"context_lines":[{"line_number":70,"context_line":"        role_assignment \u003d self.operator_cloud.list_role_assignments("},{"line_number":71,"context_line":"            {\u0027user\u0027: user_id, \u0027project\u0027: project[\u0027id\u0027]}"},{"line_number":72,"context_line":"        )"},{"line_number":73,"context_line":"        # import remote_pdb; remote_pdb.set_trace(port\u003d1234)"},{"line_number":74,"context_line":"        if not role_assignment:"},{"line_number":75,"context_line":"            self.operator_cloud.grant_role("},{"line_number":76,"context_line":"                \u0027member\u0027, user\u003duser_id, project\u003dproject[\u0027id\u0027], wait\u003dTrue"}],"source_content_type":"text/x-python","patch_set":1,"id":"94127fa6_b1e2157d","line":73,"updated":"2024-07-03 12:37:37.000000000","message":"a leftover or needed?","commit_id":"db6872f258500b970d0d961ad69ce4766c10e7fd"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"ef3462801a5d9f2259c81eb6c2af78cdbf53dafe","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        role_assignment \u003d self.operator_cloud.list_role_assignments("},{"line_number":71,"context_line":"            {\u0027user\u0027: user_id, \u0027project\u0027: project[\u0027id\u0027]}"},{"line_number":72,"context_line":"        )"},{"line_number":73,"context_line":"        # import remote_pdb; remote_pdb.set_trace(port\u003d1234)"},{"line_number":74,"context_line":"        if not role_assignment:"},{"line_number":75,"context_line":"            self.operator_cloud.grant_role("},{"line_number":76,"context_line":"                \u0027member\u0027, user\u003duser_id, project\u003dproject[\u0027id\u0027], wait\u003dTrue"}],"source_content_type":"text/x-python","patch_set":1,"id":"2f96a3aa_5702fdbb","line":73,"in_reply_to":"94127fa6_b1e2157d","updated":"2024-07-03 14:00:36.000000000","message":"leftover, removed 😊","commit_id":"db6872f258500b970d0d961ad69ce4766c10e7fd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6956f1b865b91ccde5af514bc8d59854869632a7","unresolved":true,"context_lines":[{"line_number":78,"context_line":"        return project"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def _get_cloud_client(self, project):"},{"line_number":81,"context_line":"        return self.operator_cloud.connect_as_project(project)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def test_dry_run_option_pass(self):"},{"line_number":84,"context_line":"        # Dry run will only pass if there is a public network"}],"source_content_type":"text/x-python","patch_set":1,"id":"d71d77d9_6d2d2510","line":81,"updated":"2024-07-03 12:41:34.000000000","message":"Any reason not to just inline this?","commit_id":"db6872f258500b970d0d961ad69ce4766c10e7fd"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"ef3462801a5d9f2259c81eb6c2af78cdbf53dafe","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        return project"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def _get_cloud_client(self, project):"},{"line_number":81,"context_line":"        return self.operator_cloud.connect_as_project(project)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def test_dry_run_option_pass(self):"},{"line_number":84,"context_line":"        # Dry run will only pass if there is a public network"}],"source_content_type":"text/x-python","patch_set":1,"id":"5b3bceb1_2aec685e","line":81,"in_reply_to":"d71d77d9_6d2d2510","updated":"2024-07-03 14:00:36.000000000","message":"actually no, changed","commit_id":"db6872f258500b970d0d961ad69ce4766c10e7fd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6956f1b865b91ccde5af514bc8d59854869632a7","unresolved":true,"context_lines":[{"line_number":80,"context_line":"    def _get_cloud_client(self, project):"},{"line_number":81,"context_line":"        return self.operator_cloud.connect_as_project(project)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def test_dry_run_option_pass(self):"},{"line_number":84,"context_line":"        # Dry run will only pass if there is a public network"},{"line_number":85,"context_line":"        networks \u003d self.cloud.network.networks()"},{"line_number":86,"context_line":"        self._set_network_external(networks)"}],"source_content_type":"text/x-python","patch_set":1,"id":"02ce1b49_82e05ea7","line":83,"updated":"2024-07-03 12:41:34.000000000","message":"Mostly unrelated aside, but we\u0027ve taken to combining these test cases into a single test case e.g. `test_auto_allocated_topology` with multiple checks inline because the setup is expensive. Might want to do this here (in a follow-up naturally).","commit_id":"db6872f258500b970d0d961ad69ce4766c10e7fd"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"ef3462801a5d9f2259c81eb6c2af78cdbf53dafe","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    def _get_cloud_client(self, project):"},{"line_number":81,"context_line":"        return self.operator_cloud.connect_as_project(project)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def test_dry_run_option_pass(self):"},{"line_number":84,"context_line":"        # Dry run will only pass if there is a public network"},{"line_number":85,"context_line":"        networks \u003d self.cloud.network.networks()"},{"line_number":86,"context_line":"        self._set_network_external(networks)"}],"source_content_type":"text/x-python","patch_set":1,"id":"6d8864cf_93377e5b","line":83,"in_reply_to":"02ce1b49_82e05ea7","updated":"2024-07-03 14:00:36.000000000","message":"Sure, I will propose follow up to combine those tests into single one","commit_id":"db6872f258500b970d0d961ad69ce4766c10e7fd"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f259230678323a8aeec85fd8f2834ffb6c90ef78","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    def _get_cloud_client(self, project):"},{"line_number":81,"context_line":"        return self.operator_cloud.connect_as_project(project)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def test_dry_run_option_pass(self):"},{"line_number":84,"context_line":"        # Dry run will only pass if there is a public network"},{"line_number":85,"context_line":"        networks \u003d self.cloud.network.networks()"},{"line_number":86,"context_line":"        self._set_network_external(networks)"}],"source_content_type":"text/x-python","patch_set":1,"id":"0d2163d4_c6c70e6e","line":83,"in_reply_to":"6d8864cf_93377e5b","updated":"2024-07-03 14:11:57.000000000","message":"Follow up patch https://review.opendev.org/c/openstack/openstacksdk/+/923408 - I hope You had something like that in mind 😊","commit_id":"db6872f258500b970d0d961ad69ce4766c10e7fd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"08f892a467075488c47b7bae80e5d766452ee626","unresolved":true,"context_lines":[{"line_number":77,"context_line":"            project\u003dself.PROJECT_ID,"},{"line_number":78,"context_line":"        )"},{"line_number":79,"context_line":"        self.operator_cloud.delete_project(self.PROJECT_ID)"},{"line_number":80,"context_line":"        super().tearDown()"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def test_dry_run_option_pass(self):"},{"line_number":83,"context_line":"        # Dry run will only pass if there is a public network"}],"source_content_type":"text/x-python","patch_set":2,"id":"ee7fd9f9_d39407bc","line":80,"updated":"2024-07-03 15:42:32.000000000","message":"This call needs to move up to tearDown","commit_id":"a83ba99dd6b7ed2f46ee2fde0ecc6ddbfdee32ff"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b4abcb71626b2c6ea752513ff8362a01068235f0","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            project\u003dself.PROJECT_ID,"},{"line_number":78,"context_line":"        )"},{"line_number":79,"context_line":"        self.operator_cloud.delete_project(self.PROJECT_ID)"},{"line_number":80,"context_line":"        super().tearDown()"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def test_dry_run_option_pass(self):"},{"line_number":83,"context_line":"        # Dry run will only pass if there is a public network"}],"source_content_type":"text/x-python","patch_set":2,"id":"dbdfa5ae_fafd67e9","line":80,"in_reply_to":"ee7fd9f9_d39407bc","updated":"2024-07-03 15:45:13.000000000","message":"Done","commit_id":"a83ba99dd6b7ed2f46ee2fde0ecc6ddbfdee32ff"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"2d3049bec94ff61751c16187e059f7fd011dda49","unresolved":true,"context_lines":[{"line_number":53,"context_line":"                    \u0027TestAutoAllocatedTopology tests class\u0027"},{"line_number":54,"context_line":"                ),"},{"line_number":55,"context_line":"            }"},{"line_number":56,"context_line":"            if self.identity_version \u003d\u003d \u00273\u0027:"},{"line_number":57,"context_line":"                params[\u0027domain_id\u0027] \u003d self.operator_cloud.get_domain("},{"line_number":58,"context_line":"                    \u0027default\u0027"},{"line_number":59,"context_line":"                )[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"4388cb1a_bd645e17","line":56,"updated":"2024-07-03 15:47:36.000000000","message":"We do not support KS v2 api since multiple years now. It does not make any sense in my eyes, but is also not harming","commit_id":"3ee18eb1711c6e76188b58c0eb520443fd34750e"}]}
