)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6219144014a49d404967b2f9988bb9d211c6756d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e3202941_90c10143","updated":"2026-06-09 12:14:42.000000000","message":"I am happily surprised that all the extended test cases are running upstream as well in whitebox-devstack-multinode. So I think that job passing on this commit should be enough to land this change upstream.","commit_id":"23b03d06068609e12c410aa8f591938fc472d236"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e44b4e6d38252a0aea9b52a961f76ed860d5a2fe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"c1d279b2_62044930","updated":"2026-06-11 14:47:57.000000000","message":"I will add a config flag","commit_id":"23b03d06068609e12c410aa8f591938fc472d236"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b05679f6f3e5a523da4b7db2bc18f5305ee7db05","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"935b0485_b195e086","updated":"2026-06-10 19:23:47.000000000","message":"looks good to me but we need feature flag to control these verification which are valid for 2026.1 onwards.","commit_id":"23b03d06068609e12c410aa8f591938fc472d236"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e4b4e5529560fdfbf9132cc7b45ac82cc8dd690a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f2cf6d62_a32977cc","in_reply_to":"398648a6_42a73644","updated":"2026-06-10 10:46:57.000000000","message":"right we normally dont gate on that for 2 reasons 1 our downstream has historiclly requried python version that we stictly speaking nolonger supprot and 2 becasue it has been less transparent of a developer flow then we would like\n\nbut i have no issue with spot cheking it.\n\nthe easise way to test this with our downstream or github jobs is to use the fact that the test-operator can pip install whitebox form git if needed so you can expore the required vars to make it pull the review directly form gerrit.\nwe actuly can have the rdo ci run automaticlly on changes to whitebox if we want\n\nand i recently got rhoso to deploy on microshift usign pre providioned centos 10/9 vms\n\nso we could even have first party ci test this in the near term.","commit_id":"23b03d06068609e12c410aa8f591938fc472d236"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9655de0e3b770012fd2ab394aa15a4c06b125397","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"398648a6_42a73644","in_reply_to":"d39ed7c8_0d8d0e39","updated":"2026-06-09 14:50:48.000000000","message":"Cool. Include me in the conversation. I already started looking into how to trigger our downstream jobs with this change.","commit_id":"23b03d06068609e12c410aa8f591938fc472d236"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"d9cbce391eff1a76e9e67bd723edb826b5feebf4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d39ed7c8_0d8d0e39","in_reply_to":"e3202941_90c10143","updated":"2026-06-09 12:50:09.000000000","message":"It\u0027s normally not gating but ideally we try to run the equivalent commit against our downstream CI before merging. I can reach out to @gmaan.os14@gmail.com and @sbauza@redhat.com today with the specifics on how to execute the process.","commit_id":"23b03d06068609e12c410aa8f591938fc472d236"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b05679f6f3e5a523da4b7db2bc18f5305ee7db05","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"73a542d7_074b26e3","in_reply_to":"f2cf6d62_a32977cc","updated":"2026-06-10 19:23:47.000000000","message":"yeah, i confirm that tests are passing on downstream testing\n\n{0} whitebox_tempest_plugin.api.compute.test_cpu_pinning.CPUPolicyTest.test_cpu_dedicated [22.654641s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_cpu_pinning.CPUPolicyTest.test_cpu_shared [9.034175s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_cpu_pinning.CPUPolicyTest.test_reboot_pinned_server [13.741365s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_cpu_pinning.CPUPolicyTest.test_resize_pinned_server_to_unpinned [36.020445s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_cpu_pinning.CPUPolicyTest.test_resize_unpinned_server_to_pinned [36.014482s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_cpu_pinning.CPUThreadPolicyTest.test_threads_isolate [8.110640s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_cpu_pinning.CPUThreadPolicyTest.test_threads_prefer ... SKIPPED: At least 1 SMT-capable compute host is required\n{0} whitebox_tempest_plugin.api.compute.test_cpu_pinning.CPUThreadPolicyTest.test_threads_require ... SKIPPED: At least 1 SMT-capable compute host is required\n{0} whitebox_tempest_plugin.api.compute.test_cpu_pinning.EmulatorThreadTest.test_emulator_no_extra_cpu [5.083718s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_cpu_pinning.EmulatorThreadTest.test_policy_isolate [9.965562s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_cpu_pinning.EmulatorThreadTest.test_policy_share_cpu_shared_set [10.035965s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_cpu_pinning.EmulatorThreadTest.test_policy_share_cpu_shared_unset [304.919001s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_cpu_pinning.MixedCPUPolicyTest.test_shared_pinned_and_unpinned_guest [12.707075s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_cpu_pinning.MixedCPUPolicyTestMultiNuma.test_asymmetric_multi_numa ... SKIPPED: Need at least 3 or more pCPUs per NUMA allocated to the cpu_dedicated_set of the compute host\n{0} whitebox_tempest_plugin.api.compute.test_cpu_pinning.MixedCPUPolicyTestMultiNuma.test_symmetric_multi_numa [10.247613s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_cpu_pinning.NUMACPUDedicatedLiveMigrationTest.test_collocation_migration [66.484007s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_cpu_pinning.NUMALiveMigrationTest.test_cpu_pinning_and_emulator_threads [42.592107s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_cpu_pinning.NUMALiveMigrationTest.test_hugepages ... SKIPPED: Skipped until bug: https://storyboard.openstack.org/#!/story/2009853 is resolved.\n{0} whitebox_tempest_plugin.api.compute.test_cpu_pinning.NUMARebuildTest.test_in_place_rebuild [43.388034s] ... ok","commit_id":"23b03d06068609e12c410aa8f591938fc472d236"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"874e4216d6937024064ad1dea141cf9d2b7a39b3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"e7aeca80_b53d9260","updated":"2026-06-11 16:21:25.000000000","message":"closer im happy with the content but we should fix the defualt","commit_id":"7c93409e34a918d0c2316f5396191ce2e1d6298a"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f729fb23c2ce68b5389c19ccf70b05971ce4a6e7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"9b275f3f_1c32378d","updated":"2026-06-11 18:10:36.000000000","message":"lgtm, thanks. I am waiting for the changes on stable branches to disable the flag at least for those where ever it is passing (2026.1 is green?). If all stable are broken then I am ok to promote my vote to +2. let\u0027s wait for the results: https://review.opendev.org/q/I48bd5df0df946c54388b4a04565db18ed240eef8","commit_id":"7c93409e34a918d0c2316f5396191ce2e1d6298a"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7e6318ab514616b164a1454d2f26679bf9468c02","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b11954e2_65e43356","updated":"2026-06-12 09:18:15.000000000","message":"whitebox tempest failure is relevant. I have to fix a bug in the test case...","commit_id":"7c93409e34a918d0c2316f5396191ce2e1d6298a"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"41f2e270d22078a729d1f317423061921c34458d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"0de555e2_ef759f73","updated":"2026-06-12 16:21:57.000000000","message":"I am good on this.","commit_id":"5d3c88700e58c0ad09b6273ae718b28b934c5544"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"65d4e854e392fd901426bfdde7596c1cf73988da","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"fa1796f2_50bdc522","updated":"2026-06-12 10:56:20.000000000","message":"im fine with proceeding as is but i think we can simplfy","commit_id":"5d3c88700e58c0ad09b6273ae718b28b934c5544"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"436f394b6df52ef42e3449551999fd0e1e62d5fd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d54d1d7c_1d25c0d2","updated":"2026-06-12 17:45:33.000000000","message":"ok lets proceed ill reveiw the stable patchs","commit_id":"5d3c88700e58c0ad09b6273ae718b28b934c5544"}],"whitebox_tempest_plugin/api/compute/test_cpu_pinning.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e4b4e5529560fdfbf9132cc7b45ac82cc8dd690a","unresolved":false,"context_lines":[{"line_number":115,"context_line":"                hardware.parse_cpu_spec(pin.get(\u0027cpuset\u0027))"},{"line_number":116,"context_line":"            for pin in iothreadpins}"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        return nr_of_iothreads, iothread_pins"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def get_cpus_with_sched(self, server_id):"},{"line_number":121,"context_line":"        root \u003d self.get_server_xml(server_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"4a9a5db6_4f540259","line":118,"updated":"2026-06-10 10:46:57.000000000","message":"ack this shoudl work for pinend or unpinned vms","commit_id":"23b03d06068609e12c410aa8f591938fc472d236"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e4b4e5529560fdfbf9132cc7b45ac82cc8dd690a","unresolved":true,"context_lines":[{"line_number":200,"context_line":"        self.assertIsNone("},{"line_number":201,"context_line":"            pins,"},{"line_number":202,"context_line":"            \"The iothreads of the instance should not be pinned but they are\""},{"line_number":203,"context_line":"            \"pinned to %s\" % pins)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    @testtools.skipUnless("},{"line_number":206,"context_line":"        CONF.whitebox_hardware.dedicated_cpus_per_numa \u003e\u003d 2,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f76e87b_251038cf","line":203,"updated":"2026-06-10 10:46:57.000000000","message":"ok so your buildign this into the exsithng test rather then adding dedicated new ones\n\nthat works, i generaly perfer havign at least 1 dedicated test per feature so its very clear if iothrad break tha tits iothread but \n\nthe problem you have with the current approch is you are assumeing master or something relivitly modern here\n\nwhitebox historically has supprot much older veriosn of openstack i.e. 17.1 was supprot form master\n\nso to make that work we add feature flag more often in whitebox then we do in normal tempst and then make the feature test opt in by settign the flag in the relevent jobs.\n\n\nin this case this test will fail on anyting older the 2026.1\n\nso we need to skip the iothread asset when not enabled.\n\ncan you add a new io_thread config option here https://opendev.org/openstack/whitebox-tempest-plugin/src/branch/master/whitebox_tempest_plugin/config.py#L24 and maybe factor out the if and checks into a helper fucntion so that you dont have ot copy past the config check?","commit_id":"23b03d06068609e12c410aa8f591938fc472d236"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"874e4216d6937024064ad1dea141cf9d2b7a39b3","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        self.assertIsNone("},{"line_number":201,"context_line":"            pins,"},{"line_number":202,"context_line":"            \"The iothreads of the instance should not be pinned but they are\""},{"line_number":203,"context_line":"            \"pinned to %s\" % pins)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    @testtools.skipUnless("},{"line_number":206,"context_line":"        CONF.whitebox_hardware.dedicated_cpus_per_numa \u003e\u003d 2,"}],"source_content_type":"text/x-python","patch_set":1,"id":"a6074ae5_11dec8a7","line":203,"in_reply_to":"15764876_c8d9ebd8","updated":"2026-06-11 16:21:25.000000000","message":"ack. so technially whiteboox used to supprot more then stable it use to supprot stable + our downstrema produc i.e. 17.1 used master even afer 18 released. but anythin beyond stable like our downstrema release was best effort\n\nwe didnt drop python 2 supprot for simialr reasons for a very very long time due to 13.\n\nyour right that he vtpm live migration test should have been guarded simialr via config so that they woudl not run on stable/2025.1 and stable/2025.2\n\nthe issue is we dont have stabel variant of the jobs defiend on the repo but we can fix that sepreatly form your change","commit_id":"23b03d06068609e12c410aa8f591938fc472d236"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1e727bccfe97c2b1f063a119d0ca0ffcbf297a40","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        self.assertIsNone("},{"line_number":201,"context_line":"            pins,"},{"line_number":202,"context_line":"            \"The iothreads of the instance should not be pinned but they are\""},{"line_number":203,"context_line":"            \"pinned to %s\" % pins)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    @testtools.skipUnless("},{"line_number":206,"context_line":"        CONF.whitebox_hardware.dedicated_cpus_per_numa \u003e\u003d 2,"}],"source_content_type":"text/x-python","patch_set":1,"id":"6bcb8878_8f11ae45","line":203,"in_reply_to":"1eb8cec7_99954dc3","updated":"2026-06-11 15:25:30.000000000","message":"Done","commit_id":"23b03d06068609e12c410aa8f591938fc472d236"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b05679f6f3e5a523da4b7db2bc18f5305ee7db05","unresolved":true,"context_lines":[{"line_number":200,"context_line":"        self.assertIsNone("},{"line_number":201,"context_line":"            pins,"},{"line_number":202,"context_line":"            \"The iothreads of the instance should not be pinned but they are\""},{"line_number":203,"context_line":"            \"pinned to %s\" % pins)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    @testtools.skipUnless("},{"line_number":206,"context_line":"        CONF.whitebox_hardware.dedicated_cpus_per_numa \u003e\u003d 2,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1eb8cec7_99954dc3","line":203,"in_reply_to":"5f76e87b_251038cf","updated":"2026-06-10 19:23:47.000000000","message":"I am ok with adding these verification in exiting tests but agree with Sean point about doing those based on config option.\n\nAs 2025.1, 2025.2 is still in supported stage, we should not break their testing with master version of whitebox-tempest-plugin.","commit_id":"23b03d06068609e12c410aa8f591938fc472d236"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6935f3237b608784e9e6ca722bfa1de229b2aa81","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        self.assertIsNone("},{"line_number":201,"context_line":"            pins,"},{"line_number":202,"context_line":"            \"The iothreads of the instance should not be pinned but they are\""},{"line_number":203,"context_line":"            \"pinned to %s\" % pins)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    @testtools.skipUnless("},{"line_number":206,"context_line":"        CONF.whitebox_hardware.dedicated_cpus_per_numa \u003e\u003d 2,"}],"source_content_type":"text/x-python","patch_set":1,"id":"8e660e43_b15ec079","line":203,"in_reply_to":"6bcb8878_8f11ae45","updated":"2026-06-11 15:27:42.000000000","message":"Btw I think other whitebox tests already broke the stable runs on nova :/ https://zuul.opendev.org/t/openstack/builds?job_name\u003dwhitebox-devstack-multinode\u0026skip\u003d0","commit_id":"23b03d06068609e12c410aa8f591938fc472d236"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7e6dcdce7d98835858a550027f3523559fc0904c","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        self.assertIsNone("},{"line_number":201,"context_line":"            pins,"},{"line_number":202,"context_line":"            \"The iothreads of the instance should not be pinned but they are\""},{"line_number":203,"context_line":"            \"pinned to %s\" % pins)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    @testtools.skipUnless("},{"line_number":206,"context_line":"        CONF.whitebox_hardware.dedicated_cpus_per_numa \u003e\u003d 2,"}],"source_content_type":"text/x-python","patch_set":1,"id":"998dec72_134cfb25","line":203,"in_reply_to":"72648b34_c82407e9","updated":"2026-06-11 18:26:21.000000000","message":"doing it in https://review.opendev.org/c/openstack/whitebox-tempest-plugin/+/992998","commit_id":"23b03d06068609e12c410aa8f591938fc472d236"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"41f2e270d22078a729d1f317423061921c34458d","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        self.assertIsNone("},{"line_number":201,"context_line":"            pins,"},{"line_number":202,"context_line":"            \"The iothreads of the instance should not be pinned but they are\""},{"line_number":203,"context_line":"            \"pinned to %s\" % pins)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    @testtools.skipUnless("},{"line_number":206,"context_line":"        CONF.whitebox_hardware.dedicated_cpus_per_numa \u003e\u003d 2,"}],"source_content_type":"text/x-python","patch_set":1,"id":"54e4c98f_3e0d1f65","line":203,"in_reply_to":"73aaf41f_89e0f0e1","updated":"2026-06-12 16:21:57.000000000","message":"perfect, thanks for taking care of stable branch changes.","commit_id":"23b03d06068609e12c410aa8f591938fc472d236"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"df2da6e49f15a4d4c48c0788711f51e36614b3b3","unresolved":true,"context_lines":[{"line_number":200,"context_line":"        self.assertIsNone("},{"line_number":201,"context_line":"            pins,"},{"line_number":202,"context_line":"            \"The iothreads of the instance should not be pinned but they are\""},{"line_number":203,"context_line":"            \"pinned to %s\" % pins)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    @testtools.skipUnless("},{"line_number":206,"context_line":"        CONF.whitebox_hardware.dedicated_cpus_per_numa \u003e\u003d 2,"}],"source_content_type":"text/x-python","patch_set":1,"id":"73aaf41f_89e0f0e1","line":203,"in_reply_to":"79899c2c_41d32282","updated":"2026-06-12 13:17:42.000000000","message":"* 2026.1 is green without any changes as the feature is available\n* 2025.2 I proposed a two patches \n  * one to restore green whitebox baseline (due to vtpm lm) https://review.opendev.org/c/openstack/nova/+/993109/1\n  * one to disable iothreads https://review.opendev.org/c/openstack/nova/+/992966/3\n* on 2025.1 there are multiple failing whitebox test in the baseline, and this is the next branch to go unmaintained so I\u0027m not planning to fix the whitebox tests there any more. But I do have a patch that disable iothreads there if we want to land that https://review.opendev.org/c/openstack/nova/+/992967","commit_id":"23b03d06068609e12c410aa8f591938fc472d236"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1a7db6a754456e5e49ce715402553f994858ea3d","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        self.assertIsNone("},{"line_number":201,"context_line":"            pins,"},{"line_number":202,"context_line":"            \"The iothreads of the instance should not be pinned but they are\""},{"line_number":203,"context_line":"            \"pinned to %s\" % pins)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    @testtools.skipUnless("},{"line_number":206,"context_line":"        CONF.whitebox_hardware.dedicated_cpus_per_numa \u003e\u003d 2,"}],"source_content_type":"text/x-python","patch_set":1,"id":"15764876_c8d9ebd8","line":203,"in_reply_to":"8e660e43_b15ec079","updated":"2026-06-11 15:37:53.000000000","message":"I pushed some DNM patch and triggered whitebox run on them to see where we need to set the config option to false \nhttps://review.opendev.org/q/topic:%22iothreads-for-instances%22","commit_id":"23b03d06068609e12c410aa8f591938fc472d236"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"599ff84b00d7caa6aa6362e2e4523c3797b4fb52","unresolved":true,"context_lines":[{"line_number":200,"context_line":"        self.assertIsNone("},{"line_number":201,"context_line":"            pins,"},{"line_number":202,"context_line":"            \"The iothreads of the instance should not be pinned but they are\""},{"line_number":203,"context_line":"            \"pinned to %s\" % pins)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    @testtools.skipUnless("},{"line_number":206,"context_line":"        CONF.whitebox_hardware.dedicated_cpus_per_numa \u003e\u003d 2,"}],"source_content_type":"text/x-python","patch_set":1,"id":"79899c2c_41d32282","line":203,"in_reply_to":"998dec72_134cfb25","updated":"2026-06-12 10:11:29.000000000","message":"I have started modifying the existing job on nova stable branches in https://review.opendev.org/q/topic:%22iothreads-for-instances%22\n\nNote that on 2026.1 I expect the iothreads tests to pass.","commit_id":"23b03d06068609e12c410aa8f591938fc472d236"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f729fb23c2ce68b5389c19ccf70b05971ce4a6e7","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        self.assertIsNone("},{"line_number":201,"context_line":"            pins,"},{"line_number":202,"context_line":"            \"The iothreads of the instance should not be pinned but they are\""},{"line_number":203,"context_line":"            \"pinned to %s\" % pins)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    @testtools.skipUnless("},{"line_number":206,"context_line":"        CONF.whitebox_hardware.dedicated_cpus_per_numa \u003e\u003d 2,"}],"source_content_type":"text/x-python","patch_set":1,"id":"72648b34_c82407e9","line":203,"in_reply_to":"a6074ae5_11dec8a7","updated":"2026-06-11 18:10:36.000000000","message":"yeah, I was thinking to same to add stable branch testing here, I will propose that as a separte change.","commit_id":"23b03d06068609e12c410aa8f591938fc472d236"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b922a713fc9770961b0d798fe0e44a34914e7b78","unresolved":true,"context_lines":[{"line_number":108,"context_line":"        iothreadpins \u003d root.findall(\u0027./cputune/iothreadpin\u0027)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        if not iothreadpins:"},{"line_number":111,"context_line":"            return nr_of_iothreads, None"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        iothread_pins \u003d {"},{"line_number":114,"context_line":"            int(pin.get(\u0027iothread\u0027)):"}],"source_content_type":"text/x-python","patch_set":3,"id":"eb3ce4a4_33c234e8","line":111,"range":{"start_line":111,"start_character":35,"end_line":111,"end_character":40},"updated":"2026-06-12 09:54:54.000000000","message":"if you make this {} it will simplify the logic later","commit_id":"5d3c88700e58c0ad09b6273ae718b28b934c5544"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"65d4e854e392fd901426bfdde7596c1cf73988da","unresolved":true,"context_lines":[{"line_number":108,"context_line":"        iothreadpins \u003d root.findall(\u0027./cputune/iothreadpin\u0027)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        if not iothreadpins:"},{"line_number":111,"context_line":"            return nr_of_iothreads, None"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        iothread_pins \u003d {"},{"line_number":114,"context_line":"            int(pin.get(\u0027iothread\u0027)):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f092657_62199dc6","line":111,"range":{"start_line":111,"start_character":35,"end_line":111,"end_character":40},"in_reply_to":"30df017a_0d203162","updated":"2026-06-12 10:56:20.000000000","message":"yes it can but do we  need to differencate?\n\ni didnt thnk we did\n\nnova doesnt generate an empty iothreadpins element \n\nim actully not sure we need to sepcial case at all really\nwe can but i dont think we need too","commit_id":"5d3c88700e58c0ad09b6273ae718b28b934c5544"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"38771d1ad88b2094c8d214d274019a25d4ec758f","unresolved":true,"context_lines":[{"line_number":108,"context_line":"        iothreadpins \u003d root.findall(\u0027./cputune/iothreadpin\u0027)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        if not iothreadpins:"},{"line_number":111,"context_line":"            return nr_of_iothreads, None"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        iothread_pins \u003d {"},{"line_number":114,"context_line":"            int(pin.get(\u0027iothread\u0027)):"}],"source_content_type":"text/x-python","patch_set":3,"id":"30df017a_0d203162","line":111,"range":{"start_line":111,"start_character":35,"end_line":111,"end_character":40},"in_reply_to":"eb3ce4a4_33c234e8","updated":"2026-06-12 10:44:11.000000000","message":"the code below\n```\n        iothread_pins \u003d {\n            int(pin.get(\u0027iothread\u0027)):\n                hardware.parse_cpu_spec(pin.get(\u0027cpuset\u0027))\n            for pin in iothreadpins}\n```\ncan also produce an empty dict as a result. So if we need to differentiate between the case of iothreadpins in the XML is an empty list, or not present at all then we need a separate sentinel value, I used None.","commit_id":"5d3c88700e58c0ad09b6273ae718b28b934c5544"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b922a713fc9770961b0d798fe0e44a34914e7b78","unresolved":true,"context_lines":[{"line_number":190,"context_line":"            % (server_id, nr))"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        # We know that we have only one iothread, index 1"},{"line_number":193,"context_line":"        pins \u003d pins[1] if pins is not None else None"},{"line_number":194,"context_line":"        pins \u003d set(pins) if pins is not None else None"},{"line_number":195,"context_line":"        e_pins \u003d set(expected_pins) if expected_pins is not None else None"},{"line_number":196,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":3,"id":"a3fef13e_8c875ebd","line":193,"range":{"start_line":193,"start_character":8,"end_line":193,"end_character":52},"updated":"2026-06-12 09:54:54.000000000","message":"i think this could be \n```\n        pins \u003d pins[1] or None\n```\n\nbut since pines is a dict i think it can just be\n\n```suggestion\n        pins \u003d pins.get(1)\n```\n\nor `pins \u003d pins.get(1, None)` if you want to be explcit about the defualt","commit_id":"5d3c88700e58c0ad09b6273ae718b28b934c5544"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"65d4e854e392fd901426bfdde7596c1cf73988da","unresolved":false,"context_lines":[{"line_number":190,"context_line":"            % (server_id, nr))"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        # We know that we have only one iothread, index 1"},{"line_number":193,"context_line":"        pins \u003d pins[1] if pins is not None else None"},{"line_number":194,"context_line":"        pins \u003d set(pins) if pins is not None else None"},{"line_number":195,"context_line":"        e_pins \u003d set(expected_pins) if expected_pins is not None else None"},{"line_number":196,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":3,"id":"15799cca_09254cfe","line":193,"range":{"start_line":193,"start_character":8,"end_line":193,"end_character":52},"in_reply_to":"172b0f8f_c63be48c","updated":"2026-06-12 10:56:20.000000000","message":"oh i tought or handeled that case ok then ignore this","commit_id":"5d3c88700e58c0ad09b6273ae718b28b934c5544"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"38771d1ad88b2094c8d214d274019a25d4ec758f","unresolved":true,"context_lines":[{"line_number":190,"context_line":"            % (server_id, nr))"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        # We know that we have only one iothread, index 1"},{"line_number":193,"context_line":"        pins \u003d pins[1] if pins is not None else None"},{"line_number":194,"context_line":"        pins \u003d set(pins) if pins is not None else None"},{"line_number":195,"context_line":"        e_pins \u003d set(expected_pins) if expected_pins is not None else None"},{"line_number":196,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":3,"id":"172b0f8f_c63be48c","line":193,"range":{"start_line":193,"start_character":8,"end_line":193,"end_character":52},"in_reply_to":"a3fef13e_8c875ebd","updated":"2026-06-12 10:44:11.000000000","message":"if pins is None then pins[1] or None will fail\n```\n\u003e\u003e\u003e pins \u003d None\n\u003e\u003e\u003e pins \u003d pins[1] or None\nTraceback (most recent call last):\n  File \"\u003cpython-input-1\u003e\", line 1, in \u003cmodule\u003e\n    pins \u003d pins[1] or None\n           ~~~~^^^\nTypeError: \u0027NoneType\u0027 object is not subscriptable\n\u003e\u003e\u003e \n```","commit_id":"5d3c88700e58c0ad09b6273ae718b28b934c5544"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b922a713fc9770961b0d798fe0e44a34914e7b78","unresolved":true,"context_lines":[{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        # We know that we have only one iothread, index 1"},{"line_number":193,"context_line":"        pins \u003d pins[1] if pins is not None else None"},{"line_number":194,"context_line":"        pins \u003d set(pins) if pins is not None else None"},{"line_number":195,"context_line":"        e_pins \u003d set(expected_pins) if expected_pins is not None else None"},{"line_number":196,"context_line":"        self.assertEqual("},{"line_number":197,"context_line":"            e_pins, pins,"},{"line_number":198,"context_line":"            \"The iothread of the instance %s should be pinned to the \""}],"source_content_type":"text/x-python","patch_set":3,"id":"6eff3cd8_99e490c4","line":195,"range":{"start_line":194,"start_character":7,"end_line":195,"end_character":74},"updated":"2026-06-12 09:54:54.000000000","message":"this can also be simplifed \n\nexpected_pins could jsut be a set form the start right?\n\nits not a defautls parmater so its alwasy required and we can jsut pass the empty set in stead of None fo that case.","commit_id":"5d3c88700e58c0ad09b6273ae718b28b934c5544"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"65d4e854e392fd901426bfdde7596c1cf73988da","unresolved":true,"context_lines":[{"line_number":216,"context_line":""},{"line_number":217,"context_line":"        # When the instance is not pinned to CPUs the iothread should also"},{"line_number":218,"context_line":"        # not be pinned."},{"line_number":219,"context_line":"        self._assert_iothread_pins(server[\u0027id\u0027], expected_pins\u003dNone)"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    @testtools.skipUnless("},{"line_number":222,"context_line":"        CONF.whitebox_hardware.dedicated_cpus_per_numa \u003e\u003d 2,"}],"source_content_type":"text/x-python","patch_set":3,"id":"e2fef532_bfbee919","line":219,"range":{"start_line":219,"start_character":63,"end_line":219,"end_character":67},"updated":"2026-06-12 10:56:20.000000000","message":"this could be set()\n\nalso expected_pins is not a keyword arg so this and belovw should be \n\n\n\n```suggestion\n        self._assert_iothread_pins(server[\u0027id\u0027], None)\n```\n\nor \n```\n        self._assert_iothread_pins(server[\u0027id\u0027], set())\n```","commit_id":"5d3c88700e58c0ad09b6273ae718b28b934c5544"}],"whitebox_tempest_plugin/config.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"874e4216d6937024064ad1dea141cf9d2b7a39b3","unresolved":true,"context_lines":[{"line_number":397,"context_line":"                default\u003dTrue,"},{"line_number":398,"context_line":"                help\u003d\"verify vnc console tls.\"),"},{"line_number":399,"context_line":"    cfg.BoolOpt(\u0027iothreads\u0027,"},{"line_number":400,"context_line":"                default\u003dTrue,"},{"line_number":401,"context_line":"                help\u003d\"Verify that iothreads are added to instances.\"),"},{"line_number":402,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":2,"id":"e6990cee_063d93f5","line":400,"updated":"2026-06-11 16:21:25.000000000","message":"this should default to false so that no change are needed on older branchs\n\nwe only remvoe/flip thse to true when the oldest stable branch support it branch","commit_id":"7c93409e34a918d0c2316f5396191ce2e1d6298a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cba00d83bdc7d92af3f7b2b9263c6460b7ac3cbc","unresolved":true,"context_lines":[{"line_number":397,"context_line":"                default\u003dTrue,"},{"line_number":398,"context_line":"                help\u003d\"verify vnc console tls.\"),"},{"line_number":399,"context_line":"    cfg.BoolOpt(\u0027iothreads\u0027,"},{"line_number":400,"context_line":"                default\u003dTrue,"},{"line_number":401,"context_line":"                help\u003d\"Verify that iothreads are added to instances.\"),"},{"line_number":402,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":2,"id":"d69a4046_f9b656a8","line":400,"in_reply_to":"30a1a808_9edb2200","updated":"2026-06-11 18:41:52.000000000","message":"ok cause we alwsay did the opiceit for white box and having the new feature off by default with an explcit opt in is what i ahve been encurign for watcher and cybrog\n\nbasiclly the logic is that you shoudl not need to modify stabel jobs due to the addtion of new tests. i dont mind doing it the other way but this is how we have avoid breakin downstream jobs in the past for example","commit_id":"7c93409e34a918d0c2316f5396191ce2e1d6298a"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f729fb23c2ce68b5389c19ccf70b05971ce4a6e7","unresolved":true,"context_lines":[{"line_number":397,"context_line":"                default\u003dTrue,"},{"line_number":398,"context_line":"                help\u003d\"verify vnc console tls.\"),"},{"line_number":399,"context_line":"    cfg.BoolOpt(\u0027iothreads\u0027,"},{"line_number":400,"context_line":"                default\u003dTrue,"},{"line_number":401,"context_line":"                help\u003d\"Verify that iothreads are added to instances.\"),"},{"line_number":402,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":2,"id":"30a1a808_9edb2200","line":400,"in_reply_to":"3d28dc1e_6936cc00","updated":"2026-06-11 18:10:36.000000000","message":"This follows the tempest pattern of keeping the new flag enabled for master onwards, which is the default for any future release. And explicitly disable it on stable branches, which is a one-time thing. If we keep it disabled on master, we need to enable it for every release, which is easy to forget and can lead to coverage loss.","commit_id":"7c93409e34a918d0c2316f5396191ce2e1d6298a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7b65499b328b387d3c951635ead5975dd829bef7","unresolved":true,"context_lines":[{"line_number":397,"context_line":"                default\u003dTrue,"},{"line_number":398,"context_line":"                help\u003d\"verify vnc console tls.\"),"},{"line_number":399,"context_line":"    cfg.BoolOpt(\u0027iothreads\u0027,"},{"line_number":400,"context_line":"                default\u003dTrue,"},{"line_number":401,"context_line":"                help\u003d\"Verify that iothreads are added to instances.\"),"},{"line_number":402,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":2,"id":"3d28dc1e_6936cc00","line":400,"in_reply_to":"e6990cee_063d93f5","updated":"2026-06-11 16:22:10.000000000","message":"taht also means you shoudl update the zuul job on mater to use it","commit_id":"7c93409e34a918d0c2316f5396191ce2e1d6298a"}]}
