)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a5dbe8b592378ca617717dade5ef4ab55be6b479","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add type hints for all find_* methods"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Tools like `pybaseright` can dig into openstack code and figure out"},{"line_number":10,"context_line":"semi-accurate return value even without typoe annotation."},{"line_number":11,"context_line":"The problem with such behaviour - it does not cover the logic difference"},{"line_number":12,"context_line":"based on \"ignore_missing\" parameter."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"4fda24ff_a1e5ede9","line":9,"updated":"2026-04-15 20:17:55.000000000","message":"```suggestion\nTools like `basedpyright` can dig into openstack code and figure out\n```","commit_id":"d2101d27494ef5df125abe18fea3620b40a1d2e9"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d8d515067feb2d0e39e06b62490a685f6bb08875","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"542083a1_988b0918","updated":"2026-04-15 16:26:42.000000000","message":"I\u0027d been planning to work on this. Delighted to be beaten to the punch 🥳 I\u0027ll come back and look at this before EOW","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"269248ba_315f6c64","updated":"2026-04-15 17:01:51.000000000","message":"This is great. I have the same comment across multiple files regarding what should be an unnecessary assert. I also have some nits but those are a case of \"fix if you can/want to\". Otherwise, lgtm","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"08fd5ca7673614bd9ebe126c4b97a4d3c911156b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"adc03da0_384be2a0","in_reply_to":"542083a1_988b0918","updated":"2026-04-15 16:37:18.000000000","message":"Also in the long-term I\u0027d like to drop the `ignore_missing` parameter entirely and insist users handle this themselves (`ignore_missing\u003dTrue` is almost always the desired behavior) but it\u0027ll be a while before we can remove this outright and we will benefit from these hints until then.","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"d3ea8ce8233cffb9dd6c81976d91e25e6dce1558","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e2e2998c_d7aa050f","in_reply_to":"542083a1_988b0918","updated":"2026-04-15 16:58:18.000000000","message":"I planned to submit a change like half a year ago, but I was busy with other staff. Today I reviewed a PR that adds hacks for type-linters in donwstream project and decided that it is better to finally invest time on trying to address this in SDK project 😉 Hope, I have not duplicated what you have locally","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"c1b8b033bca1fc93b848e646f031f4f578e8c2a8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"91a6342a_cd83475a","updated":"2026-04-15 17:48:05.000000000","message":"- changed class-level type hints for variables defined in setUp method\n- adjusted style to look consistent across the tests\n- removed unnecessary self.assertIsNotNone","commit_id":"360a06672f1b09f386c2f26251905d8cc7ae3501"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"efe2644c_b62d5fae","updated":"2026-04-15 18:00:07.000000000","message":"Small bit of miscommunication. Sorry about that","commit_id":"360a06672f1b09f386c2f26251905d8cc7ae3501"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"09012be5253d354ceb19ae297603b33ee53f7222","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"419666fa_ac222698","in_reply_to":"efe2644c_b62d5fae","updated":"2026-04-15 18:09:06.000000000","message":"np :) just couple lines fix","commit_id":"360a06672f1b09f386c2f26251905d8cc7ae3501"}],"openstack/tests/functional/block_storage/v3/test_group.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":64,"context_line":"        self.assertEqual(self.group_type.name, group_type.name)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        # find"},{"line_number":67,"context_line":"        group_type \u003d self.admin_block_storage_client.find_group_type("},{"line_number":68,"context_line":"            self.group_type.name,"},{"line_number":69,"context_line":"            ignore_missing\u003dFalse,"},{"line_number":70,"context_line":"        )"},{"line_number":71,"context_line":"        self.assertEqual(self.group_type.id, group_type.id)"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"2f959a14_e82b692c","line":69,"range":{"start_line":67,"start_character":69,"end_line":69,"end_character":33},"updated":"2026-04-15 17:01:51.000000000","message":"nit:\n\n```suggestion\n        group_type \u003d self.admin_block_storage_client.find_group_type(\n            self.group_type.name, ignore_missing\u003dFalse\n```","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        self.assertEqual(self.group_type.name, group_type.name)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        # find"},{"line_number":67,"context_line":"        group_type \u003d self.admin_block_storage_client.find_group_type("},{"line_number":68,"context_line":"            self.group_type.name,"},{"line_number":69,"context_line":"            ignore_missing\u003dFalse,"},{"line_number":70,"context_line":"        )"},{"line_number":71,"context_line":"        self.assertEqual(self.group_type.id, group_type.id)"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"eae54995_6f05872d","line":69,"range":{"start_line":67,"start_character":69,"end_line":69,"end_character":33},"in_reply_to":"2f959a14_e82b692c","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        self.assertEqual(self.group_type.name, group_type.name)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        # find"},{"line_number":67,"context_line":"        group_type \u003d self.admin_block_storage_client.find_group_type("},{"line_number":68,"context_line":"            self.group_type.name,"},{"line_number":69,"context_line":"            ignore_missing\u003dFalse,"},{"line_number":70,"context_line":"        )"},{"line_number":71,"context_line":"        self.assertEqual(self.group_type.id, group_type.id)"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"f2ba42c9_50146409","line":69,"range":{"start_line":67,"start_character":69,"end_line":69,"end_character":33},"in_reply_to":"2f959a14_e82b692c","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":216,"context_line":""},{"line_number":217,"context_line":"        # find"},{"line_number":218,"context_line":"        group_snapshot \u003d self.admin_block_storage_client.find_group_snapshot("},{"line_number":219,"context_line":"            self.group_snapshot.name,"},{"line_number":220,"context_line":"            ignore_missing\u003dFalse,"},{"line_number":221,"context_line":"        )"},{"line_number":222,"context_line":"        self.assertEqual(self.group_snapshot.id, group_snapshot.id)"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5afb7bb8_8be48aa1","line":220,"range":{"start_line":219,"start_character":0,"end_line":220,"end_character":33},"updated":"2026-04-15 17:01:51.000000000","message":"nit:\n\n```suggestion\n            self.group_snapshot.name, ignore_missing\u003dFalse\n```","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":216,"context_line":""},{"line_number":217,"context_line":"        # find"},{"line_number":218,"context_line":"        group_snapshot \u003d self.admin_block_storage_client.find_group_snapshot("},{"line_number":219,"context_line":"            self.group_snapshot.name,"},{"line_number":220,"context_line":"            ignore_missing\u003dFalse,"},{"line_number":221,"context_line":"        )"},{"line_number":222,"context_line":"        self.assertEqual(self.group_snapshot.id, group_snapshot.id)"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1f942335_cb165e3e","line":220,"range":{"start_line":219,"start_character":0,"end_line":220,"end_character":33},"in_reply_to":"5afb7bb8_8be48aa1","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":216,"context_line":""},{"line_number":217,"context_line":"        # find"},{"line_number":218,"context_line":"        group_snapshot \u003d self.admin_block_storage_client.find_group_snapshot("},{"line_number":219,"context_line":"            self.group_snapshot.name,"},{"line_number":220,"context_line":"            ignore_missing\u003dFalse,"},{"line_number":221,"context_line":"        )"},{"line_number":222,"context_line":"        self.assertEqual(self.group_snapshot.id, group_snapshot.id)"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"f7ffa0f0_6dfb4003","line":220,"range":{"start_line":219,"start_character":0,"end_line":220,"end_character":33},"in_reply_to":"5afb7bb8_8be48aa1","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"}],"openstack/tests/functional/compute/v2/test_flavor.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":107,"context_line":"        flavor \u003d self.admin_compute_client.find_flavor("},{"line_number":108,"context_line":"            flavor_name, ignore_missing\u003dFalse"},{"line_number":109,"context_line":"        )"},{"line_number":110,"context_line":"        self.assertIsNotNone(flavor)"},{"line_number":111,"context_line":"        self.assertEqual(flavor_name, flavor.name)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        # get demo project for access control"}],"source_content_type":"text/x-python","patch_set":1,"id":"27dfa0b4_c8e94fd2","line":110,"updated":"2026-04-15 17:01:51.000000000","message":"This should be dropped since it\u0027s misleading (it\u0027ll never return `None` now).\n\nYou could have also added `assert flavor is None` to keep mypy happy here but what you\u0027ve done is fine. This would be needed since [there\u0027s no way to define custom assertions currently](https://discuss.python.org/t/add-alternatives-to-typeis-for-user-defined-assertions/106674).","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        flavor \u003d self.admin_compute_client.find_flavor("},{"line_number":108,"context_line":"            flavor_name, ignore_missing\u003dFalse"},{"line_number":109,"context_line":"        )"},{"line_number":110,"context_line":"        self.assertIsNotNone(flavor)"},{"line_number":111,"context_line":"        self.assertEqual(flavor_name, flavor.name)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        # get demo project for access control"}],"source_content_type":"text/x-python","patch_set":1,"id":"aa24edbb_a62c5009","line":110,"in_reply_to":"27dfa0b4_c8e94fd2","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        flavor \u003d self.admin_compute_client.find_flavor("},{"line_number":108,"context_line":"            flavor_name, ignore_missing\u003dFalse"},{"line_number":109,"context_line":"        )"},{"line_number":110,"context_line":"        self.assertIsNotNone(flavor)"},{"line_number":111,"context_line":"        self.assertEqual(flavor_name, flavor.name)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        # get demo project for access control"}],"source_content_type":"text/x-python","patch_set":1,"id":"bed221de_8e62c45a","line":110,"in_reply_to":"27dfa0b4_c8e94fd2","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":126,"context_line":"        flavor \u003d self.compute_client.find_flavor("},{"line_number":127,"context_line":"            flavor_name, ignore_missing\u003dFalse"},{"line_number":128,"context_line":"        )"},{"line_number":129,"context_line":"        self.assertIsNotNone(flavor)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        # remove \u0027demo\u0027 access and check we can\u0027t find it anymore"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"a08050e8_6252e72e","line":129,"updated":"2026-04-15 17:01:51.000000000","message":"ditto","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        flavor \u003d self.compute_client.find_flavor("},{"line_number":127,"context_line":"            flavor_name, ignore_missing\u003dFalse"},{"line_number":128,"context_line":"        )"},{"line_number":129,"context_line":"        self.assertIsNotNone(flavor)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        # remove \u0027demo\u0027 access and check we can\u0027t find it anymore"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"248e663e_3137d31a","line":129,"in_reply_to":"a08050e8_6252e72e","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        flavor \u003d self.compute_client.find_flavor("},{"line_number":127,"context_line":"            flavor_name, ignore_missing\u003dFalse"},{"line_number":128,"context_line":"        )"},{"line_number":129,"context_line":"        self.assertIsNotNone(flavor)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        # remove \u0027demo\u0027 access and check we can\u0027t find it anymore"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5523ab4f_666ad3aa","line":129,"in_reply_to":"a08050e8_6252e72e","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":true,"context_lines":[{"line_number":103,"context_line":"        self.assertIsNone(flavor)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        # validate we can see the new flavor ourselves"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        flavor \u003d self.admin_compute_client.find_flavor("},{"line_number":108,"context_line":"            flavor_name, ignore_missing\u003dTrue"},{"line_number":109,"context_line":"        )"},{"line_number":110,"context_line":"        assert flavor is not None"},{"line_number":111,"context_line":"        self.assertEqual(flavor_name, flavor.name)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        # get demo project for access control"}],"source_content_type":"text/x-python","patch_set":2,"id":"a98f2a49_f4e6351e","line":110,"range":{"start_line":106,"start_character":1,"end_line":110,"end_character":33},"updated":"2026-04-15 18:00:07.000000000","message":"apologies, what I was suggesting here was to just drop the `assertIsNotNone`. It\u0027s better to pass `ignore_missing\u003dFalse` as you\u0027ve done.\n\n```suggestion\n\n        flavor \u003d self.admin_compute_client.find_flavor(\n            flavor_name, ignore_missing\u003dFalse\n        )\n```","commit_id":"360a06672f1b09f386c2f26251905d8cc7ae3501"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"eae2a5eb0fd876c387cc14d93d9a0a0a25a13eb4","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        self.assertIsNone(flavor)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        # validate we can see the new flavor ourselves"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        flavor \u003d self.admin_compute_client.find_flavor("},{"line_number":108,"context_line":"            flavor_name, ignore_missing\u003dTrue"},{"line_number":109,"context_line":"        )"},{"line_number":110,"context_line":"        assert flavor is not None"},{"line_number":111,"context_line":"        self.assertEqual(flavor_name, flavor.name)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        # get demo project for access control"}],"source_content_type":"text/x-python","patch_set":2,"id":"518ce1d2_40d52741","line":110,"range":{"start_line":106,"start_character":1,"end_line":110,"end_character":33},"in_reply_to":"a98f2a49_f4e6351e","updated":"2026-04-15 18:09:30.000000000","message":"Done","commit_id":"360a06672f1b09f386c2f26251905d8cc7ae3501"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":true,"context_lines":[{"line_number":122,"context_line":"        )"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        # verify that the \u0027demo\u0027 user now has access to it"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        flavor \u003d self.compute_client.find_flavor("},{"line_number":127,"context_line":"            flavor_name, ignore_missing\u003dTrue"},{"line_number":128,"context_line":"        )"},{"line_number":129,"context_line":"        assert flavor is not None"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        # remove \u0027demo\u0027 access and check we can\u0027t find it anymore"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"11d7d420_909db7c9","line":129,"range":{"start_line":125,"start_character":1,"end_line":129,"end_character":33},"updated":"2026-04-15 18:00:07.000000000","message":"```suggestion\n\n        flavor \u003d self.compute_client.find_flavor(\n            flavor_name, ignore_missing\u003dFalse\n        )\n```","commit_id":"360a06672f1b09f386c2f26251905d8cc7ae3501"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"eae2a5eb0fd876c387cc14d93d9a0a0a25a13eb4","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        )"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        # verify that the \u0027demo\u0027 user now has access to it"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        flavor \u003d self.compute_client.find_flavor("},{"line_number":127,"context_line":"            flavor_name, ignore_missing\u003dTrue"},{"line_number":128,"context_line":"        )"},{"line_number":129,"context_line":"        assert flavor is not None"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        # remove \u0027demo\u0027 access and check we can\u0027t find it anymore"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bcf8504e_86a5301e","line":129,"range":{"start_line":125,"start_character":1,"end_line":129,"end_character":33},"in_reply_to":"11d7d420_909db7c9","updated":"2026-04-15 18:09:30.000000000","message":"Done","commit_id":"360a06672f1b09f386c2f26251905d8cc7ae3501"}],"openstack/tests/functional/compute/v2/test_image.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        image \u003d self.admin_compute_client.find_image("},{"line_number":40,"context_line":"            self.image.name, ignore_missing\u003dFalse"},{"line_number":41,"context_line":"        )"},{"line_number":42,"context_line":"        self.assertIsInstance(image, _image.Image)"},{"line_number":43,"context_line":"        self.assertEqual(self.image.id, image.id)"},{"line_number":44,"context_line":"        self.assertEqual(self.image.name, image.name)"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"e0aa99a6_87db05c1","line":42,"updated":"2026-04-15 17:01:51.000000000","message":"you *could* delete this since mypy should handle it for us, but this is a runtime check so perhaps it\u0027s best to keep it","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"}],"openstack/tests/functional/load_balancer/v2/test_load_balancer.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":25,"context_line":"from openstack.tests.functional import base"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class TestLoadBalancer(base.BaseFunctionalTest):"},{"line_number":29,"context_line":"    HM_ID \u003d None"},{"line_number":30,"context_line":"    L7POLICY_ID \u003d None"},{"line_number":31,"context_line":"    LB_ID \u003d None"},{"line_number":32,"context_line":"    LISTENER_ID \u003d None"},{"line_number":33,"context_line":"    MEMBER_ID \u003d None"},{"line_number":34,"context_line":"    POOL_ID \u003d None"},{"line_number":35,"context_line":"    VIP_SUBNET_ID \u003d None"},{"line_number":36,"context_line":"    PROJECT_ID \u003d None"},{"line_number":37,"context_line":"    FLAVOR_PROFILE_ID \u003d None"},{"line_number":38,"context_line":"    FLAVOR_ID \u003d None"},{"line_number":39,"context_line":"    AVAILABILITY_ZONE_PROFILE_ID \u003d None"},{"line_number":40,"context_line":"    AMPHORA_ID \u003d None"},{"line_number":41,"context_line":"    PROTOCOL \u003d \u0027HTTP\u0027"},{"line_number":42,"context_line":"    PROTOCOL_PORT \u003d 80"},{"line_number":43,"context_line":"    LB_ALGORITHM \u003d \u0027ROUND_ROBIN\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"277a8170_b4bce455","line":40,"range":{"start_line":28,"start_character":48,"end_line":40,"end_character":21},"updated":"2026-04-15 17:01:51.000000000","message":"If you do this:\n\n```suggestion\nclass TestLoadBalancer(base.BaseFunctionalTest):\n    HM_ID: str\n    L7POLICY_ID: str\n    LB_ID: str\n    LISTENER_ID: str\n    MEMBER_ID: str\n    POOL_ID: str\n    VIP_SUBNET_ID: str\n    PROJECT_ID: str\n    FLAVOR_PROFILE_ID: str\n    FLAVOR_ID: str\n    AVAILABILITY_ZONE_PROFILE_ID: str\n    AMPHORA_ID: str\n```\n\nYou can drop the new `assert` below","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from openstack.tests.functional import base"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class TestLoadBalancer(base.BaseFunctionalTest):"},{"line_number":29,"context_line":"    HM_ID \u003d None"},{"line_number":30,"context_line":"    L7POLICY_ID \u003d None"},{"line_number":31,"context_line":"    LB_ID \u003d None"},{"line_number":32,"context_line":"    LISTENER_ID \u003d None"},{"line_number":33,"context_line":"    MEMBER_ID \u003d None"},{"line_number":34,"context_line":"    POOL_ID \u003d None"},{"line_number":35,"context_line":"    VIP_SUBNET_ID \u003d None"},{"line_number":36,"context_line":"    PROJECT_ID \u003d None"},{"line_number":37,"context_line":"    FLAVOR_PROFILE_ID \u003d None"},{"line_number":38,"context_line":"    FLAVOR_ID \u003d None"},{"line_number":39,"context_line":"    AVAILABILITY_ZONE_PROFILE_ID \u003d None"},{"line_number":40,"context_line":"    AMPHORA_ID \u003d None"},{"line_number":41,"context_line":"    PROTOCOL \u003d \u0027HTTP\u0027"},{"line_number":42,"context_line":"    PROTOCOL_PORT \u003d 80"},{"line_number":43,"context_line":"    LB_ALGORITHM \u003d \u0027ROUND_ROBIN\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ae96fc0_0c05c3f9","line":40,"range":{"start_line":28,"start_character":48,"end_line":40,"end_character":21},"in_reply_to":"277a8170_b4bce455","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":478,"context_line":"        self.assertEqual(self.POOL_NAME, test_pool.name)"},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"    def test_member_find(self):"},{"line_number":481,"context_line":"        assert self.POOL_ID is not None"},{"line_number":482,"context_line":"        test_member \u003d self.operator_cloud.load_balancer.find_member("},{"line_number":483,"context_line":"            self.MEMBER_NAME, self.POOL_ID, ignore_missing\u003dFalse"},{"line_number":484,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"90bed225_44ddf795","line":481,"updated":"2026-04-15 17:01:51.000000000","message":"here","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":478,"context_line":"        self.assertEqual(self.POOL_NAME, test_pool.name)"},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"    def test_member_find(self):"},{"line_number":481,"context_line":"        assert self.POOL_ID is not None"},{"line_number":482,"context_line":"        test_member \u003d self.operator_cloud.load_balancer.find_member("},{"line_number":483,"context_line":"            self.MEMBER_NAME, self.POOL_ID, ignore_missing\u003dFalse"},{"line_number":484,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"07ea5a34_ad074763","line":481,"in_reply_to":"90bed225_44ddf795","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":478,"context_line":"        self.assertEqual(self.POOL_NAME, test_pool.name)"},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"    def test_member_find(self):"},{"line_number":481,"context_line":"        assert self.POOL_ID is not None"},{"line_number":482,"context_line":"        test_member \u003d self.operator_cloud.load_balancer.find_member("},{"line_number":483,"context_line":"            self.MEMBER_NAME, self.POOL_ID, ignore_missing\u003dFalse"},{"line_number":484,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"4dedaf49_291d6daf","line":481,"in_reply_to":"90bed225_44ddf795","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"}],"openstack/tests/functional/network/v2/test_local_ip_association.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestLocalIPAssociation(base.BaseFunctionalTest):"},{"line_number":21,"context_line":"    LOCAL_IP_ID \u003d None"},{"line_number":22,"context_line":"    FIXED_PORT_ID \u003d None"},{"line_number":23,"context_line":"    FIXED_IP \u003d None"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def setUp(self):"},{"line_number":26,"context_line":"        super().setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"e955e719_4ccf212b","line":23,"range":{"start_line":21,"start_character":0,"end_line":23,"end_character":19},"updated":"2026-04-15 17:01:51.000000000","message":"As before\n\n```suggestion\n    LOCAL_IP_ID: str\n    FIXED_PORT_ID: str\n    FIXED_IP: str\n```","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestLocalIPAssociation(base.BaseFunctionalTest):"},{"line_number":21,"context_line":"    LOCAL_IP_ID \u003d None"},{"line_number":22,"context_line":"    FIXED_PORT_ID \u003d None"},{"line_number":23,"context_line":"    FIXED_IP \u003d None"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def setUp(self):"},{"line_number":26,"context_line":"        super().setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ff56f4c_33ba4fac","line":23,"range":{"start_line":21,"start_character":0,"end_line":23,"end_character":19},"in_reply_to":"e955e719_4ccf212b","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestLocalIPAssociation(base.BaseFunctionalTest):"},{"line_number":21,"context_line":"    LOCAL_IP_ID \u003d None"},{"line_number":22,"context_line":"    FIXED_PORT_ID \u003d None"},{"line_number":23,"context_line":"    FIXED_IP \u003d None"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def setUp(self):"},{"line_number":26,"context_line":"        super().setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"e9b1aaaf_1ce83245","line":23,"range":{"start_line":21,"start_character":0,"end_line":23,"end_character":19},"in_reply_to":"e955e719_4ccf212b","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":54,"context_line":"        self.assertIsNone(sot)"},{"line_number":55,"context_line":"        super().tearDown()"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def test_find(self):"},{"line_number":58,"context_line":"        assert self.FIXED_PORT_ID is not None"},{"line_number":59,"context_line":"        assert self.LOCAL_IP_ID is not None"},{"line_number":60,"context_line":"        sot \u003d self.user_cloud.network.find_local_ip_association("},{"line_number":61,"context_line":"            self.FIXED_PORT_ID, self.LOCAL_IP_ID, ignore_missing\u003dFalse"},{"line_number":62,"context_line":"        )"},{"line_number":63,"context_line":"        self.assertEqual(self.FIXED_PORT_ID, sot.fixed_port_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f9b439e_b38e0bc9","line":60,"range":{"start_line":57,"start_character":24,"end_line":60,"end_character":64},"updated":"2026-04-15 17:01:51.000000000","message":"and you can drop these\n\n```suggestion\n    def test_find(self):\n        sot \u003d self.user_cloud.network.find_local_ip_association(\n```","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        self.assertIsNone(sot)"},{"line_number":55,"context_line":"        super().tearDown()"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def test_find(self):"},{"line_number":58,"context_line":"        assert self.FIXED_PORT_ID is not None"},{"line_number":59,"context_line":"        assert self.LOCAL_IP_ID is not None"},{"line_number":60,"context_line":"        sot \u003d self.user_cloud.network.find_local_ip_association("},{"line_number":61,"context_line":"            self.FIXED_PORT_ID, self.LOCAL_IP_ID, ignore_missing\u003dFalse"},{"line_number":62,"context_line":"        )"},{"line_number":63,"context_line":"        self.assertEqual(self.FIXED_PORT_ID, sot.fixed_port_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a1254e1_dbbd1a39","line":60,"range":{"start_line":57,"start_character":24,"end_line":60,"end_character":64},"in_reply_to":"7f9b439e_b38e0bc9","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        self.assertIsNone(sot)"},{"line_number":55,"context_line":"        super().tearDown()"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def test_find(self):"},{"line_number":58,"context_line":"        assert self.FIXED_PORT_ID is not None"},{"line_number":59,"context_line":"        assert self.LOCAL_IP_ID is not None"},{"line_number":60,"context_line":"        sot \u003d self.user_cloud.network.find_local_ip_association("},{"line_number":61,"context_line":"            self.FIXED_PORT_ID, self.LOCAL_IP_ID, ignore_missing\u003dFalse"},{"line_number":62,"context_line":"        )"},{"line_number":63,"context_line":"        self.assertEqual(self.FIXED_PORT_ID, sot.fixed_port_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3b26b440_b3480248","line":60,"range":{"start_line":57,"start_character":24,"end_line":60,"end_character":64},"in_reply_to":"7f9b439e_b38e0bc9","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"}],"openstack/tests/functional/network/v2/test_network_ip_availability.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestNetworkIPAvailability(base.BaseFunctionalTest):"},{"line_number":21,"context_line":"    IPV4 \u003d 4"},{"line_number":22,"context_line":"    CIDR \u003d \"10.100.0.0/24\""},{"line_number":23,"context_line":"    NET_ID \u003d None"},{"line_number":24,"context_line":"    SUB_ID \u003d None"},{"line_number":25,"context_line":"    PORT_ID \u003d None"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def setUp(self):"},{"line_number":28,"context_line":"        super().setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"86c392ee_a420d8cd","line":25,"range":{"start_line":22,"start_character":26,"end_line":25,"end_character":18},"updated":"2026-04-15 17:01:51.000000000","message":"```suggestion\n    CIDR \u003d \"10.100.0.0/24\"\n    NET_ID: str\n    SUB_ID: str\n    PORT_ID: str\n```","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestNetworkIPAvailability(base.BaseFunctionalTest):"},{"line_number":21,"context_line":"    IPV4 \u003d 4"},{"line_number":22,"context_line":"    CIDR \u003d \"10.100.0.0/24\""},{"line_number":23,"context_line":"    NET_ID \u003d None"},{"line_number":24,"context_line":"    SUB_ID \u003d None"},{"line_number":25,"context_line":"    PORT_ID \u003d None"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def setUp(self):"},{"line_number":28,"context_line":"        super().setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"19e1e1f8_0756d39c","line":25,"range":{"start_line":22,"start_character":26,"end_line":25,"end_character":18},"in_reply_to":"86c392ee_a420d8cd","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestNetworkIPAvailability(base.BaseFunctionalTest):"},{"line_number":21,"context_line":"    IPV4 \u003d 4"},{"line_number":22,"context_line":"    CIDR \u003d \"10.100.0.0/24\""},{"line_number":23,"context_line":"    NET_ID \u003d None"},{"line_number":24,"context_line":"    SUB_ID \u003d None"},{"line_number":25,"context_line":"    PORT_ID \u003d None"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def setUp(self):"},{"line_number":28,"context_line":"        super().setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"33791441_8dcf8cd8","line":25,"range":{"start_line":22,"start_character":26,"end_line":25,"end_character":18},"in_reply_to":"86c392ee_a420d8cd","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":69,"context_line":"        self.assertIsNone(sot)"},{"line_number":70,"context_line":"        super().tearDown()"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def test_find(self):"},{"line_number":73,"context_line":"        assert self.NET_ID is not None"},{"line_number":74,"context_line":"        sot \u003d self.operator_cloud.network.find_network_ip_availability("},{"line_number":75,"context_line":"            self.NET_ID, ignore_missing\u003dFalse"},{"line_number":76,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"d734e125_578aaaef","line":73,"range":{"start_line":72,"start_character":24,"end_line":73,"end_character":38},"updated":"2026-04-15 17:01:51.000000000","message":"```suggestion\n    def test_find(self):\n```","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        self.assertIsNone(sot)"},{"line_number":70,"context_line":"        super().tearDown()"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def test_find(self):"},{"line_number":73,"context_line":"        assert self.NET_ID is not None"},{"line_number":74,"context_line":"        sot \u003d self.operator_cloud.network.find_network_ip_availability("},{"line_number":75,"context_line":"            self.NET_ID, ignore_missing\u003dFalse"},{"line_number":76,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"35917f60_88d57d9f","line":73,"range":{"start_line":72,"start_character":24,"end_line":73,"end_character":38},"in_reply_to":"d734e125_578aaaef","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        self.assertIsNone(sot)"},{"line_number":70,"context_line":"        super().tearDown()"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def test_find(self):"},{"line_number":73,"context_line":"        assert self.NET_ID is not None"},{"line_number":74,"context_line":"        sot \u003d self.operator_cloud.network.find_network_ip_availability("},{"line_number":75,"context_line":"            self.NET_ID, ignore_missing\u003dFalse"},{"line_number":76,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"3dbf67b1_7eb8ecff","line":73,"range":{"start_line":72,"start_character":24,"end_line":73,"end_character":38},"in_reply_to":"d734e125_578aaaef","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"}],"openstack/tests/functional/network/v2/test_network_segment_range.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestNetworkSegmentRange(base.BaseFunctionalTest):"},{"line_number":21,"context_line":"    NETWORK_SEGMENT_RANGE_ID \u003d None"},{"line_number":22,"context_line":"    NAME \u003d \"test_name\""},{"line_number":23,"context_line":"    DEFAULT \u003d False"},{"line_number":24,"context_line":"    SHARED \u003d False"}],"source_content_type":"text/x-python","patch_set":1,"id":"9e799b46_ff4468fd","line":21,"updated":"2026-04-15 17:01:51.000000000","message":"```suggestion\n    NETWORK_SEGMENT_RANGE_ID: str\n```","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestNetworkSegmentRange(base.BaseFunctionalTest):"},{"line_number":21,"context_line":"    NETWORK_SEGMENT_RANGE_ID \u003d None"},{"line_number":22,"context_line":"    NAME \u003d \"test_name\""},{"line_number":23,"context_line":"    DEFAULT \u003d False"},{"line_number":24,"context_line":"    SHARED \u003d False"}],"source_content_type":"text/x-python","patch_set":1,"id":"89b7ec4f_95e87c38","line":21,"in_reply_to":"9e799b46_ff4468fd","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestNetworkSegmentRange(base.BaseFunctionalTest):"},{"line_number":21,"context_line":"    NETWORK_SEGMENT_RANGE_ID \u003d None"},{"line_number":22,"context_line":"    NAME \u003d \"test_name\""},{"line_number":23,"context_line":"    DEFAULT \u003d False"},{"line_number":24,"context_line":"    SHARED \u003d False"}],"source_content_type":"text/x-python","patch_set":1,"id":"b9667327_ad57dfdd","line":21,"in_reply_to":"9e799b46_ff4468fd","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":78,"context_line":"            )"},{"line_number":79,"context_line":"        )"},{"line_number":80,"context_line":"        self.assertIsNone(del_test_seg_range)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def test_find(self):"},{"line_number":83,"context_line":"        assert self.NETWORK_SEGMENT_RANGE_ID is not None"},{"line_number":84,"context_line":"        test_seg_range \u003d ("},{"line_number":85,"context_line":"            self.operator_cloud.network.find_network_segment_range("},{"line_number":86,"context_line":"                self.NETWORK_SEGMENT_RANGE_ID, ignore_missing\u003dFalse"}],"source_content_type":"text/x-python","patch_set":1,"id":"41e3bca3_b5477ffa","line":83,"range":{"start_line":81,"start_character":1,"end_line":83,"end_character":56},"updated":"2026-04-15 17:01:51.000000000","message":"```suggestion\n\n    def test_find(self):\n```","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            )"},{"line_number":79,"context_line":"        )"},{"line_number":80,"context_line":"        self.assertIsNone(del_test_seg_range)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def test_find(self):"},{"line_number":83,"context_line":"        assert self.NETWORK_SEGMENT_RANGE_ID is not None"},{"line_number":84,"context_line":"        test_seg_range \u003d ("},{"line_number":85,"context_line":"            self.operator_cloud.network.find_network_segment_range("},{"line_number":86,"context_line":"                self.NETWORK_SEGMENT_RANGE_ID, ignore_missing\u003dFalse"}],"source_content_type":"text/x-python","patch_set":1,"id":"a7fa5142_292b94e6","line":83,"range":{"start_line":81,"start_character":1,"end_line":83,"end_character":56},"in_reply_to":"41e3bca3_b5477ffa","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            )"},{"line_number":79,"context_line":"        )"},{"line_number":80,"context_line":"        self.assertIsNone(del_test_seg_range)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def test_find(self):"},{"line_number":83,"context_line":"        assert self.NETWORK_SEGMENT_RANGE_ID is not None"},{"line_number":84,"context_line":"        test_seg_range \u003d ("},{"line_number":85,"context_line":"            self.operator_cloud.network.find_network_segment_range("},{"line_number":86,"context_line":"                self.NETWORK_SEGMENT_RANGE_ID, ignore_missing\u003dFalse"}],"source_content_type":"text/x-python","patch_set":1,"id":"ab3f7913_1bcf165d","line":83,"range":{"start_line":81,"start_character":1,"end_line":83,"end_character":56},"in_reply_to":"41e3bca3_b5477ffa","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"}],"openstack/tests/functional/network/v2/test_port_forwarding.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":24,"context_line":"    IPV4 \u003d 4"},{"line_number":25,"context_line":"    FIP_ID \u003d None"},{"line_number":26,"context_line":"    EXT_CIDR \u003d \"10.100.0.0/24\""},{"line_number":27,"context_line":"    INT_CIDR \u003d \"10.101.0.0/24\""},{"line_number":28,"context_line":"    EXT_NET_ID \u003d None"},{"line_number":29,"context_line":"    INT_NET_ID \u003d None"},{"line_number":30,"context_line":"    EXT_SUB_ID \u003d None"},{"line_number":31,"context_line":"    INT_SUB_ID \u003d None"},{"line_number":32,"context_line":"    ROT_ID \u003d None"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    INTERNAL_PORT_ID \u003d None"},{"line_number":35,"context_line":"    INTERNAL_IP_ADDRESS \u003d None"},{"line_number":36,"context_line":"    INTERNAL_PORT \u003d 8080"},{"line_number":37,"context_line":"    EXTERNAL_PORT \u003d 80"},{"line_number":38,"context_line":"    PROTOCOL \u003d \"tcp\""}],"source_content_type":"text/x-python","patch_set":1,"id":"cc95ed99_7bb6a222","line":35,"range":{"start_line":27,"start_character":30,"end_line":35,"end_character":30},"updated":"2026-04-15 17:01:51.000000000","message":"```suggestion\n    INT_CIDR \u003d \"10.101.0.0/24\"\n    EXT_NET_ID: str\n    INT_NET_ID: str\n    EXT_SUB_ID: str\n    INT_SUB_ID: str\n    ROT_ID: str\n\n    INTERNAL_PORT_ID: str\n    INTERNAL_IP_ADDRESS: str\n```","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    IPV4 \u003d 4"},{"line_number":25,"context_line":"    FIP_ID \u003d None"},{"line_number":26,"context_line":"    EXT_CIDR \u003d \"10.100.0.0/24\""},{"line_number":27,"context_line":"    INT_CIDR \u003d \"10.101.0.0/24\""},{"line_number":28,"context_line":"    EXT_NET_ID \u003d None"},{"line_number":29,"context_line":"    INT_NET_ID \u003d None"},{"line_number":30,"context_line":"    EXT_SUB_ID \u003d None"},{"line_number":31,"context_line":"    INT_SUB_ID \u003d None"},{"line_number":32,"context_line":"    ROT_ID \u003d None"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    INTERNAL_PORT_ID \u003d None"},{"line_number":35,"context_line":"    INTERNAL_IP_ADDRESS \u003d None"},{"line_number":36,"context_line":"    INTERNAL_PORT \u003d 8080"},{"line_number":37,"context_line":"    EXTERNAL_PORT \u003d 80"},{"line_number":38,"context_line":"    PROTOCOL \u003d \"tcp\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9ba426a8_7357b856","line":35,"range":{"start_line":27,"start_character":30,"end_line":35,"end_character":30},"in_reply_to":"cc95ed99_7bb6a222","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    IPV4 \u003d 4"},{"line_number":25,"context_line":"    FIP_ID \u003d None"},{"line_number":26,"context_line":"    EXT_CIDR \u003d \"10.100.0.0/24\""},{"line_number":27,"context_line":"    INT_CIDR \u003d \"10.101.0.0/24\""},{"line_number":28,"context_line":"    EXT_NET_ID \u003d None"},{"line_number":29,"context_line":"    INT_NET_ID \u003d None"},{"line_number":30,"context_line":"    EXT_SUB_ID \u003d None"},{"line_number":31,"context_line":"    INT_SUB_ID \u003d None"},{"line_number":32,"context_line":"    ROT_ID \u003d None"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    INTERNAL_PORT_ID \u003d None"},{"line_number":35,"context_line":"    INTERNAL_IP_ADDRESS \u003d None"},{"line_number":36,"context_line":"    INTERNAL_PORT \u003d 8080"},{"line_number":37,"context_line":"    EXTERNAL_PORT \u003d 80"},{"line_number":38,"context_line":"    PROTOCOL \u003d \"tcp\""}],"source_content_type":"text/x-python","patch_set":1,"id":"d79c897c_e6c9c52d","line":35,"range":{"start_line":27,"start_character":30,"end_line":35,"end_character":30},"in_reply_to":"cc95ed99_7bb6a222","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":165,"context_line":"        self.assertEqual(self.name, sub.name)"},{"line_number":166,"context_line":"        return sub"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def test_find(self):"},{"line_number":169,"context_line":"        assert self.FIP_ID is not None"},{"line_number":170,"context_line":"        sot \u003d self.user_cloud.network.find_port_forwarding("},{"line_number":171,"context_line":"            self.PF.id, self.FIP_ID, ignore_missing\u003dFalse"},{"line_number":172,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"7901e73d_dea997bb","line":169,"range":{"start_line":168,"start_character":24,"end_line":169,"end_character":38},"updated":"2026-04-15 17:01:51.000000000","message":"```suggestion\n    def test_find(self):\n```","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        self.assertEqual(self.name, sub.name)"},{"line_number":166,"context_line":"        return sub"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def test_find(self):"},{"line_number":169,"context_line":"        assert self.FIP_ID is not None"},{"line_number":170,"context_line":"        sot \u003d self.user_cloud.network.find_port_forwarding("},{"line_number":171,"context_line":"            self.PF.id, self.FIP_ID, ignore_missing\u003dFalse"},{"line_number":172,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"58abe080_dd788d53","line":169,"range":{"start_line":168,"start_character":24,"end_line":169,"end_character":38},"in_reply_to":"7901e73d_dea997bb","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        self.assertEqual(self.name, sub.name)"},{"line_number":166,"context_line":"        return sub"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def test_find(self):"},{"line_number":169,"context_line":"        assert self.FIP_ID is not None"},{"line_number":170,"context_line":"        sot \u003d self.user_cloud.network.find_port_forwarding("},{"line_number":171,"context_line":"            self.PF.id, self.FIP_ID, ignore_missing\u003dFalse"},{"line_number":172,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"d04ef7c3_cec7bc07","line":169,"range":{"start_line":168,"start_character":24,"end_line":169,"end_character":38},"in_reply_to":"7901e73d_dea997bb","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"}],"openstack/tests/functional/network/v2/test_qos_bandwidth_limit_rule.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestQoSBandwidthLimitRule(base.BaseFunctionalTest):"},{"line_number":21,"context_line":"    QOS_POLICY_ID \u003d None"},{"line_number":22,"context_line":"    QOS_IS_SHARED \u003d False"},{"line_number":23,"context_line":"    QOS_POLICY_DESCRIPTION \u003d \"QoS policy description\""},{"line_number":24,"context_line":"    RULE_MAX_KBPS \u003d 1500"}],"source_content_type":"text/x-python","patch_set":1,"id":"f88a0189_cdfaf579","line":21,"updated":"2026-04-15 17:01:51.000000000","message":"```suggestion\n    QOS_POLICY_ID: str\n```","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestQoSBandwidthLimitRule(base.BaseFunctionalTest):"},{"line_number":21,"context_line":"    QOS_POLICY_ID \u003d None"},{"line_number":22,"context_line":"    QOS_IS_SHARED \u003d False"},{"line_number":23,"context_line":"    QOS_POLICY_DESCRIPTION \u003d \"QoS policy description\""},{"line_number":24,"context_line":"    RULE_MAX_KBPS \u003d 1500"}],"source_content_type":"text/x-python","patch_set":1,"id":"2f0f5c11_20a33c6a","line":21,"in_reply_to":"f88a0189_cdfaf579","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestQoSBandwidthLimitRule(base.BaseFunctionalTest):"},{"line_number":21,"context_line":"    QOS_POLICY_ID \u003d None"},{"line_number":22,"context_line":"    QOS_IS_SHARED \u003d False"},{"line_number":23,"context_line":"    QOS_POLICY_DESCRIPTION \u003d \"QoS policy description\""},{"line_number":24,"context_line":"    RULE_MAX_KBPS \u003d 1500"}],"source_content_type":"text/x-python","patch_set":1,"id":"50c59367_6d8f0676","line":21,"in_reply_to":"f88a0189_cdfaf579","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":73,"context_line":"        self.assertIsNone(qos_policy)"},{"line_number":74,"context_line":"        super().tearDown()"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def test_find(self):"},{"line_number":77,"context_line":"        assert self.QOS_POLICY_ID is not None"},{"line_number":78,"context_line":"        sot \u003d self.operator_cloud.network.find_qos_bandwidth_limit_rule("},{"line_number":79,"context_line":"            self.RULE_ID, self.QOS_POLICY_ID, ignore_missing\u003dFalse"},{"line_number":80,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"a075da16_f7d4799e","line":77,"range":{"start_line":76,"start_character":24,"end_line":77,"end_character":45},"updated":"2026-04-15 17:01:51.000000000","message":"```suggestion\n    def test_find(self):\n```","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        self.assertIsNone(qos_policy)"},{"line_number":74,"context_line":"        super().tearDown()"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def test_find(self):"},{"line_number":77,"context_line":"        assert self.QOS_POLICY_ID is not None"},{"line_number":78,"context_line":"        sot \u003d self.operator_cloud.network.find_qos_bandwidth_limit_rule("},{"line_number":79,"context_line":"            self.RULE_ID, self.QOS_POLICY_ID, ignore_missing\u003dFalse"},{"line_number":80,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"267b3070_3a47fe82","line":77,"range":{"start_line":76,"start_character":24,"end_line":77,"end_character":45},"in_reply_to":"a075da16_f7d4799e","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        self.assertIsNone(qos_policy)"},{"line_number":74,"context_line":"        super().tearDown()"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def test_find(self):"},{"line_number":77,"context_line":"        assert self.QOS_POLICY_ID is not None"},{"line_number":78,"context_line":"        sot \u003d self.operator_cloud.network.find_qos_bandwidth_limit_rule("},{"line_number":79,"context_line":"            self.RULE_ID, self.QOS_POLICY_ID, ignore_missing\u003dFalse"},{"line_number":80,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"e5a48f3a_07d93e65","line":77,"range":{"start_line":76,"start_character":24,"end_line":77,"end_character":45},"in_reply_to":"a075da16_f7d4799e","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"}],"openstack/tests/functional/network/v2/test_qos_dscp_marking_rule.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestQoSDSCPMarkingRule(base.BaseFunctionalTest):"},{"line_number":21,"context_line":"    QOS_POLICY_ID \u003d None"},{"line_number":22,"context_line":"    QOS_IS_SHARED \u003d False"},{"line_number":23,"context_line":"    QOS_POLICY_DESCRIPTION \u003d \"QoS policy description\""},{"line_number":24,"context_line":"    RULE_DSCP_MARK \u003d 36"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a189d4d_2ef39ddf","line":21,"updated":"2026-04-15 17:01:51.000000000","message":"```suggestion\n    QOS_POLICY_ID: str\n```","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestQoSDSCPMarkingRule(base.BaseFunctionalTest):"},{"line_number":21,"context_line":"    QOS_POLICY_ID \u003d None"},{"line_number":22,"context_line":"    QOS_IS_SHARED \u003d False"},{"line_number":23,"context_line":"    QOS_POLICY_DESCRIPTION \u003d \"QoS policy description\""},{"line_number":24,"context_line":"    RULE_DSCP_MARK \u003d 36"}],"source_content_type":"text/x-python","patch_set":1,"id":"95558d95_51980746","line":21,"in_reply_to":"3a189d4d_2ef39ddf","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestQoSDSCPMarkingRule(base.BaseFunctionalTest):"},{"line_number":21,"context_line":"    QOS_POLICY_ID \u003d None"},{"line_number":22,"context_line":"    QOS_IS_SHARED \u003d False"},{"line_number":23,"context_line":"    QOS_POLICY_DESCRIPTION \u003d \"QoS policy description\""},{"line_number":24,"context_line":"    RULE_DSCP_MARK \u003d 36"}],"source_content_type":"text/x-python","patch_set":1,"id":"a06d38c7_571054a8","line":21,"in_reply_to":"3a189d4d_2ef39ddf","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":61,"context_line":"        self.assertIsNone(qos_policy)"},{"line_number":62,"context_line":"        super().tearDown()"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def test_find(self):"},{"line_number":65,"context_line":"        assert self.QOS_POLICY_ID is not None"},{"line_number":66,"context_line":"        sot \u003d self.operator_cloud.network.find_qos_dscp_marking_rule("},{"line_number":67,"context_line":"            self.RULE_ID, self.QOS_POLICY_ID, ignore_missing\u003dFalse"},{"line_number":68,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"0a2a3bba_dd4011b2","line":65,"range":{"start_line":64,"start_character":24,"end_line":65,"end_character":45},"updated":"2026-04-15 17:01:51.000000000","message":"```suggestion\n    def test_find(self):\n```","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        self.assertIsNone(qos_policy)"},{"line_number":62,"context_line":"        super().tearDown()"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def test_find(self):"},{"line_number":65,"context_line":"        assert self.QOS_POLICY_ID is not None"},{"line_number":66,"context_line":"        sot \u003d self.operator_cloud.network.find_qos_dscp_marking_rule("},{"line_number":67,"context_line":"            self.RULE_ID, self.QOS_POLICY_ID, ignore_missing\u003dFalse"},{"line_number":68,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"536d2f94_3f570904","line":65,"range":{"start_line":64,"start_character":24,"end_line":65,"end_character":45},"in_reply_to":"0a2a3bba_dd4011b2","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        self.assertIsNone(qos_policy)"},{"line_number":62,"context_line":"        super().tearDown()"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def test_find(self):"},{"line_number":65,"context_line":"        assert self.QOS_POLICY_ID is not None"},{"line_number":66,"context_line":"        sot \u003d self.operator_cloud.network.find_qos_dscp_marking_rule("},{"line_number":67,"context_line":"            self.RULE_ID, self.QOS_POLICY_ID, ignore_missing\u003dFalse"},{"line_number":68,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"59a03244_2a728c7b","line":65,"range":{"start_line":64,"start_character":24,"end_line":65,"end_character":45},"in_reply_to":"0a2a3bba_dd4011b2","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"}],"openstack/tests/functional/network/v2/test_qos_minimum_bandwidth_rule.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":17,"context_line":"from openstack.tests.functional import base"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestQoSMinimumBandwidthRule(base.BaseFunctionalTest):"},{"line_number":21,"context_line":"    QOS_POLICY_ID \u003d None"},{"line_number":22,"context_line":"    QOS_IS_SHARED \u003d False"},{"line_number":23,"context_line":"    QOS_POLICY_DESCRIPTION \u003d \"QoS policy description\""},{"line_number":24,"context_line":"    RULE_ID \u003d None"},{"line_number":25,"context_line":"    RULE_MIN_KBPS \u003d 1200"},{"line_number":26,"context_line":"    RULE_MIN_KBPS_NEW \u003d 1800"},{"line_number":27,"context_line":"    RULE_DIRECTION \u003d \"egress\""}],"source_content_type":"text/x-python","patch_set":1,"id":"6c5f4862_3e116a60","line":24,"range":{"start_line":20,"start_character":59,"end_line":24,"end_character":18},"updated":"2026-04-15 17:01:51.000000000","message":"```suggestion\nclass TestQoSMinimumBandwidthRule(base.BaseFunctionalTest):\n    QOS_POLICY_ID: str\n    QOS_IS_SHARED \u003d False\n    QOS_POLICY_DESCRIPTION \u003d \"QoS policy description\"\n    RULE_ID: str\n```","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from openstack.tests.functional import base"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestQoSMinimumBandwidthRule(base.BaseFunctionalTest):"},{"line_number":21,"context_line":"    QOS_POLICY_ID \u003d None"},{"line_number":22,"context_line":"    QOS_IS_SHARED \u003d False"},{"line_number":23,"context_line":"    QOS_POLICY_DESCRIPTION \u003d \"QoS policy description\""},{"line_number":24,"context_line":"    RULE_ID \u003d None"},{"line_number":25,"context_line":"    RULE_MIN_KBPS \u003d 1200"},{"line_number":26,"context_line":"    RULE_MIN_KBPS_NEW \u003d 1800"},{"line_number":27,"context_line":"    RULE_DIRECTION \u003d \"egress\""}],"source_content_type":"text/x-python","patch_set":1,"id":"88aec3f0_cdfff81f","line":24,"range":{"start_line":20,"start_character":59,"end_line":24,"end_character":18},"in_reply_to":"6c5f4862_3e116a60","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from openstack.tests.functional import base"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestQoSMinimumBandwidthRule(base.BaseFunctionalTest):"},{"line_number":21,"context_line":"    QOS_POLICY_ID \u003d None"},{"line_number":22,"context_line":"    QOS_IS_SHARED \u003d False"},{"line_number":23,"context_line":"    QOS_POLICY_DESCRIPTION \u003d \"QoS policy description\""},{"line_number":24,"context_line":"    RULE_ID \u003d None"},{"line_number":25,"context_line":"    RULE_MIN_KBPS \u003d 1200"},{"line_number":26,"context_line":"    RULE_MIN_KBPS_NEW \u003d 1800"},{"line_number":27,"context_line":"    RULE_DIRECTION \u003d \"egress\""}],"source_content_type":"text/x-python","patch_set":1,"id":"8be7c315_40284b17","line":24,"range":{"start_line":20,"start_character":59,"end_line":24,"end_character":18},"in_reply_to":"6c5f4862_3e116a60","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":71,"context_line":"        self.assertIsNone(qos_policy)"},{"line_number":72,"context_line":"        super().tearDown()"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def test_find(self):"},{"line_number":75,"context_line":"        assert self.RULE_ID is not None"},{"line_number":76,"context_line":"        assert self.QOS_POLICY_ID is not None"},{"line_number":77,"context_line":"        sot \u003d self.operator_cloud.network.find_qos_minimum_bandwidth_rule("},{"line_number":78,"context_line":"            self.RULE_ID, self.QOS_POLICY_ID, ignore_missing\u003dFalse"},{"line_number":79,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"2dd1ce81_219eaa72","line":76,"range":{"start_line":74,"start_character":24,"end_line":76,"end_character":45},"updated":"2026-04-15 17:01:51.000000000","message":"```suggestion\n    def test_find(self):\n```","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        self.assertIsNone(qos_policy)"},{"line_number":72,"context_line":"        super().tearDown()"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def test_find(self):"},{"line_number":75,"context_line":"        assert self.RULE_ID is not None"},{"line_number":76,"context_line":"        assert self.QOS_POLICY_ID is not None"},{"line_number":77,"context_line":"        sot \u003d self.operator_cloud.network.find_qos_minimum_bandwidth_rule("},{"line_number":78,"context_line":"            self.RULE_ID, self.QOS_POLICY_ID, ignore_missing\u003dFalse"},{"line_number":79,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"adca1151_4c94d673","line":76,"range":{"start_line":74,"start_character":24,"end_line":76,"end_character":45},"in_reply_to":"2dd1ce81_219eaa72","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        self.assertIsNone(qos_policy)"},{"line_number":72,"context_line":"        super().tearDown()"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def test_find(self):"},{"line_number":75,"context_line":"        assert self.RULE_ID is not None"},{"line_number":76,"context_line":"        assert self.QOS_POLICY_ID is not None"},{"line_number":77,"context_line":"        sot \u003d self.operator_cloud.network.find_qos_minimum_bandwidth_rule("},{"line_number":78,"context_line":"            self.RULE_ID, self.QOS_POLICY_ID, ignore_missing\u003dFalse"},{"line_number":79,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"daa61964_e924ecce","line":76,"range":{"start_line":74,"start_character":24,"end_line":76,"end_character":45},"in_reply_to":"2dd1ce81_219eaa72","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"}],"openstack/tests/functional/network/v2/test_qos_minimum_packet_rate_rule.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":71,"context_line":"        super().tearDown()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def test_find(self):"},{"line_number":74,"context_line":"        assert self.RULE_ID is not None"},{"line_number":75,"context_line":"        assert self.QOS_POLICY_ID is not None"},{"line_number":76,"context_line":"        sot \u003d self.operator_cloud.network.find_qos_minimum_packet_rate_rule("},{"line_number":77,"context_line":"            self.RULE_ID, self.QOS_POLICY_ID, ignore_missing\u003dFalse"}],"source_content_type":"text/x-python","patch_set":1,"id":"cc2a68de_ccc2f5cc","line":74,"updated":"2026-04-15 17:01:51.000000000","message":"I think you get the point so from here on out I\u0027ll just say ditto 😀","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        super().tearDown()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def test_find(self):"},{"line_number":74,"context_line":"        assert self.RULE_ID is not None"},{"line_number":75,"context_line":"        assert self.QOS_POLICY_ID is not None"},{"line_number":76,"context_line":"        sot \u003d self.operator_cloud.network.find_qos_minimum_packet_rate_rule("},{"line_number":77,"context_line":"            self.RULE_ID, self.QOS_POLICY_ID, ignore_missing\u003dFalse"}],"source_content_type":"text/x-python","patch_set":1,"id":"461b12fd_2e268375","line":74,"in_reply_to":"cc2a68de_ccc2f5cc","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        super().tearDown()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def test_find(self):"},{"line_number":74,"context_line":"        assert self.RULE_ID is not None"},{"line_number":75,"context_line":"        assert self.QOS_POLICY_ID is not None"},{"line_number":76,"context_line":"        sot \u003d self.operator_cloud.network.find_qos_minimum_packet_rate_rule("},{"line_number":77,"context_line":"            self.RULE_ID, self.QOS_POLICY_ID, ignore_missing\u003dFalse"}],"source_content_type":"text/x-python","patch_set":1,"id":"84e92066_fa8df913","line":74,"in_reply_to":"cc2a68de_ccc2f5cc","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"}],"openstack/tests/functional/network/v2/test_qos_packet_rate_limit_rule.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":75,"context_line":"        super().tearDown()"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def test_find(self):"},{"line_number":78,"context_line":"        assert self.QOS_POLICY_ID is not None"},{"line_number":79,"context_line":"        sot \u003d self.operator_cloud.network.find_qos_packet_rate_limit_rule("},{"line_number":80,"context_line":"            self.RULE_ID, self.QOS_POLICY_ID, ignore_missing\u003dFalse"},{"line_number":81,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"c596d4eb_a7c4e9de","line":78,"updated":"2026-04-15 17:01:51.000000000","message":"ditto","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        super().tearDown()"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def test_find(self):"},{"line_number":78,"context_line":"        assert self.QOS_POLICY_ID is not None"},{"line_number":79,"context_line":"        sot \u003d self.operator_cloud.network.find_qos_packet_rate_limit_rule("},{"line_number":80,"context_line":"            self.RULE_ID, self.QOS_POLICY_ID, ignore_missing\u003dFalse"},{"line_number":81,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"56357e4b_89a765fb","line":78,"in_reply_to":"c596d4eb_a7c4e9de","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        super().tearDown()"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def test_find(self):"},{"line_number":78,"context_line":"        assert self.QOS_POLICY_ID is not None"},{"line_number":79,"context_line":"        sot \u003d self.operator_cloud.network.find_qos_packet_rate_limit_rule("},{"line_number":80,"context_line":"            self.RULE_ID, self.QOS_POLICY_ID, ignore_missing\u003dFalse"},{"line_number":81,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"b2871db8_cef417a5","line":78,"in_reply_to":"c596d4eb_a7c4e9de","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"}],"openstack/tests/functional/network/v2/test_rbac_policy.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":71,"context_line":"        super().tearDown()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def test_find(self):"},{"line_number":74,"context_line":"        assert self.ID is not None"},{"line_number":75,"context_line":"        if self.operator_cloud:"},{"line_number":76,"context_line":"            sot \u003d self.operator_cloud.network.find_rbac_policy("},{"line_number":77,"context_line":"                self.ID, ignore_missing\u003dFalse"}],"source_content_type":"text/x-python","patch_set":1,"id":"fac773c3_e2fb6da3","line":74,"updated":"2026-04-15 17:01:51.000000000","message":"ditto","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        super().tearDown()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def test_find(self):"},{"line_number":74,"context_line":"        assert self.ID is not None"},{"line_number":75,"context_line":"        if self.operator_cloud:"},{"line_number":76,"context_line":"            sot \u003d self.operator_cloud.network.find_rbac_policy("},{"line_number":77,"context_line":"                self.ID, ignore_missing\u003dFalse"}],"source_content_type":"text/x-python","patch_set":1,"id":"de49ccd3_35c75909","line":74,"in_reply_to":"fac773c3_e2fb6da3","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        super().tearDown()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def test_find(self):"},{"line_number":74,"context_line":"        assert self.ID is not None"},{"line_number":75,"context_line":"        if self.operator_cloud:"},{"line_number":76,"context_line":"            sot \u003d self.operator_cloud.network.find_rbac_policy("},{"line_number":77,"context_line":"                self.ID, ignore_missing\u003dFalse"}],"source_content_type":"text/x-python","patch_set":1,"id":"f9a98591_a4bfd115","line":74,"in_reply_to":"fac773c3_e2fb6da3","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"}],"openstack/tests/functional/network/v2/test_security_group_rule.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":55,"context_line":"        super().tearDown()"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def test_find(self):"},{"line_number":58,"context_line":"        assert self.RULE_ID is not None"},{"line_number":59,"context_line":"        sot \u003d self.user_cloud.network.find_security_group_rule("},{"line_number":60,"context_line":"            self.RULE_ID, ignore_missing\u003dFalse"},{"line_number":61,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"d8044597_37e25ab7","line":58,"updated":"2026-04-15 17:01:51.000000000","message":"ditto","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        super().tearDown()"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def test_find(self):"},{"line_number":58,"context_line":"        assert self.RULE_ID is not None"},{"line_number":59,"context_line":"        sot \u003d self.user_cloud.network.find_security_group_rule("},{"line_number":60,"context_line":"            self.RULE_ID, ignore_missing\u003dFalse"},{"line_number":61,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"0cfdcae5_c24d37d8","line":58,"in_reply_to":"d8044597_37e25ab7","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        super().tearDown()"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def test_find(self):"},{"line_number":58,"context_line":"        assert self.RULE_ID is not None"},{"line_number":59,"context_line":"        sot \u003d self.user_cloud.network.find_security_group_rule("},{"line_number":60,"context_line":"            self.RULE_ID, ignore_missing\u003dFalse"},{"line_number":61,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"0f100a9a_b1267db9","line":58,"in_reply_to":"d8044597_37e25ab7","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"}],"openstack/tests/functional/network/v2/test_segment.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":81,"context_line":"        self.assertIsNone(del_sot)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def test_find(self):"},{"line_number":84,"context_line":"        assert self.SEGMENT_ID is not None"},{"line_number":85,"context_line":"        sot \u003d self.operator_cloud.network.find_segment("},{"line_number":86,"context_line":"            self.SEGMENT_ID, ignore_missing\u003dFalse"},{"line_number":87,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"87398586_d1d05636","line":84,"updated":"2026-04-15 17:01:51.000000000","message":"ditto","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        self.assertIsNone(del_sot)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def test_find(self):"},{"line_number":84,"context_line":"        assert self.SEGMENT_ID is not None"},{"line_number":85,"context_line":"        sot \u003d self.operator_cloud.network.find_segment("},{"line_number":86,"context_line":"            self.SEGMENT_ID, ignore_missing\u003dFalse"},{"line_number":87,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"1312b132_25885651","line":84,"in_reply_to":"87398586_d1d05636","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        self.assertIsNone(del_sot)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def test_find(self):"},{"line_number":84,"context_line":"        assert self.SEGMENT_ID is not None"},{"line_number":85,"context_line":"        sot \u003d self.operator_cloud.network.find_segment("},{"line_number":86,"context_line":"            self.SEGMENT_ID, ignore_missing\u003dFalse"},{"line_number":87,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"2dcb4807_dee637b6","line":84,"in_reply_to":"87398586_d1d05636","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"}],"openstack/tests/functional/placement/v1/test_resource_provider.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d41d4c525af17d983905f6e843fd6543e55379cd","unresolved":true,"context_lines":[{"line_number":61,"context_line":"        # retrieve details of the resource provider by name"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        resource_provider \u003d ("},{"line_number":64,"context_line":"            self.operator_cloud.placement.find_resource_provider("},{"line_number":65,"context_line":"                self.resource_provider.name,"},{"line_number":66,"context_line":"                ignore_missing\u003dFalse,"},{"line_number":67,"context_line":"            )"},{"line_number":68,"context_line":"        )"},{"line_number":69,"context_line":"        self.assertEqual(self.resource_provider_name, resource_provider.name)"}],"source_content_type":"text/x-python","patch_set":1,"id":"c56f63e2_eab7d04a","line":66,"range":{"start_line":64,"start_character":65,"end_line":66,"end_character":37},"updated":"2026-04-15 17:01:51.000000000","message":"nit:\n\n```suggestion\n            self.operator_cloud.placement.find_resource_provider(\n                self.resource_provider.name, ignore_missing\u003dFalse\n```","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"275c848b8fd90e433f73a959d71d18662c957a96","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        # retrieve details of the resource provider by name"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        resource_provider \u003d ("},{"line_number":64,"context_line":"            self.operator_cloud.placement.find_resource_provider("},{"line_number":65,"context_line":"                self.resource_provider.name,"},{"line_number":66,"context_line":"                ignore_missing\u003dFalse,"},{"line_number":67,"context_line":"            )"},{"line_number":68,"context_line":"        )"},{"line_number":69,"context_line":"        self.assertEqual(self.resource_provider_name, resource_provider.name)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3791286b_5a676240","line":66,"range":{"start_line":64,"start_character":65,"end_line":66,"end_character":37},"in_reply_to":"c56f63e2_eab7d04a","updated":"2026-04-15 18:00:07.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"42efa92c719a218b544a2c8904f9d2e8941d922d","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        # retrieve details of the resource provider by name"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        resource_provider \u003d ("},{"line_number":64,"context_line":"            self.operator_cloud.placement.find_resource_provider("},{"line_number":65,"context_line":"                self.resource_provider.name,"},{"line_number":66,"context_line":"                ignore_missing\u003dFalse,"},{"line_number":67,"context_line":"            )"},{"line_number":68,"context_line":"        )"},{"line_number":69,"context_line":"        self.assertEqual(self.resource_provider_name, resource_provider.name)"}],"source_content_type":"text/x-python","patch_set":1,"id":"63eda95d_2a4db7fe","line":66,"range":{"start_line":64,"start_character":65,"end_line":66,"end_character":37},"in_reply_to":"c56f63e2_eab7d04a","updated":"2026-04-15 18:03:36.000000000","message":"Done","commit_id":"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"}]}
