)]}'
{"id":"openstack%2Fnova~959357","triplet_id":"openstack%2Fnova~unmaintained%2Fzed~Ib5befdd3c13367daa208ff969f66cba693ae2c76","project":"openstack/nova","branch":"unmaintained/zed","topic":"bug/2098892","attention_set":{"4690":{"account":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"last_update":"2025-09-03 22:37:09.000000000","reason":"\u003cGERRIT_ACCOUNT_1131\u003e replied on the change","reason_account":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"}},"1131":{"account":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"last_update":"2025-09-19 23:31:43.000000000","reason":"Someone else replied on the change"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"Ib5befdd3c13367daa208ff969f66cba693ae2c76","subject":"libvirt: Fix regression of listDevices() return type","status":"NEW","created":"2025-09-03 16:50:56.000000000","updated":"2025-10-08 12:55:30.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":4,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"2a048843a3fd98dad52f0b36df96ef434184bee3","_number":959357,"virtual_id_number":959357,"owner":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"tag":"autogenerated:zuul:check","value":1,"date":"2025-09-19 23:26:07.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"disliked":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"all":[{"value":-1,"date":"2025-10-08 12:55:30.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","value":-1,"default_value":0,"optional":true},"Workflow":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"CC":[{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-09-03 16:50:56.000000000","updated_by":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"reviewer":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"state":"CC"},{"updated":"2025-09-03 18:15:54.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2025-09-19 23:31:43.000000000","updated_by":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"reviewer":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"state":"CC"},{"updated":"2025-10-08 12:55:30.000000000","updated_by":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"reviewer":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"state":"REVIEWER"}],"messages":[{"id":"e5901416582a7a50a81106a9f189cb0f0a993feb","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"date":"2025-09-03 16:50:56.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"74aef0445181923d6478088d397169d390e1e66f","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"date":"2025-09-03 16:51:15.000000000","message":"Topic set to bug/2098892","accounts_in_message":[],"_revision_number":1},{"id":"ba9dabb337394cce69de11c34edd5242b166c40a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-09-03 18:15:54.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/29b421eaefd24ccab451153a04eecdf2\n\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/00b72dcd33a949118576daaabeac777b : SUCCESS in 1h 02m 33s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/1593829070fa4232b3d819f70e736995 : SUCCESS in 49m 05s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/ea945e3e109443dda7825767a8a3aaee : FAILURE in 14m 58s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0c797d3bcb474b36924703963e62aad4 : SUCCESS in 11m 44s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/83e8253f94e44a8ba85f6f2e4be9a31a : FAILURE in 13m 22s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/ff0244998be946989d160940658930f1 : FAILURE in 13m 59s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/5d55a7bf34a74a139f5be90d4681a4e0 : FAILURE in 12m 24s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4ed8e6a3257149858d9e8649ac7d519d : SUCCESS in 5m 56s\n- ironic-tempest-ipa-wholedisk-bios-agent_ipmitool-tinyipa https://zuul.opendev.org/t/openstack/build/0e4fb3ea43b1411491609e44252d09d0 : SUCCESS in 46m 19s (non-voting)\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/c4e814f664b544b28cafa4eb72fca369 : SUCCESS in 34m 44s\n- nova-lvm https://zuul.opendev.org/t/openstack/build/d24eb59e076941419351fb9b4ae5237b : SUCCESS in 41m 16s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/aef8b43cabab4160b2f21269812807af : SUCCESS in 52m 20s\n- nova-next https://zuul.opendev.org/t/openstack/build/facd26fac02048afa99d7e5223376cc7 : SUCCESS in 1h 05m 09s\n- nova-ovs-hybrid-plug https://zuul.opendev.org/t/openstack/build/3be6d4e53bcc43c4aae1a9d2f951686d : SUCCESS in 40m 14s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/da4d1529c31b484795c554161abb1e18 : SUCCESS in 4m 59s (non-voting)\n- nova-tox-functional-py38 https://zuul.opendev.org/t/openstack/build/2d7f7b6d8aec45dc935d08335ca35534 : FAILURE in 21m 20s\n- nova-tox-functional-py39 https://zuul.opendev.org/t/openstack/build/df3c5cfa5c2043d4afe1e9b82857bfb1 : FAILURE in 24m 39s\n- nova-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/17e793cd429a40eb85d1f07691df34d8 : FAILURE in 25m 38s\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/4be76f76a77747cdb05affd38303043c : SUCCESS in 1h 13m 53s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/124a6190eacd4797b0ed08af0cc5e488 : SUCCESS in 21m 55s\n- cyborg-tempest https://zuul.opendev.org/t/openstack/build/476d5b0f92454ec9bc90dff30686ae99 : FAILURE in 22m 50s (non-voting)\n- barbican-tempest-plugin-simple-crypto https://zuul.opendev.org/t/openstack/build/e0f9f9e656bc489ab508a15349bd4159 : FAILURE in 31m 58s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"d12ff4d7ebad491f710eabd15df365bd5ebaa9ff","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2025-09-03 19:23:19.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"a2ca23932b6f109b6674c1f9977e2470564583c4","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-09-03 20:47:02.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/79473be12f224c75a3ea0dacd04d2907\n\n- openstack-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/7a877eb3e7ec4dd8b785c48af59ed472 : FAILURE in 28m 28s (non-voting)\n- openstack-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/2b36f0771a22481bbb70209f93571d4f : FAILURE in 29m 38s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"97e6d953c4262224e654bcc8a6b3168ddc4559cd","author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"date":"2025-09-03 22:37:09.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"fb524c24089f992c5a2a684baeb19c8ec5fe55ac","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"date":"2025-09-18 03:55:58.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":2},{"id":"fe8324e2cd9fa2d1a9db177e97b929b95f8ad56e","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-09-18 04:36:03.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5d2ab1c6f92b47d48557e2a23c2db30b\n\n- openstack-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/d3b0eeff1e914c0081c2e1799d16c7c7 : SUCCESS in 21m 48s (non-voting)\n- openstack-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/515deb7ae94b4bc996224e7401043df4 : SUCCESS in 31m 22s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"af1cba5235d698f4a9c55c12eb0ed56ac2b013db","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-09-18 05:33:57.000000000","message":"Patch Set 2: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/3f7a963b3ab4445b8c91d6b755884c77\n\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/d164a21b7e9f44738f1ae55195e69f12 : SUCCESS in 1h 12m 15s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/083712bf0d144a6d9cc9d5995f6058ce : SUCCESS in 47m 02s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/b53f5fa1a3c8465fa1c1847bedeee339 : SUCCESS in 17m 38s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d6f33dfee2e6442daebca997a253a8d5 : SUCCESS in 12m 13s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/c53fdbd90f1549008f17a3b4432a41e6 : SUCCESS in 12m 29s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/3416f3ceed1b4811949f20d1ca68e6c0 : SUCCESS in 13m 54s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/ff860aefafb648e18505d7576136a801 : SUCCESS in 13m 53s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/76e8b330cd144528b650580bc771b687 : SUCCESS in 11m 37s\n- ironic-tempest-ipa-wholedisk-bios-agent_ipmitool-tinyipa https://zuul.opendev.org/t/openstack/build/f23d44053eef4cb093bc93b4cd416bf4 : SUCCESS in 28m 46s (non-voting)\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/bb34649d78694e53a3a72aa116647866 : SUCCESS in 46m 15s\n- nova-lvm https://zuul.opendev.org/t/openstack/build/279a70b9766f4e898b43c87e7add498f : SUCCESS in 40m 34s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/24c265122b47403590fab7f0694d6b21 : SUCCESS in 56m 56s\n- nova-next https://zuul.opendev.org/t/openstack/build/bc0ff11d8f97429a8540b5ce1f916fc8 : SUCCESS in 1h 21m 30s\n- nova-ovs-hybrid-plug https://zuul.opendev.org/t/openstack/build/6cfd8da71ac04a6bb7ff8603584740af : SUCCESS in 39m 44s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/b0a86b4b4b79461f95fb60d5ef5c6754 : SUCCESS in 5m 17s (non-voting)\n- nova-tox-functional-py38 https://zuul.opendev.org/t/openstack/build/e4085d97daed4591a7c1cdad4fabd6b5 : FAILURE in 19m 35s\n- nova-tox-functional-py39 https://zuul.opendev.org/t/openstack/build/df66daafb0744f2b87c7b4445e2f7411 : FAILURE in 23m 56s\n- nova-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/1cc6551d839c4e399e39bbc32566ba56 : FAILURE in 26m 38s\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/48709946e769451ab4d9bf52f51ff9e7 : SUCCESS in 1h 11m 46s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/b708f236b2e2489cbeb4bb376e0943b8 : SUCCESS in 37m 14s\n- cyborg-tempest https://zuul.opendev.org/t/openstack/build/28fa37aad6b74ac2b47df26ef88a4b0c : FAILURE in 26m 04s (non-voting)\n- barbican-tempest-plugin-simple-crypto https://zuul.opendev.org/t/openstack/build/5be64b9b742749a0aa13f2474fd32780 : FAILURE in 30m 23s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"7dff621ed40cacc359b7ee29d5b0fbda05a60399","author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"date":"2025-09-19 01:07:04.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"1c9dbcf96b014cfccc4516cf3167a3e1677962ba","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"date":"2025-09-19 01:14:27.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":3},{"id":"24a6e9fc108a5a86e692ac1349bb26a0e207f7b2","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"date":"2025-09-19 01:16:20.000000000","message":"Patch Set 4: Patch Set 3 was rebased","accounts_in_message":[],"_revision_number":4},{"id":"74d1202f3f96a3355f9a71e2b3f336999baa18b5","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-09-19 01:42:32.000000000","message":"Patch Set 4:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0217ca8298ae4e1ea4adfb31978575c1\n\n- openstack-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/0d62e6ba1b8b4f419478f3eb0e8e026f : SUCCESS in 24m 32s (non-voting)\n- openstack-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/041b841fd705486dad83fbf318bc18a7 : SUCCESS in 18m 06s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"1f8f8a066965131cd3acf8f0e76a59128cc523bf","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-09-19 02:53:26.000000000","message":"Patch Set 4: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/f27e6684ef124835a033ecf15be3f15b\n\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/169a0341aed143bcbb5c9bcdbfbe2431 : SUCCESS in 1h 22m 00s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/64d9d1c6410e40d8a35d3f006c7ba28e : SUCCESS in 38m 17s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/7f191387c08248bfbb0f4371fed91370 : SUCCESS in 16m 34s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8b45daf615a3416aa7405197b61c8247 : SUCCESS in 12m 08s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/86f028d970a44a6081ddd42bed29567f : SUCCESS in 12m 59s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/6b434da5a7ab45c0a4cfb784e5de6e90 : SUCCESS in 13m 43s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/7e0232ecfdb9401782212b6f6c2c6f0d : SUCCESS in 13m 54s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/178a6b6274be4759967bcfe81c9c4417 : SUCCESS in 7m 45s\n- ironic-tempest-ipa-wholedisk-bios-agent_ipmitool-tinyipa https://zuul.opendev.org/t/openstack/build/e255bb555680416b9ea1d876ebf15332 : SUCCESS in 55m 55s (non-voting)\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/04ec2d9ef36f46f4a6184e40ac517e3f : SUCCESS in 47m 48s\n- nova-lvm https://zuul.opendev.org/t/openstack/build/ef7a3993dd354eac9d6109a911e2d831 : SUCCESS in 1h 04m 02s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/5222ef72b07845d7a94dff3e879c5b28 : SUCCESS in 1h 05m 08s\n- nova-next https://zuul.opendev.org/t/openstack/build/e8c7a361b51142d4bf71c85c82eb67be : SUCCESS in 1h 31m 13s\n- nova-ovs-hybrid-plug https://zuul.opendev.org/t/openstack/build/2069c02583ee46e781d3680920061699 : SUCCESS in 46m 32s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/f428e1ff43ef49ce83f9cc32cbf15a28 : SUCCESS in 5m 01s (non-voting)\n- nova-tox-functional-py38 https://zuul.opendev.org/t/openstack/build/62f7614c101f42c49f2297ea5ec2103d : FAILURE in 22m 22s\n- nova-tox-functional-py39 https://zuul.opendev.org/t/openstack/build/cef75b577899481d959fc882e9e4d975 : FAILURE in 24m 48s\n- nova-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/0261f849981a4d43bfc9b31b34a7d57a : FAILURE in 24m 17s\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/646f262d5efc46b680b1e5e3fdee704a : SUCCESS in 55m 09s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/a3b1e86f65a54eb78648e5ec30829cca : SUCCESS in 47m 54s\n- cyborg-tempest https://zuul.opendev.org/t/openstack/build/30b4de86d2614a61bd303b83dd58e7ee : FAILURE in 24m 22s (non-voting)\n- barbican-tempest-plugin-simple-crypto https://zuul.opendev.org/t/openstack/build/3a417655953241eebe44dff796c4217b : FAILURE in 28m 12s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"59c65f471697c094ff6e1d99cbaa4667e07e166f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"date":"2025-09-19 21:18:54.000000000","message":"Uploaded patch set 5.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":5},{"id":"ddc05b1000afa21ae71e910096b453e2c0704ba7","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-09-19 21:47:07.000000000","message":"Patch Set 5:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d50d01f7ba594020a17cff7c9eda9726\n\n- openstack-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/23d92e1b1f974d0692c17023096ddbd0 : SUCCESS in 20m 02s (non-voting)\n- openstack-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/17d104740df641a8930a41c15447cd24 : SUCCESS in 26m 32s (non-voting)","accounts_in_message":[],"_revision_number":5},{"id":"0f8ce2aaf412b476e7c3f3a3ef2968a91a57d039","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"date":"2025-09-19 21:52:32.000000000","message":"Uploaded patch set 6.","accounts_in_message":[],"_revision_number":6},{"id":"4f6e7d11a372c2141201aa36f465fde789dd3281","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-09-19 22:20:57.000000000","message":"Patch Set 6:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/83a4f2c4c2d34c039f907284570e44b5\n\n- openstack-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/7b68a2b9fb2d4303abff09a21a99139b : SUCCESS in 26m 36s (non-voting)\n- openstack-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/7995abf4cac849a88321ccecc531acd4 : SUCCESS in 25m 36s (non-voting)","accounts_in_message":[],"_revision_number":6},{"id":"16860c2d1d976ea7a564453b76161bd4a8120f3b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-09-19 23:26:07.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0f1047f9f082441e8fd984269d89a26d\n\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/efc485869a3446e58d93424a0a4f0785 : SUCCESS in 1h 20m 06s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/afb0d520fa44411e9bceb8a8737b20a0 : SUCCESS in 33m 04s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/af2a849238a746b2ae3adf6239f09d60 : SUCCESS in 16m 49s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/131ee490faf9497fa202ddf8af3c638b : SUCCESS in 9m 20s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/7ac2a0c900f941598523ad92517d39a1 : SUCCESS in 10m 41s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/3ac3aa46e21f42bcb0b1f5fc46de6cb6 : SUCCESS in 14m 07s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/9155d67ac12443938cb09e7aea026d4f : SUCCESS in 14m 23s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0d5086d95c584683b06d9a92a91b5e85 : SUCCESS in 11m 21s\n- ironic-tempest-ipa-wholedisk-bios-agent_ipmitool-tinyipa https://zuul.opendev.org/t/openstack/build/381ae6cfc1c94e40b1a6ba9fdee6bd69 : SUCCESS in 55m 39s (non-voting)\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/df25b259a6154da7bc74880bfab960b4 : SUCCESS in 44m 38s\n- nova-lvm https://zuul.opendev.org/t/openstack/build/5e2be9f0e50c43a5b67974bdadcd0ea1 : SUCCESS in 57m 16s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/941976e0d6ef4267bdab530e4505104d : SUCCESS in 1h 27m 50s\n- nova-next https://zuul.opendev.org/t/openstack/build/b44be12275294ea9800d7cfb0e02d5ba : SUCCESS in 1h 28m 43s\n- nova-ovs-hybrid-plug https://zuul.opendev.org/t/openstack/build/5d780d158b4f41299ffde879c8c27f3d : SUCCESS in 46m 56s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/aa47d76c54c144f8bf41ebb01d4a480a : SUCCESS in 6m 02s (non-voting)\n- nova-tox-functional-py38 https://zuul.opendev.org/t/openstack/build/dcf02aa141ce4c3a8c20758e42e52ec1 : SUCCESS in 19m 47s\n- nova-tox-functional-py39 https://zuul.opendev.org/t/openstack/build/07bc50fdb72f4263b68433fcab8db19f : SUCCESS in 23m 57s\n- nova-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/3c55aa2858da4a2b83f953b8d86ed3c4 : SUCCESS in 23m 12s\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/513ac763dfb34ee2acf0f84c510a82a5 : SUCCESS in 1h 15m 20s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/50bca330710c44de87c53038992cc501 : SUCCESS in 50m 04s\n- cyborg-tempest https://zuul.opendev.org/t/openstack/build/21df1e5527a04d97a19dba3171dfd55d : FAILURE in 26m 58s (non-voting)\n- barbican-tempest-plugin-simple-crypto https://zuul.opendev.org/t/openstack/build/77b98a4467b14980a8781d969a81a93e : FAILURE in 31m 18s (non-voting)","accounts_in_message":[],"_revision_number":6},{"id":"9eef53c5f72f7dbb6baae38d59b7a84af09724df","tag":"autogenerated:jenkins-gerrit-trigger","author":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"date":"2025-09-19 23:31:43.000000000","message":"Patch Set 6:\n\nBuild succeeded. log path: ${LOG_PATH}\nLeave a comment with \u0027run-Lightbits CI\u0027 to trigger a recheck. \nFor more information about CI, please see https://wiki.openstack.org/wiki/ThirdPartySystems/LightbitsLabs_CI","accounts_in_message":[],"_revision_number":6},{"id":"2a048843a3fd98dad52f0b36df96ef434184bee3","author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"date":"2025-10-08 12:55:30.000000000","message":"Patch Set 6: Code-Review-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":6}],"current_revision_number":6,"current_revision":"2f325ad7d9f178fd772ac44686aaf4b1ae19f424","revisions":{"ea00e2e287a6282bb616c336ce342ea5e24580e3":{"kind":"REWORK","_number":1,"created":"2025-09-03 16:50:56.000000000","uploader":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"ref":"refs/changes/57/959357/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/57/959357/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/57/959357/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/57/959357/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/57/959357/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/57/959357/1"}}},"commit":{"parents":[{"commit":"09c9826e1f2d802033f859cb0e89439632f885f8","subject":"Merge \"Fix deepcopy usage for BlockDeviceMapping in get_root_info\" into unmaintained/zed","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/09c9826e1f2d802033f859cb0e89439632f885f8"}]}],"author":{"name":"melanie witt","email":"melwittt@gmail.com","date":"2025-02-20 04:09:44.000000000","tz":0},"committer":{"name":"Brian Haley","email":"haleyb.dev@gmail.com","date":"2025-09-03 16:50:28.000000000","tz":-240},"subject":"libvirt: Fix regression of listDevices() return type","message":"libvirt: Fix regression of listDevices() return type\n\nThis a partial revert of change\nI60d6f04d374e9ede5895a43b7a75e955b0fea3c5 which added tpool.Proxy\nwrapping to the listDevices() and listAllDevices() methods.\n\nThe regression was caught during downstream testing with vGPUs and the\nupdate_available_resource() periodic task was failing with:\n\n  TypeError: virNodeDeviceLookupByName() argument 2 must be str or\n    None, not Proxy\n\nIt turns out that while the listAllDevices() method returns a list of\nvirNodeDevice objects [1], the listDevices() method returns a list of\nstring names [2] and is generated from the corresponding function in C\n[3].\n\nThe error was not caught by unit or functional testing because those\ntest environments intentionally do not import the libvirt Python\nmodule -- so mocked code in the LibvirtFixture runs instead. Also, the\nupdate_available_resource() method has a \u0027except Exception:\u0027 at the end\nwhich logs an error but does not re-raise. So it would not cause a\nfunctional test to fail.\n\nThis reverts the change that caused the regression, updates potentially\nconfusing docstrings, adds type annotations to the methods that use\nlistDevices(), and moves the nodeDeviceLookupByName type checking into\nthe LibvirtFixture.\n\nCloses-Bug: #2098892\n\n[1] https://github.com/libvirt/libvirt-python/blob/408815a/libvirt-override-virConnect.py#L520-L524\n[2] https://github.com/libvirt/libvirt-python/blob/408815a/libvirt-override-api.xml#L448-L453\n[3] https://libvirt.org/html/libvirt-libvirt-nodedev.html#virNodeListDevices\n\nChange-Id: Ib5befdd3c13367daa208ff969f66cba693ae2c76\n(cherry picked from commit 2c07aa06458a2e70d79f8b3c68960bdccd11ab57)\n(cherry picked from commit c4f4ae784f2078b652d07053d5a69a81dba1a8f5)\n(cherry picked from commit b8bfa1efbb71be1909897b39ecc12e687f177e89)\n(cherry picked from commit c4467364647387a3b2bae06d61c1e8c7b363ea5f)\nSigned-off-by: Brian Haley \u003chaleyb.dev@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/ea00e2e287a6282bb616c336ce342ea5e24580e3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/ea00e2e287a6282bb616c336ce342ea5e24580e3"}]},"branch":"refs/heads/unmaintained/zed"},"d911880d9ce805177499b6e49d832e0dba13c587":{"kind":"REWORK","_number":2,"created":"2025-09-18 03:55:58.000000000","uploader":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"ref":"refs/changes/57/959357/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/57/959357/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/57/959357/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/57/959357/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/57/959357/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/57/959357/2"}}},"commit":{"parents":[{"commit":"d94bd400e06ba93af837676a51e42c509fdb3fda","subject":"libvirt: Wrap un-proxied listDevices() and listAllDevices()","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/d94bd400e06ba93af837676a51e42c509fdb3fda"}]}],"author":{"name":"melanie witt","email":"melwittt@gmail.com","date":"2025-02-20 04:09:44.000000000","tz":0},"committer":{"name":"Brian Haley","email":"haleyb.dev@gmail.com","date":"2025-09-18 03:55:28.000000000","tz":-240},"subject":"libvirt: Fix regression of listDevices() return type","message":"libvirt: Fix regression of listDevices() return type\n\nThis a partial revert of change\nI60d6f04d374e9ede5895a43b7a75e955b0fea3c5 which added tpool.Proxy\nwrapping to the listDevices() and listAllDevices() methods.\n\nThe regression was caught during downstream testing with vGPUs and the\nupdate_available_resource() periodic task was failing with:\n\n  TypeError: virNodeDeviceLookupByName() argument 2 must be str or\n    None, not Proxy\n\nIt turns out that while the listAllDevices() method returns a list of\nvirNodeDevice objects [1], the listDevices() method returns a list of\nstring names [2] and is generated from the corresponding function in C\n[3].\n\nThe error was not caught by unit or functional testing because those\ntest environments intentionally do not import the libvirt Python\nmodule -- so mocked code in the LibvirtFixture runs instead. Also, the\nupdate_available_resource() method has a \u0027except Exception:\u0027 at the end\nwhich logs an error but does not re-raise. So it would not cause a\nfunctional test to fail.\n\nThis reverts the change that caused the regression, updates potentially\nconfusing docstrings, adds type annotations to the methods that use\nlistDevices(), and moves the nodeDeviceLookupByName type checking into\nthe LibvirtFixture.\n\nCloses-Bug: #2098892\n\n[1] https://github.com/libvirt/libvirt-python/blob/408815a/libvirt-override-virConnect.py#L520-L524\n[2] https://github.com/libvirt/libvirt-python/blob/408815a/libvirt-override-api.xml#L448-L453\n[3] https://libvirt.org/html/libvirt-libvirt-nodedev.html#virNodeListDevices\n\nChange-Id: Ib5befdd3c13367daa208ff969f66cba693ae2c76\n(cherry picked from commit 2c07aa06458a2e70d79f8b3c68960bdccd11ab57)\n(cherry picked from commit c4f4ae784f2078b652d07053d5a69a81dba1a8f5)\n(cherry picked from commit b8bfa1efbb71be1909897b39ecc12e687f177e89)\n(cherry picked from commit c4467364647387a3b2bae06d61c1e8c7b363ea5f)\nSigned-off-by: Brian Haley \u003chaleyb.dev@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/d911880d9ce805177499b6e49d832e0dba13c587"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/d911880d9ce805177499b6e49d832e0dba13c587"}]},"branch":"refs/heads/unmaintained/zed"},"8f6fa18cbc915b3e7b4a2ae60c422aea74738859":{"kind":"REWORK","_number":3,"created":"2025-09-19 01:14:27.000000000","uploader":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"ref":"refs/changes/57/959357/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/57/959357/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/57/959357/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/57/959357/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/57/959357/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/57/959357/3"}}},"commit":{"parents":[{"commit":"d94bd400e06ba93af837676a51e42c509fdb3fda","subject":"libvirt: Wrap un-proxied listDevices() and listAllDevices()","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/d94bd400e06ba93af837676a51e42c509fdb3fda"}]}],"author":{"name":"melanie witt","email":"melwittt@gmail.com","date":"2025-02-20 04:09:44.000000000","tz":0},"committer":{"name":"Brian Haley","email":"haleyb.dev@gmail.com","date":"2025-09-19 01:14:10.000000000","tz":-240},"subject":"libvirt: Fix regression of listDevices() return type","message":"libvirt: Fix regression of listDevices() return type\n\nThis a partial revert of change\nI60d6f04d374e9ede5895a43b7a75e955b0fea3c5 which added tpool.Proxy\nwrapping to the listDevices() and listAllDevices() methods.\n\nThe regression was caught during downstream testing with vGPUs and the\nupdate_available_resource() periodic task was failing with:\n\n  TypeError: virNodeDeviceLookupByName() argument 2 must be str or\n    None, not Proxy\n\nIt turns out that while the listAllDevices() method returns a list of\nvirNodeDevice objects [1], the listDevices() method returns a list of\nstring names [2] and is generated from the corresponding function in C\n[3].\n\nThe error was not caught by unit or functional testing because those\ntest environments intentionally do not import the libvirt Python\nmodule -- so mocked code in the LibvirtFixture runs instead. Also, the\nupdate_available_resource() method has a \u0027except Exception:\u0027 at the end\nwhich logs an error but does not re-raise. So it would not cause a\nfunctional test to fail.\n\nThis reverts the change that caused the regression, updates potentially\nconfusing docstrings, adds type annotations to the methods that use\nlistDevices(), and moves the nodeDeviceLookupByName type checking into\nthe LibvirtFixture.\n\nCloses-Bug: #2098892\n\n[1] https://github.com/libvirt/libvirt-python/blob/408815a/libvirt-override-virConnect.py#L520-L524\n[2] https://github.com/libvirt/libvirt-python/blob/408815a/libvirt-override-api.xml#L448-L453\n[3] https://libvirt.org/html/libvirt-libvirt-nodedev.html#virNodeListDevices\n\nChange-Id: Ib5befdd3c13367daa208ff969f66cba693ae2c76\n(cherry picked from commit 2c07aa06458a2e70d79f8b3c68960bdccd11ab57)\n(cherry picked from commit c4f4ae784f2078b652d07053d5a69a81dba1a8f5)\n(cherry picked from commit b8bfa1efbb71be1909897b39ecc12e687f177e89)\n(cherry picked from commit c4467364647387a3b2bae06d61c1e8c7b363ea5f)\nSigned-off-by: Brian Haley \u003chaleyb.dev@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/8f6fa18cbc915b3e7b4a2ae60c422aea74738859"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/8f6fa18cbc915b3e7b4a2ae60c422aea74738859"}]},"branch":"refs/heads/unmaintained/zed"},"b8d4eb1d93bb3eaa91a2906adbeea81ffdb807e6":{"kind":"NO_CHANGE","_number":4,"created":"2025-09-19 01:16:20.000000000","uploader":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"ref":"refs/changes/57/959357/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/57/959357/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/57/959357/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/57/959357/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/57/959357/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/57/959357/4"}}},"commit":{"parents":[{"commit":"4bbb50020642f9dddf10d59ff5a0f0e07f6d2bd2","subject":"libvirt: Wrap un-proxied listDevices() and listAllDevices()","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/4bbb50020642f9dddf10d59ff5a0f0e07f6d2bd2"}]}],"author":{"name":"melanie witt","email":"melwittt@gmail.com","date":"2025-02-20 04:09:44.000000000","tz":0},"committer":{"name":"Brian Haley","email":"haleyb.dev@gmail.com","date":"2025-09-19 01:16:20.000000000","tz":0},"subject":"libvirt: Fix regression of listDevices() return type","message":"libvirt: Fix regression of listDevices() return type\n\nThis a partial revert of change\nI60d6f04d374e9ede5895a43b7a75e955b0fea3c5 which added tpool.Proxy\nwrapping to the listDevices() and listAllDevices() methods.\n\nThe regression was caught during downstream testing with vGPUs and the\nupdate_available_resource() periodic task was failing with:\n\n  TypeError: virNodeDeviceLookupByName() argument 2 must be str or\n    None, not Proxy\n\nIt turns out that while the listAllDevices() method returns a list of\nvirNodeDevice objects [1], the listDevices() method returns a list of\nstring names [2] and is generated from the corresponding function in C\n[3].\n\nThe error was not caught by unit or functional testing because those\ntest environments intentionally do not import the libvirt Python\nmodule -- so mocked code in the LibvirtFixture runs instead. Also, the\nupdate_available_resource() method has a \u0027except Exception:\u0027 at the end\nwhich logs an error but does not re-raise. So it would not cause a\nfunctional test to fail.\n\nThis reverts the change that caused the regression, updates potentially\nconfusing docstrings, adds type annotations to the methods that use\nlistDevices(), and moves the nodeDeviceLookupByName type checking into\nthe LibvirtFixture.\n\nCloses-Bug: #2098892\n\n[1] https://github.com/libvirt/libvirt-python/blob/408815a/libvirt-override-virConnect.py#L520-L524\n[2] https://github.com/libvirt/libvirt-python/blob/408815a/libvirt-override-api.xml#L448-L453\n[3] https://libvirt.org/html/libvirt-libvirt-nodedev.html#virNodeListDevices\n\nChange-Id: Ib5befdd3c13367daa208ff969f66cba693ae2c76\n(cherry picked from commit 2c07aa06458a2e70d79f8b3c68960bdccd11ab57)\n(cherry picked from commit c4f4ae784f2078b652d07053d5a69a81dba1a8f5)\n(cherry picked from commit b8bfa1efbb71be1909897b39ecc12e687f177e89)\n(cherry picked from commit c4467364647387a3b2bae06d61c1e8c7b363ea5f)\nSigned-off-by: Brian Haley \u003chaleyb.dev@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/b8d4eb1d93bb3eaa91a2906adbeea81ffdb807e6"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/b8d4eb1d93bb3eaa91a2906adbeea81ffdb807e6"}]},"branch":"refs/heads/unmaintained/zed","description":"Rebase"},"3aec5a737d1822330f6d2dd98d074ad9b1a808ff":{"kind":"REWORK","_number":5,"created":"2025-09-19 21:18:54.000000000","uploader":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"ref":"refs/changes/57/959357/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/57/959357/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/57/959357/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/57/959357/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/57/959357/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/57/959357/5"}}},"commit":{"parents":[{"commit":"4bbb50020642f9dddf10d59ff5a0f0e07f6d2bd2","subject":"libvirt: Wrap un-proxied listDevices() and listAllDevices()","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/4bbb50020642f9dddf10d59ff5a0f0e07f6d2bd2"}]}],"author":{"name":"melanie witt","email":"melwittt@gmail.com","date":"2025-02-20 04:09:44.000000000","tz":0},"committer":{"name":"Brian Haley","email":"haleyb.dev@gmail.com","date":"2025-09-19 21:18:25.000000000","tz":-240},"subject":"libvirt: Fix regression of listDevices() return type","message":"libvirt: Fix regression of listDevices() return type\n\nThis a partial revert of change\nI60d6f04d374e9ede5895a43b7a75e955b0fea3c5 which added tpool.Proxy\nwrapping to the listDevices() and listAllDevices() methods.\n\nThe regression was caught during downstream testing with vGPUs and the\nupdate_available_resource() periodic task was failing with:\n\n  TypeError: virNodeDeviceLookupByName() argument 2 must be str or\n    None, not Proxy\n\nIt turns out that while the listAllDevices() method returns a list of\nvirNodeDevice objects [1], the listDevices() method returns a list of\nstring names [2] and is generated from the corresponding function in C\n[3].\n\nThe error was not caught by unit or functional testing because those\ntest environments intentionally do not import the libvirt Python\nmodule -- so mocked code in the LibvirtFixture runs instead. Also, the\nupdate_available_resource() method has a \u0027except Exception:\u0027 at the end\nwhich logs an error but does not re-raise. So it would not cause a\nfunctional test to fail.\n\nThis reverts the change that caused the regression, updates potentially\nconfusing docstrings, adds type annotations to the methods that use\nlistDevices(), and moves the nodeDeviceLookupByName type checking into\nthe LibvirtFixture.\n\nCloses-Bug: #2098892\n\n[1] https://github.com/libvirt/libvirt-python/blob/408815a/libvirt-override-virConnect.py#L520-L524\n[2] https://github.com/libvirt/libvirt-python/blob/408815a/libvirt-override-api.xml#L448-L453\n[3] https://libvirt.org/html/libvirt-libvirt-nodedev.html#virNodeListDevices\n\nChange-Id: Ib5befdd3c13367daa208ff969f66cba693ae2c76\n(cherry picked from commit 2c07aa06458a2e70d79f8b3c68960bdccd11ab57)\n(cherry picked from commit c4f4ae784f2078b652d07053d5a69a81dba1a8f5)\n(cherry picked from commit b8bfa1efbb71be1909897b39ecc12e687f177e89)\n(cherry picked from commit c4467364647387a3b2bae06d61c1e8c7b363ea5f)\n(cherry picked from commit 458b443e5ffc828a827dbff1d2db85c77bdd47b9)\nSigned-off-by: Brian Haley \u003chaleyb.dev@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/3aec5a737d1822330f6d2dd98d074ad9b1a808ff"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/3aec5a737d1822330f6d2dd98d074ad9b1a808ff"}]},"branch":"refs/heads/unmaintained/zed"},"2f325ad7d9f178fd772ac44686aaf4b1ae19f424":{"kind":"REWORK","_number":6,"created":"2025-09-19 21:52:32.000000000","uploader":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"ref":"refs/changes/57/959357/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/57/959357/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/57/959357/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/57/959357/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/57/959357/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/57/959357/6"}}},"commit":{"parents":[{"commit":"4bbb50020642f9dddf10d59ff5a0f0e07f6d2bd2","subject":"libvirt: Wrap un-proxied listDevices() and listAllDevices()","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/4bbb50020642f9dddf10d59ff5a0f0e07f6d2bd2"}]}],"author":{"name":"melanie witt","email":"melwittt@gmail.com","date":"2025-02-20 04:09:44.000000000","tz":0},"committer":{"name":"Brian Haley","email":"haleyb.dev@gmail.com","date":"2025-09-19 21:52:22.000000000","tz":-240},"subject":"libvirt: Fix regression of listDevices() return type","message":"libvirt: Fix regression of listDevices() return type\n\nThis a partial revert of change\nI60d6f04d374e9ede5895a43b7a75e955b0fea3c5 which added tpool.Proxy\nwrapping to the listDevices() and listAllDevices() methods.\n\nThe regression was caught during downstream testing with vGPUs and the\nupdate_available_resource() periodic task was failing with:\n\n  TypeError: virNodeDeviceLookupByName() argument 2 must be str or\n    None, not Proxy\n\nIt turns out that while the listAllDevices() method returns a list of\nvirNodeDevice objects [1], the listDevices() method returns a list of\nstring names [2] and is generated from the corresponding function in C\n[3].\n\nThe error was not caught by unit or functional testing because those\ntest environments intentionally do not import the libvirt Python\nmodule -- so mocked code in the LibvirtFixture runs instead. Also, the\nupdate_available_resource() method has a \u0027except Exception:\u0027 at the end\nwhich logs an error but does not re-raise. So it would not cause a\nfunctional test to fail.\n\nThis reverts the change that caused the regression, updates potentially\nconfusing docstrings, adds type annotations to the methods that use\nlistDevices(), and moves the nodeDeviceLookupByName type checking into\nthe LibvirtFixture.\n\nCloses-Bug: #2098892\n\n[1] https://github.com/libvirt/libvirt-python/blob/408815a/libvirt-override-virConnect.py#L520-L524\n[2] https://github.com/libvirt/libvirt-python/blob/408815a/libvirt-override-api.xml#L448-L453\n[3] https://libvirt.org/html/libvirt-libvirt-nodedev.html#virNodeListDevices\n\nChange-Id: Ib5befdd3c13367daa208ff969f66cba693ae2c76\n(cherry picked from commit 2c07aa06458a2e70d79f8b3c68960bdccd11ab57)\n(cherry picked from commit c4f4ae784f2078b652d07053d5a69a81dba1a8f5)\n(cherry picked from commit b8bfa1efbb71be1909897b39ecc12e687f177e89)\n(cherry picked from commit c4467364647387a3b2bae06d61c1e8c7b363ea5f)\n(cherry picked from commit 458b443e5ffc828a827dbff1d2db85c77bdd47b9)\nSigned-off-by: Brian Haley \u003chaleyb.dev@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/2f325ad7d9f178fd772ac44686aaf4b1ae19f424"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/2f325ad7d9f178fd772ac44686aaf4b1ae19f424"}]},"branch":"refs/heads/unmaintained/zed"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"}},{"label":"Workflow","status":"MAY"},{"label":"Review-Priority","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Review-Priority","description":"Review Priority","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
