)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"40598dcebc46c108520aecfdd9f6662e8259cf84","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"17eb4971_b47e10cc","updated":"2026-04-16 15:04:58.000000000","message":"recheck nova-vtpm should be worked out","commit_id":"d4e3aa49bb78bd413d0e9eb8dd30c5b22c40c206"},{"author":{"_account_id":35307,"name":"Taketani Ryo","email":"taketani.ryo@fujitsu.com","username":"r-taketn0517"},"change_message_id":"39eda5f2ccea3d18961ea20a3d6a108f8e307613","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"e396f9a4_9a4ae047","updated":"2026-04-19 21:26:36.000000000","message":"recheck resize test timeout","commit_id":"d4e3aa49bb78bd413d0e9eb8dd30c5b22c40c206"}],"nova/tests/unit/virt/test_hardware.py":[{"author":{"_account_id":35307,"name":"Taketani Ryo","email":"taketani.ryo@fujitsu.com","username":"r-taketn0517"},"change_message_id":"7e2969788b7e54e7ab96a35cb102bed8a6412c55","unresolved":true,"context_lines":[{"line_number":5396,"context_line":"        self.assertIs(hw.MemEncryptionConfigSev, type(me_config))"},{"line_number":5397,"context_line":"        self.assertTrue(me_config.needs_locked_memory)"},{"line_number":5398,"context_line":"        self.assertEqual(fields.MemEncryptionModel.AMD_SEV, me_config.model)"},{"line_number":5399,"context_line":"        self.assertEqual(ot.HW_CPU_X86_AMD_SEV, me_config.required_trait)"},{"line_number":5400,"context_line":""},{"line_number":5401,"context_line":"    def test_sev_es(self):"},{"line_number":5402,"context_line":"        me_config \u003d hw.MemEncryptionConfig.create("}],"source_content_type":"text/x-python","patch_set":2,"id":"6e08985d_8a4e9af0","line":5399,"updated":"2026-04-16 01:16:28.000000000","message":"\u003e nit: you could import the os.traits variables like you did in the code, but meh.\n\nFollow-up this comment: https://review.opendev.org/c/openstack/nova/+/967971/14/nova/tests/unit/virt/test_hardware.py#5398\n\nUpdated as your suggestion.","commit_id":"d4e3aa49bb78bd413d0e9eb8dd30c5b22c40c206"}],"nova/virt/hardware.py":[{"author":{"_account_id":35307,"name":"Taketani Ryo","email":"taketani.ryo@fujitsu.com","username":"r-taketn0517"},"change_message_id":"425e3014c4a6ef866a67e2fa24b0f3d0e3d79bcf","unresolved":true,"context_lines":[{"line_number":76,"context_line":"            return False"},{"line_number":77,"context_line":"        return self.model \u003d\u003d other.model"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def __hash__(self) -\u003e int:"},{"line_number":80,"context_line":"        return hash(self.model)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    @classmethod"},{"line_number":83,"context_line":"    def create(cls, model: str) -\u003e \u0027MemEncryptionConfig\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"588d4aa6_586c8fc1","line":80,"range":{"start_line":79,"start_character":0,"end_line":80,"end_character":31},"updated":"2026-04-03 07:49:22.000000000","message":"\u003e (nit, fix in a follow up): as we override __eq__ we probably want a matching __hash__ defined as well. The rule is\n\u003e\n\u003e The only required property is that objects which compare equal have the same hash value;\n\u003e\n\u003e so I think\n\u003e ```\n\u003e def __hash__(self):\n\u003e    return hash(self.model)\n\u003e ```\n\u003e would work\n\nI addressed [this comment](https://review.opendev.org/c/openstack/nova/+/967970/11/nova/virt/hardware.py#63). Updated as suggestion.","commit_id":"8ac03b67f31773b85b637dbcab61bfdab26cf2da"},{"author":{"_account_id":35307,"name":"Taketani Ryo","email":"taketani.ryo@fujitsu.com","username":"r-taketn0517"},"change_message_id":"425e3014c4a6ef866a67e2fa24b0f3d0e3d79bcf","unresolved":true,"context_lines":[{"line_number":120,"context_line":"        emsg \u003d _("},{"line_number":121,"context_line":"            \"Memory encryption requested by %(requesters)s but image \""},{"line_number":122,"context_line":"            \"metadata doesn\u0027t have \u0027hw_firmware_type\u0027 property set to \""},{"line_number":123,"context_line":"            \"\u0027uefi\u0027\""},{"line_number":124,"context_line":"        )"},{"line_number":125,"context_line":"        data \u003d {\u0027requesters\u0027: \" and \".join(requesters)}"},{"line_number":126,"context_line":"        raise exception.FlavorImageConflict(emsg % data)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def _check_machine_type(self, image_meta: \u0027objects.ImageMeta\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"d4f6aec0_c5dd7bc3","line":125,"range":{"start_line":123,"start_character":0,"end_line":125,"end_character":55},"updated":"2026-04-03 07:49:22.000000000","message":"\u003e image_name is not used in the emsg string now.\n\n\u003e nit: trailing whitespace at the end of the string\n\nI addressed [this comment](https://review.opendev.org/c/openstack/nova/+/967974/comment/bfb39438_01a04146/) and [this comment](https://review.opendev.org/c/openstack/nova/+/967974/comment/f4772f49_80d4c08a/). I removed `image_name` definition and a trailing space as suggestion.","commit_id":"8ac03b67f31773b85b637dbcab61bfdab26cf2da"},{"author":{"_account_id":35307,"name":"Taketani Ryo","email":"taketani.ryo@fujitsu.com","username":"r-taketn0517"},"change_message_id":"425e3014c4a6ef866a67e2fa24b0f3d0e3d79bcf","unresolved":true,"context_lines":[{"line_number":1323,"context_line":"    :param machine_type: a string representing the machine type (optional)"},{"line_number":1324,"context_line":"    :raises: nova.exception.FlavorImageConflict"},{"line_number":1325,"context_line":"    :raises: nova.exception.InvalidMachineType"},{"line_number":1326,"context_line":"    :returns: A MemEncryptionConfig object, else None."},{"line_number":1327,"context_line":"    \"\"\""},{"line_number":1328,"context_line":""},{"line_number":1329,"context_line":"    flavor_mem_enc_str, image_mem_enc \u003d _get_flavor_image_meta("}],"source_content_type":"text/x-python","patch_set":1,"id":"054ecaa1_b1c63ac9","line":1326,"range":{"start_line":1326,"start_character":0,"end_line":1326,"end_character":54},"updated":"2026-04-03 07:49:22.000000000","message":"\u003e (nit, fix in a followup): Not directly related to the current change but related to the refactor. This function returns an MemEncryptionConfig instance not a named tuple.\n\nI addressed [this comment](https://review.opendev.org/c/openstack/nova/+/967970/comment/a9f0c729_ea3e8f40/). Updated as suggestion.","commit_id":"8ac03b67f31773b85b637dbcab61bfdab26cf2da"},{"author":{"_account_id":35307,"name":"Taketani Ryo","email":"taketani.ryo@fujitsu.com","username":"r-taketn0517"},"change_message_id":"425e3014c4a6ef866a67e2fa24b0f3d0e3d79bcf","unresolved":true,"context_lines":[{"line_number":1520,"context_line":"    :raises: exception.LockMemoryForbidden if mem_page_size is not set"},{"line_number":1521,"context_line":"        while provide locked_memory value in image or flavor."},{"line_number":1522,"context_line":"    :raises: exception.FlavorImageLockedMemoryConflict if memory locking"},{"line_number":1523,"context_line":"        constraints between flavor and image conflicts"},{"line_number":1524,"context_line":"    :raises: exception.FlavorImageConflict if memory encryption constraints"},{"line_number":1525,"context_line":"        between flavor and image conflicts"},{"line_number":1526,"context_line":"    :raises: exception.InvalidMachineType if the machine type does not"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a19aa32_e07a6c5d","line":1523,"range":{"start_line":1523,"start_character":0,"end_line":1523,"end_character":54},"updated":"2026-04-03 07:49:22.000000000","message":"\u003e super nit: double space\n\nI addressed [this comment](https://review.opendev.org/c/openstack/nova/+/967970/comment/46f548b2_3dd25297/).","commit_id":"8ac03b67f31773b85b637dbcab61bfdab26cf2da"}],"nova/virt/libvirt/host.py":[{"author":{"_account_id":35307,"name":"Taketani Ryo","email":"taketani.ryo@fujitsu.com","username":"r-taketn0517"},"change_message_id":"7e2969788b7e54e7ab96a35cb102bed8a6412c55","unresolved":true,"context_lines":[{"line_number":2182,"context_line":"                slots \u003d min(slots, conf_slots)"},{"line_number":2183,"context_line":"            return slots"},{"line_number":2184,"context_line":"        else:"},{"line_number":2185,"context_line":"            if conf_slots is not None and conf_slots \u003e 0:"},{"line_number":2186,"context_line":"                LOG.warning(\"Host is configured with \""},{"line_number":2187,"context_line":"                            \"libvirt.num_memory_encrypted_guests set to \""},{"line_number":2188,"context_line":"                            \"%d, but is not SEV-capable.\", conf_slots)"}],"source_content_type":"text/x-python","patch_set":2,"id":"c0417e79_31833247","line":2185,"updated":"2026-04-16 01:16:28.000000000","message":"\u003e any reason why you didn\u0027t followed the previous conditional ?\n\u003e if conf_slots and conf_slots \u003e 0:\n\nFollow-up this comment: https://review.opendev.org/c/openstack/nova/+/967972/14/nova/virt/libvirt/host.py#2185\n\nRestored to the previous conditional. It seems I made a mistake changing the condition.","commit_id":"d4e3aa49bb78bd413d0e9eb8dd30c5b22c40c206"}]}
