)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"33d278e91cb8430027f9f91a35e3958bafae1300","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"927f7780_579b51c7","updated":"2026-07-02 09:15:05.000000000","message":"I think we have a missing nova-api exception handling. If stateless firmware is not set then it leads to HTTP 500:\n\n```\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: DEBUG nova.virt.hardware [None req-18a591c6-8dd9-4273-921d-8872ea932c8d admin admin] Memory encryption model requested by hw:\nmem_encryption_model extra spec in cirros256 flavor {{(pid\u003d603494) get_mem_encryption_constraint /opt/stack/nova/nova/virt/hardware.py:1412}}\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi [None req-18a591c6-8dd9-4273-921d-8872ea932c8d admin admin] Unexpected exception in API method:\n nova.exception.Invalid: The amd-sev-snp memory encryption model requires stateless firmware but the image metadata doesn\u0027t have the \u0027hw_firmware_stateless\u0027 property set to True\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi Traceback (most recent call last):\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi   File \"/opt/stack/nova/nova/api/openstack/wsgi.py\", line 766, in wrapped\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi     return f(*args, **kwargs)\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi            ^^^^^^^^^^^^^^^^^^\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi   File \"/opt/stack/nova/nova/api/validation/__init__.py\", line 262, in wrapper\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi     return func(*args, **kwargs)\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi            ^^^^^^^^^^^^^^^^^^^^^\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi   File \"/opt/stack/nova/nova/api/validation/__init__.py\", line 262, in wrapper\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi     return func(*args, **kwargs)\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi            ^^^^^^^^^^^^^^^^^^^^^\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi   File \"/opt/stack/nova/nova/api/validation/__init__.py\", line 262, in wrapper\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi     return func(*args, **kwargs)\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi            ^^^^^^^^^^^^^^^^^^^^^\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi   [Previous line repeated 11 more times]\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi   File \"/opt/stack/nova/nova/api/validation/__init__.py\", line 296, in wrapper\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi     response \u003d func(*args, **kwargs)\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi                ^^^^^^^^^^^^^^^^^^^^^\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi   File \"/opt/stack/nova/nova/api/openstack/compute/servers.py\", line 817, in create\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi     instances, resv_id \u003d self.compute_api.create(\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi                          ^^^^^^^^^^^^^^^^^^^^^^^^\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi   File \"/opt/stack/nova/nova/compute/api.py\", line 2288, in create\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi     return self._create_instance(\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi            ^^^^^^^^^^^^^^^^^^^^^^\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi   File \"/opt/stack/nova/nova/compute/api.py\", line 1757, in _create_instance\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi     ) \u003d self._validate_and_build_base_options(\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi   File \"/opt/stack/nova/nova/compute/api.py\", line 1165, in _validate_and_build_base_options\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi     numa_topology \u003d hardware.numa_get_constraints(flavor, image_meta)\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi   File \"/opt/stack/nova/nova/virt/hardware.py\", line 2459, in numa_get_constraints\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi     get_locked_memory_constraint(flavor, image_meta)\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi   File \"/opt/stack/nova/nova/virt/hardware.py\", line 1590, in get_locked_memory_constraint\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi     me_config \u003d get_mem_encryption_constraint(flavor, image_meta, mach_type)\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi   File \"/opt/stack/nova/nova/virt/hardware.py\", line 1416, in get_mem_encryption_constraint\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi     mem_enc_config.check_constraints(image_meta, machine_type, enc_requesters)\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi   File \"/opt/stack/nova/nova/virt/hardware.py\", line 212, in check_constraints\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi     raise exception.Invalid(emsg % self.model)\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi nova.exception.Invalid: The amd-sev-snp memory encryption model requires stateless firmware but the image metadata doesn\u0027t have the \u0027hw_firmware_stateless\u0027 property set to True\nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: ERROR nova.api.openstack.wsgi \nJul 02 05:11:16 amd-milan-08.khw.eng.rdu2.dc.redhat.com devstack@n-api.service[603494]: INFO nova.api.openstack.wsgi [None req-18a591c6-8dd9-4273-921d-8872ea932c8d admin admin] HTTP exception thrown: Unexpected API Error. Please contact the administrator\n```","commit_id":"2dd60aca7afb11bcb91332e43663b94b31f2ebf2"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"2c4f7dbe3bcba26ba0cc3d4bc665c3d8896939ec","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"bb71a0d7_d54f39b1","in_reply_to":"050aad29_2385d50b","updated":"2026-07-05 14:48:39.000000000","message":"I\u0027ve implemented the test case for this in nova/tests/functional/test_servers.py .","commit_id":"2dd60aca7afb11bcb91332e43663b94b31f2ebf2"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"535b66e1d0264e1ceefe85145a709c8a00982ade","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"050aad29_2385d50b","in_reply_to":"3dedef9b_ef1bdd43","updated":"2026-07-02 15:51:46.000000000","message":"Thanks for catching this. I identified a missing handling in api and fixed it. During the investigation I found a few other problems related to constraints validations, so added the fixes for these problems early in the chain so that we can consider backport of these separately.\n\nI agree the testing coverage may be missing, though I couldn\u0027t find a good place to implement tests to validate actual return code for invalid instance configurations and would appreciate any suggestion...","commit_id":"2dd60aca7afb11bcb91332e43663b94b31f2ebf2"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9761ae77cfb4b4cb13be4f61ad171eac721290d5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"3dedef9b_ef1bdd43","in_reply_to":"927f7780_579b51c7","updated":"2026-07-02 09:15:40.000000000","message":"this means we are also missing some test coverage","commit_id":"2dd60aca7afb11bcb91332e43663b94b31f2ebf2"},{"author":{"_account_id":27665,"name":"Markus Hentsch","email":"markus.hentsch@cloudandheat.com","username":"mhen"},"change_message_id":"2050e9bb824c6d4fb48705a09ad5cd98209b7327","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":12,"id":"f827ec02_8d3bb1cb","updated":"2026-07-06 15:08:14.000000000","message":"Does this patchset aim to fully support direct kernel boot with attestation capabilities?\n\nFrom my experience, if I set up a direct kernel boot image (separate kernel and initrd payloads [1]) I can only boot it in stateless mode with a rom-type bootloader device setting in Libvirt with SEV-SNP.\n\nA suitable QEMU firmware JSON that has proven working would look something like this:\n\n```\n    ...\n    \"mapping\": {\n        \"device\": \"memory\",\n        \"mode\": \"stateless\",\n        \"filename\": \"/usr/share/OVMF/OVMF_AMDSEV_4M.fd\"\n    },\n    ...\n```\n\nIn order for Libvirt to select this, Nova has to set both `guest.os_loader_stateless \u003d True` and `guest.os_loader_type \u003d \u0027rom\u0027` (which maps to \"memory\" device type in the JSON).\n\nUsually, `guest.os_loader_type` would be \"pflash\" by default which would select a firmware JSON with `\"device\": \"flash\"` in it instead. However, I had no success so far and would encounter\n\n```\npflash with kvm requires KVM readonly memory support\n```\n\nwhen trying to boot a direct kernel boot image in Nova with SEV-SNP without a rom-type loader. Even if mode is \"stateless\" it does not seem to be sufficient and I need Nova to set the loader type to \"rom\".\n\nIt seems that LYC faced the same challenge as their earlier PoC contains this change: https://review.opendev.org/c/openstack/nova/+/983980/1/nova/virt/libvirt/driver.py\n\nHas anyone had success in fully booting a direct kernel boot image with SEV-SNP with the default pflash instead?\n\n---\n\n[1] for reference see https://docs.openstack.org/ironic/latest/install/configure-glance-images.html on how to create direct kernel boot images with `kernel_id` and `ramdisk_id`","commit_id":"6f963ee3eacac1c2aeef10fd322be3e554461401"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0368a761cbdbd4a123a0411462812e122766b935","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"62e0056b_c0c54789","updated":"2026-07-06 09:36:11.000000000","message":"Looks good. I tested this series on real HW and at least the following scenarios works:\n* boot VM with SNP and read attestation report from the guest via /dev/sev-guest device\n* restart nova-compute with SNP guest running\n* resize SNP guest to pure SEV guest and back\n* various error cases of missing image properties prerequisites","commit_id":"6f963ee3eacac1c2aeef10fd322be3e554461401"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"a1c199cbbaee26d5ee9988169909f49792350b59","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"a986151a_bc396329","updated":"2026-07-04 03:31:24.000000000","message":"recheck","commit_id":"6f963ee3eacac1c2aeef10fd322be3e554461401"},{"author":{"_account_id":27665,"name":"Markus Hentsch","email":"markus.hentsch@cloudandheat.com","username":"mhen"},"change_message_id":"b5ea45896f0c39012256620b2543f41589d13aaa","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":12,"id":"3d80ca1e_d64779a5","in_reply_to":"27727a52_d463d375","updated":"2026-07-08 08:38:25.000000000","message":"I\u0027ve dug deeper into this and did some more testing. Turns out that by handing off firmware selection to Libvirt, the naming order of firmware files becomes significant when Nova does not set `guest.os_loader_type` at all. This threw me for a loop for a few hours.\n\nConsider the following QEMU firmware JSON variants within `/usr/share/qemu/firmware/`:\n\nSample A: `pflash.json`:\n\n```\n    \"mapping\": {\n        \"device\": \"flash\",\n        \"mode\": \"stateless\",\n        \"executable\": {\n            \"filename\": \"/usr/share/OVMF/OVMF_AMDSEV_4M.fd\",\n            \"format\": \"raw\"\n        }\n    },\n```\n\nSample B: `rom.json`:\n\n```\n    \"mapping\": {\n        \"device\": \"memory\",\n        \"mode\": \"stateless\",\n        \"filename\": \"/usr/share/OVMF/OVMF_AMDSEV_4M.fd\"\n    },\n```\n\n---\n\nCase 1) rom/memory JSON parsed first\n\n- `01-rom.json`\n- `02-pflash.json`\n\n... will end up with `\u003cloader secure\u003d\u0027no\u0027 type\u003d\u0027rom\u0027 stateless\u003d\u0027yes\u0027\u003e/usr/share/OVMF/OVMF_AMDSEV_4M.fd\u003c/loader\u003e` in the guest XML and boot successfully.\n\n---\n\nCase 2) pflash JSON parsed first\n\n- `01-pflash.json`\n- `02-rom.json`\n\n... will end up with `\u003cloader readonly\u003d\u0027yes\u0027 secure\u003d\u0027no\u0027 type\u003d\u0027pflash\u0027 stateless\u003d\u0027yes\u0027 format\u003d\u0027raw\u0027\u003e/usr/share/OVMF/OVMF_AMDSEV_4M.fd\u003c/loader\u003e` in the guest XML and will fail to boot with `qemu-system-x86_64: pflash with kvm requires KVM readonly memory support`.\n\n---\n\nIf Nova would set `guest.os_loader_type \u003d \u0027rom\u0027` explicitly, case 2 would never happen as the JSON is ignored due to Libvirt being instructed to only look for rom-type JSONs in the first place. So that\u0027s why this was the \"easy fix\" I opted for initially and never saw the error again. That\u0027s why I did not dig deeper and did not discover the naming order significance.\n\nAs I have rarely seen proper rom-type JSONs for SEV-SNP in the wild (as shipped by distros), I think we need to address this in one of two ways:\n\na. Set `guest.os_loader_type` to `rom` in Nova for SEV-SNP, at least for direct kernel boot, as proposed initially.\n\nb. Add a visible warning banner about the significance of JSON filename order in the documentation and an example JSON snippet for proper rom/memory type firmware configuration for SEV-SNP. (I also think it would be good to quote the \"pflash with kvm requires KVM readonly memory support\" error message in that warning because this was the only clue I had when looking for a solution)\n\nOption a could be considered rather intrusive and may go against the spirit of leaving everything concerning the firmware selection to Libvirt now. So I can understand if this would be undesirable.\nIf we can agree on option b, this would be fine for me and I can lift my -1 here.","commit_id":"6f963ee3eacac1c2aeef10fd322be3e554461401"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"e49a0ca99fc84830e3ad4427b145dd1cb8fd8afc","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":12,"id":"64fa02e9_a6af32bf","in_reply_to":"3d80ca1e_d64779a5","updated":"2026-07-08 10:37:38.000000000","message":"It\u0027s not an issue of this logic, but is the one with the firmware descriptor file. Due to the change in underlying qemu sev-snp should use the rom firmware type. I assume the 01-pflash.json file in your deployment contains sev-snp feature which is wrong. If you remove the flag from 01 then libvirt should be able to pick up 02-pflash.json.\n\nIf that\u0027s th ecase I can add a documentation but am against adding the workaround for that wrong bad firmware descriptor, and option b would be the only option I can think of (though I\u0027d classify it as a known issue of Ubuntu because the descriptor files in CentOS has been already corrected for example).","commit_id":"6f963ee3eacac1c2aeef10fd322be3e554461401"},{"author":{"_account_id":27665,"name":"Markus Hentsch","email":"markus.hentsch@cloudandheat.com","username":"mhen"},"change_message_id":"7127667fd1418ba88414f23bea97124394b9d424","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"823ec45a_862502ad","in_reply_to":"64fa02e9_a6af32bf","updated":"2026-07-08 10:49:57.000000000","message":"Yes, you are right, the pflash example JSON had the sev-snp feature flag in it, that\u0027s why it was picked up. I\n\nI understand that mitigating bad firmware descriptor files is not Nova\u0027s job. Especially now that it hands off the selection entirely to Libvirt.\n\nHaving spent a whole lot of time testing and debugging those things myself I can attest that precise documentation is scarce on this so I would really appreciate some hint in Nova\u0027s documentation regarding this considering multiple Ubuntu releases (incl. LTS) are affected.\n\nI will +1 here and move this discussion to the documentation patchset.","commit_id":"6f963ee3eacac1c2aeef10fd322be3e554461401"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"3a374723b81d906cc442a0d0d1d30628c1b39eb9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"eab72799_b431b560","in_reply_to":"823ec45a_862502ad","updated":"2026-07-13 15:51:17.000000000","message":"nice troubleshooting folks. Thanks! I\u0027m happy if we document this tricks.","commit_id":"6f963ee3eacac1c2aeef10fd322be3e554461401"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"80b2329732d6718677cb1a00e21741be875a8fc2","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":12,"id":"27727a52_d463d375","in_reply_to":"f827ec02_8d3bb1cb","updated":"2026-07-06 15:15:01.000000000","message":"\u003e when trying to boot a direct kernel boot image in Nova with SEV-SNP without a rom-type loader. \n\nI assume you saw qemu is failing to start due to that error right ?\nI think gibi already tried direct kernel boot pattern. he failed to get the full os booting due to some challenges to prepare valid kernel/ramdisk for his guest image but he confirmed at least qemu process can boot.\nI suspect the issue is caused by the bug in older libvirt or something still incomplete with qemu firmware descriptor file.\n\n\u003e It seems that LYC faced the same challenge as their earlier PoC contains this change:\nThat\u0027s basically because they didn\u0027t have the change to use firmware selection logic in libvirt.","commit_id":"6f963ee3eacac1c2aeef10fd322be3e554461401"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"0994258b2043317d86901adf0085560f323a6223","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"7e4ebf6f_c4b1ad7c","updated":"2026-07-08 11:28:35.000000000","message":"recheck","commit_id":"a0fa48cdef4b7c8afb557b995792b091dc18eee1"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"198eff69a8162f537341f5c91fe4ab198e373c0e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"0ca68735_a87cafb4","updated":"2026-07-15 15:36:13.000000000","message":"recheck https://review.opendev.org/c/openstack/requirements/+/997345 was merged","commit_id":"a0fa48cdef4b7c8afb557b995792b091dc18eee1"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"9df9890d520ddb594be6da7ef18c025704be1ed6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"bb054e12_cdfe4a1c","updated":"2026-07-15 19:14:25.000000000","message":"recheck timeout looks irrelevant to this change.","commit_id":"a0fa48cdef4b7c8afb557b995792b091dc18eee1"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"2bd0e8ff3e2f78e304b86f65c8d8baca43a7ec38","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"15bdde53_4e050cae","updated":"2026-07-17 22:30:14.000000000","message":"recheck","commit_id":"6884abb139003a6cf6824b95cf69614c299ec8e8"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"59768f21dfc720260d3a4c5adcd4206702ec70d5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"f41e50a7_7f9652d5","updated":"2026-07-18 00:33:43.000000000","message":"recheck","commit_id":"6884abb139003a6cf6824b95cf69614c299ec8e8"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c7c1a09f6814405d25b72550f0da084aa5a39e1c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"f94db010_5375544e","updated":"2026-07-17 13:19:51.000000000","message":"recheck","commit_id":"6884abb139003a6cf6824b95cf69614c299ec8e8"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4f1dddf794b872761d788edef1dcd20937dfabcf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"a7027a8c_930e1ec9","updated":"2026-07-16 09:43:26.000000000","message":"still good","commit_id":"6884abb139003a6cf6824b95cf69614c299ec8e8"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"087a0e1e898fff9b07e1ba4db89a22f9250e4388","unresolved":false,"context_lines":[{"line_number":1839,"context_line":"            \u0027hw:mem_encryption_model\u0027: \u0027amd-sev-snp\u0027,"},{"line_number":1840,"context_line":"        }"},{"line_number":1841,"context_line":""},{"line_number":1842,"context_line":"        instance_5.deleted \u003d True"},{"line_number":1843,"context_line":""},{"line_number":1844,"context_line":"        instances \u003d objects.InstanceList(objects\u003d["},{"line_number":1845,"context_line":"            instance_1, instance_2, instance_3, instance_4, instance_5])"}],"source_content_type":"text/x-python","patch_set":3,"id":"fb5a6e2f_83c8a7b7","line":1842,"updated":"2026-06-25 18:34:19.000000000","message":"pep8: F821 undefined name \u0027instance_5\u0027","commit_id":"0a37aec00448fc85b09fb3f6753e7661fba6edde"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"087a0e1e898fff9b07e1ba4db89a22f9250e4388","unresolved":false,"context_lines":[{"line_number":1842,"context_line":"        instance_5.deleted \u003d True"},{"line_number":1843,"context_line":""},{"line_number":1844,"context_line":"        instances \u003d objects.InstanceList(objects\u003d["},{"line_number":1845,"context_line":"            instance_1, instance_2, instance_3, instance_4, instance_5])"},{"line_number":1846,"context_line":""},{"line_number":1847,"context_line":"        def fake_is_supported_mem_encryption_model(me_model):"},{"line_number":1848,"context_line":"            if me_model \u003d\u003d \u0027amd-sev-snp\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5356dea4_b9d138c3","line":1845,"updated":"2026-06-25 18:34:19.000000000","message":"pep8: F821 undefined name \u0027instance_5\u0027","commit_id":"0a37aec00448fc85b09fb3f6753e7661fba6edde"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"780a65ae599d65b3e1afa84ba09855822ec27aa8","unresolved":false,"context_lines":[{"line_number":1839,"context_line":"            \u0027hw:mem_encryption_model\u0027: \u0027amd-sev-snp\u0027,"},{"line_number":1840,"context_line":"        }"},{"line_number":1841,"context_line":""},{"line_number":1842,"context_line":"        instance_5.deleted \u003d True"},{"line_number":1843,"context_line":""},{"line_number":1844,"context_line":"        instances \u003d objects.InstanceList(objects\u003d["},{"line_number":1845,"context_line":"            instance_1, instance_2, instance_3, instance_4, instance_5])"}],"source_content_type":"text/x-python","patch_set":4,"id":"fb8d6c5d_7d32847e","line":1842,"updated":"2026-06-26 01:39:52.000000000","message":"pep8: F821 undefined name \u0027instance_5\u0027","commit_id":"e614ba5cc3cfb5cf3b46f8726bb033ac684b53a6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"780a65ae599d65b3e1afa84ba09855822ec27aa8","unresolved":false,"context_lines":[{"line_number":1842,"context_line":"        instance_5.deleted \u003d True"},{"line_number":1843,"context_line":""},{"line_number":1844,"context_line":"        instances \u003d objects.InstanceList(objects\u003d["},{"line_number":1845,"context_line":"            instance_1, instance_2, instance_3, instance_4, instance_5])"},{"line_number":1846,"context_line":""},{"line_number":1847,"context_line":"        def fake_is_supported_mem_encryption_model(me_model):"},{"line_number":1848,"context_line":"            if me_model \u003d\u003d \u0027amd-sev-snp\u0027:"}],"source_content_type":"text/x-python","patch_set":4,"id":"c8a09251_7d216f57","line":1845,"updated":"2026-06-26 01:39:52.000000000","message":"pep8: F821 undefined name \u0027instance_5\u0027","commit_id":"e614ba5cc3cfb5cf3b46f8726bb033ac684b53a6"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"087a0e1e898fff9b07e1ba4db89a22f9250e4388","unresolved":false,"context_lines":[{"line_number":7743,"context_line":"            self._guest_add_mdevs(guest, mdevs)"},{"line_number":7744,"context_line":""},{"line_number":7745,"context_line":"        if me_config:"},{"line_number":7746,"context_line":"            caps \u003d self._host.get_capabilities()"},{"line_number":7747,"context_line":"            self._guest_configure_mem_encryption(guest, me_config.model)"},{"line_number":7748,"context_line":""},{"line_number":7749,"context_line":"        if vpmems:"}],"source_content_type":"text/x-python","patch_set":3,"id":"0d3f8c89_b0992222","line":7746,"updated":"2026-06-25 18:34:19.000000000","message":"pep8: F841 local variable \u0027caps\u0027 is assigned to but never used","commit_id":"0a37aec00448fc85b09fb3f6753e7661fba6edde"}]}
