)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9a35715f7dedbc81ee105a585222136b7e333874","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a9421766_93809201","updated":"2025-11-17 16:15:52.000000000","message":"I\u0027d like that we doublecheck Forbidden","commit_id":"b0f620683ca9a068968ef2ca4907d3c818fb72e6"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e7b3212cc753b401a99361421a37c9250eb17944","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"d142ff9c_c7b11e58","updated":"2025-11-19 11:25:34.000000000","message":"perfect, thanks for the modifications, staying a bit before +Wing.","commit_id":"0f82c2953e186fc0520c48b32be14c57e0bd8c6c"}],"nova/tests/functional/libvirt/test_vtpm.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9a35715f7dedbc81ee105a585222136b7e333874","unresolved":true,"context_lines":[{"line_number":81,"context_line":"        uuid \u003d uuidutils.generate_uuid()"},{"line_number":82,"context_line":"        managed_object._id \u003d uuid  # set the id to simulate persistence"},{"line_number":83,"context_line":"        self._passphrases[uuid] \u003d managed_object"},{"line_number":84,"context_line":"        self._contexts[uuid] \u003d context"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        return uuid"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"be9bba0a_eea8afb9","line":84,"updated":"2025-11-17 16:15:52.000000000","message":"this can grow a bit but I guess we are fine here, we shouldn\u0027t have a lot of tests using the FakeKeyManager.","commit_id":"b0f620683ca9a068968ef2ca4907d3c818fb72e6"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"55806f2f3501aa80f48786c064d12969692bffeb","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        uuid \u003d uuidutils.generate_uuid()"},{"line_number":82,"context_line":"        managed_object._id \u003d uuid  # set the id to simulate persistence"},{"line_number":83,"context_line":"        self._passphrases[uuid] \u003d managed_object"},{"line_number":84,"context_line":"        self._contexts[uuid] \u003d context"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        return uuid"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"e6bad2cb_3ebab159","line":84,"in_reply_to":"be9bba0a_eea8afb9","updated":"2025-11-17 23:18:12.000000000","message":"Acknowledged","commit_id":"b0f620683ca9a068968ef2ca4907d3c818fb72e6"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9a35715f7dedbc81ee105a585222136b7e333874","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        if context.user_id !\u003d self._contexts[managed_object_id].user_id:"},{"line_number":99,"context_line":"            raise exception.Forbidden()"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        if managed_object_id not in self._passphrases:"},{"line_number":102,"context_line":"            raise KeyError(\u0027cannot retrieve non-existent secret\u0027)"},{"line_number":103,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"d0b12cb2_0fb66446","line":100,"updated":"2025-11-17 16:15:52.000000000","message":"note: Barbican can also check against projects and token expiry but this is not needed here.","commit_id":"b0f620683ca9a068968ef2ca4907d3c818fb72e6"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"64fba13804a8552853c3a1829f0e80c9cb643946","unresolved":true,"context_lines":[{"line_number":439,"context_line":"        ):"},{"line_number":440,"context_line":"            # cold migrate the server"},{"line_number":441,"context_line":"            self._migrate_server("},{"line_number":442,"context_line":"                    server, expected_state\u003d\u0027ERROR\u0027, api\u003dself.admin_api)"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"    def test_live_migrate_server(self):"},{"line_number":445,"context_line":"        for host in (\u0027test_compute0\u0027, \u0027test_compute1\u0027):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fd34e140_ff561320","line":442,"updated":"2025-11-12 19:08:19.000000000","message":"Can we actually check the reason for the failure? Expecting error and calling that success on its own is asking for this test to not be actually checking the error condition we expect.","commit_id":"b0f620683ca9a068968ef2ca4907d3c818fb72e6"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9a35715f7dedbc81ee105a585222136b7e333874","unresolved":true,"context_lines":[{"line_number":439,"context_line":"        ):"},{"line_number":440,"context_line":"            # cold migrate the server"},{"line_number":441,"context_line":"            self._migrate_server("},{"line_number":442,"context_line":"                    server, expected_state\u003d\u0027ERROR\u0027, api\u003dself.admin_api)"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"    def test_live_migrate_server(self):"},{"line_number":445,"context_line":"        for host in (\u0027test_compute0\u0027, \u0027test_compute1\u0027):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ea2a1bda_bb9e7d21","line":442,"in_reply_to":"1bedfb73_afc01763","updated":"2025-11-17 16:15:52.000000000","message":"I agree with the concern, I\u0027d appreciate if we could doublecheck that we return Forbidden here.","commit_id":"b0f620683ca9a068968ef2ca4907d3c818fb72e6"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"55806f2f3501aa80f48786c064d12969692bffeb","unresolved":false,"context_lines":[{"line_number":439,"context_line":"        ):"},{"line_number":440,"context_line":"            # cold migrate the server"},{"line_number":441,"context_line":"            self._migrate_server("},{"line_number":442,"context_line":"                    server, expected_state\u003d\u0027ERROR\u0027, api\u003dself.admin_api)"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"    def test_live_migrate_server(self):"},{"line_number":445,"context_line":"        for host in (\u0027test_compute0\u0027, \u0027test_compute1\u0027):"}],"source_content_type":"text/x-python","patch_set":1,"id":"0f6699cf_8be179ad","line":442,"in_reply_to":"ea2a1bda_bb9e7d21","updated":"2025-11-17 23:18:12.000000000","message":"Done","commit_id":"b0f620683ca9a068968ef2ca4907d3c818fb72e6"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"91b249eb2320210f0e4276bc6d244bc869800abf","unresolved":true,"context_lines":[{"line_number":439,"context_line":"        ):"},{"line_number":440,"context_line":"            # cold migrate the server"},{"line_number":441,"context_line":"            self._migrate_server("},{"line_number":442,"context_line":"                    server, expected_state\u003d\u0027ERROR\u0027, api\u003dself.admin_api)"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"    def test_live_migrate_server(self):"},{"line_number":445,"context_line":"        for host in (\u0027test_compute0\u0027, \u0027test_compute1\u0027):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1bedfb73_afc01763","line":442,"in_reply_to":"fd34e140_ff561320","updated":"2025-11-12 19:29:09.000000000","message":"Yes we can look at the instance events to get reasons, I\u0027ll add that extra check.","commit_id":"b0f620683ca9a068968ef2ca4907d3c818fb72e6"}]}
