)]}'
{"id":"openstack%2Fhorizon~987135","triplet_id":"openstack%2Fhorizon~master~If5eee3e498bdfa049cfe614b58d43eaa99c6e84e","project":"openstack/horizon","branch":"master","topic":"parallel-pytest","attention_set":{"8648":{"account":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"last_update":"2026-05-04 16:54:03.000000000","reason":"A robot voted negatively on a label"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"If5eee3e498bdfa049cfe614b58d43eaa99c6e84e","subject":"Run unit tests in parallel","status":"NEW","created":"2026-05-04 10:25:24.000000000","updated":"2026-05-05 10:18:56.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":2,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"037ce32b976f6152551824a032d26ea4c193f7b9","_number":987135,"virtual_id_number":987135,"owner":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-05-05 08:04:26.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"}],"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":{"approved":{"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"},"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2026-05-05 10:18:56.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"}],"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":"","default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":2},"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"}],"values":{"-1":"Release Freeze"," 0":"No Priority","+1":"Important Change","+2":"Gate Blocker Fix / Urgent Change"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-05-04 11:58:53.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":"2026-05-05 10:18:56.000000000","updated_by":{"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"},"reviewer":{"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"},"state":"REVIEWER"}],"messages":[{"id":"affce23f82faefbee13764f47daf4e6f4da4f156","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"date":"2026-05-04 10:25:24.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"002e806501ffda609c338636f6a3052b80c387b9","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-04 11:58:53.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/540c13cc53454505b5c630a68c834915\n\n- horizon-cross-manila-ui-python https://zuul.opendev.org/t/openstack/build/d82b6143ec6447da9402ea5e2eb2f8a5 : SUCCESS in 4m 09s (non-voting)\n- horizon-cross-ironic-ui-npm https://zuul.opendev.org/t/openstack/build/533c156537c94cad9b202ab881bfad9e : SUCCESS in 7m 46s (non-voting)\n- horizon-cross-heat-dashboard-python https://zuul.opendev.org/t/openstack/build/055653fb27604d5a995e1311ea1ec845 : SUCCESS in 3m 09s (non-voting)\n- horizon-cross-magnum-ui-python https://zuul.opendev.org/t/openstack/build/1c3199b35a494f9f9b90d52b86926083 : SUCCESS in 3m 20s (non-voting)\n- horizon-nodejs20-run-lint https://zuul.opendev.org/t/openstack/build/937088021b7a4290968ac05a7874b04e : SUCCESS in 7m 04s\n- horizon-nodejs20-run-test https://zuul.opendev.org/t/openstack/build/e1365daa0c0e4e3da0fb6cf82b16dbc2 : SUCCESS in 6m 23s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/fe6bd5537e3e4819b6c6b26d96525b4a : SUCCESS in 15m 59s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/90abb064cc2a40f5a0c6e50a6cab5b49 : SUCCESS in 16m 24s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/229c563b8b6b4c858a0975d27ac59017 : SUCCESS in 17m 37s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3c152713cbde49418c6e8603acfca4a9 : SUCCESS in 5m 00s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/66a65048083549e885e87983c2e28ba5 : SUCCESS in 16m 21s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/37b4621f70c04c81ac92c299e45f4e91 : FAILURE in 32m 23s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/44876fed4a74426a8256cab74ad40ee4 : SUCCESS in 15m 15s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/361e0a0fe41d4cc3b3f9bc09b977c147 : SUCCESS in 18m 40s\n- horizon-selenium-headless https://zuul.opendev.org/t/openstack/build/68cc1dddbd634886aa1808fced7a61aa : SUCCESS in 7m 53s\n- horizon-integration-pytest https://zuul.opendev.org/t/openstack/build/698bcab8f60244909cfc4654ddfb159c : SUCCESS in 1h 24m 44s\n- horizon-ui-pytest https://zuul.opendev.org/t/openstack/build/c298427088994f68be7402fc89d3cd18 : SUCCESS in 29m 58s\n- horizon-dsvm-tempest-plugin https://zuul.opendev.org/t/openstack/build/3606cd4823064d179d4378d907ce5713 : SUCCESS in 29m 43s\n- horizon-tox-bandit-baseline https://zuul.opendev.org/t/openstack/build/346dddee78b744d4a3d1092181d8c0c8 : SUCCESS in 4m 34s\n- horizon-tempest-plugin-ipv6 https://zuul.opendev.org/t/openstack/build/2bea3918ccde4d42917747ff0fa07b76 : SUCCESS in 29m 21s","accounts_in_message":[],"_revision_number":1},{"id":"0aa8e0baf48a84b7593816bcd78e93832b3c508d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"date":"2026-05-04 15:20:44.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"641c77307d9e4df2aab8199322b1a92008f6f12f","author":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"date":"2026-05-04 15:51:12.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"1a7395d6089397f66677e1e5211812059b7c9b92","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-04 16:54:03.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/a9b2d9f87e2d43979162d3e6d9261d2c\n\n- horizon-cross-manila-ui-python https://zuul.opendev.org/t/openstack/build/2f8f24596b42423f871b5bcce9addaef : SUCCESS in 6m 54s (non-voting)\n- horizon-cross-ironic-ui-npm https://zuul.opendev.org/t/openstack/build/15c1a2053fe540058e4e098c53afd5a9 : SUCCESS in 5m 12s (non-voting)\n- horizon-cross-heat-dashboard-python https://zuul.opendev.org/t/openstack/build/0ea13d2ae14c496d991cb89855abef45 : SUCCESS in 3m 44s (non-voting)\n- horizon-cross-magnum-ui-python https://zuul.opendev.org/t/openstack/build/d13022bbaf4744448896d2b4995b9f66 : SUCCESS in 3m 19s (non-voting)\n- horizon-nodejs20-run-lint https://zuul.opendev.org/t/openstack/build/92e61e9d6b964d7aae1154de5f4d732f : SUCCESS in 4m 19s\n- horizon-nodejs20-run-test https://zuul.opendev.org/t/openstack/build/b6d2d1c7e06841fca51ac34b2a7fcc39 : SUCCESS in 6m 59s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/563f4ddb0ba8478eac14a02676171cf8 : SUCCESS in 9m 27s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/d6006cbfc35248db920b3f23a661d09d : SUCCESS in 9m 22s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/1c1c3fcbe6064164816c75cc7a58082e : SUCCESS in 19m 21s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/206f8dbfc1274e4da6767279524b29d4 : SUCCESS in 4m 59s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/7f38196a9eae4482be548e183b07d7fe : SUCCESS in 7m 49s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/a8f27e8d49a64194bf39d7acc08b47d9 : FAILURE in 34m 33s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b8a3e8cd7b894b999047881fe4ee9826 : SUCCESS in 15m 59s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/8146112edb0c40e4b0a7bbe5c593d5d2 : SUCCESS in 19m 21s\n- horizon-selenium-headless https://zuul.opendev.org/t/openstack/build/9f5ecafa7b5e4fb7b57f4898f4187fda : SUCCESS in 5m 48s\n- horizon-integration-pytest https://zuul.opendev.org/t/openstack/build/b2190f2bc2034315982bed1a4d4d0024 : SUCCESS in 1h 26m 23s\n- horizon-ui-pytest https://zuul.opendev.org/t/openstack/build/19d570b1c94a49b48abe9d7a4794c751 : FAILURE in 31m 03s\n- horizon-dsvm-tempest-plugin https://zuul.opendev.org/t/openstack/build/fa0d9d1deb8d48f79eb7f4908cac4897 : SUCCESS in 21m 03s\n- horizon-tox-bandit-baseline https://zuul.opendev.org/t/openstack/build/4b843a102b78401ebf2856549e5c40a4 : SUCCESS in 3m 36s\n- horizon-tempest-plugin-ipv6 https://zuul.opendev.org/t/openstack/build/5453cebe1a3548a48e264c6534ad2213 : SUCCESS in 29m 43s","accounts_in_message":[],"_revision_number":2},{"id":"2f0b2398f14cd595ed59ce56653b4f4d55c9f23c","tag":"autogenerated:zuul:experimental","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-04 17:03:20.000000000","message":"Patch Set 2:\n\nBuild succeeded (experimental pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9a6e6dc801a8485c87f2a8db84392b2d\n\n- horizon-integration-pytest-xstatic-master https://zuul.opendev.org/t/openstack/build/d45bebae1a5f4882ba8bf00e3873e531 : SUCCESS in 1h 09m 59s\n- horizon-tox-py310-xstatic-master https://zuul.opendev.org/t/openstack/build/45996f7908fa4b5292e3a183e4e04b5f : SUCCESS in 27m 10s\n- horizon-nodejs20-run-test-xstatic-master https://zuul.opendev.org/t/openstack/build/e7720aa8ceac4ae08fd7ef879697295d : SUCCESS in 13m 08s","accounts_in_message":[],"_revision_number":2},{"id":"e7edb52bcfe38ff9029e1ed61846f93ae6e4e7aa","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"date":"2026-05-05 06:35:39.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"1844cb4fa28c0f7c1c856c442fc7310311c0a160","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-05 08:04:26.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/dd9bb8d416d84effbff99f4efd20365f\n\n- horizon-cross-manila-ui-python https://zuul.opendev.org/t/openstack/build/2e60c2d95b114f78825a10cd57b986bf : FAILURE in 4m 22s (non-voting)\n- horizon-cross-ironic-ui-npm https://zuul.opendev.org/t/openstack/build/d2c084a5280c4c02ba866a05cc062dd1 : SUCCESS in 5m 19s (non-voting)\n- horizon-cross-heat-dashboard-python https://zuul.opendev.org/t/openstack/build/29410224f8be4e82b73cdf3686dc112e : SUCCESS in 3m 20s (non-voting)\n- horizon-cross-magnum-ui-python https://zuul.opendev.org/t/openstack/build/20c79d9000d649838fb163abfb1a4098 : SUCCESS in 3m 10s (non-voting)\n- horizon-nodejs20-run-lint https://zuul.opendev.org/t/openstack/build/c8c43b7156aa46e0adb5c9c9a7bfd1a5 : SUCCESS in 4m 23s\n- horizon-nodejs20-run-test https://zuul.opendev.org/t/openstack/build/db19e455864941fd9fec8b1ef24509a0 : SUCCESS in 5m 28s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/822dd4dc029b4fec87313be11adbbc9c : SUCCESS in 14m 41s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/bdc7fb7556a6482db2bfa7877d07ce27 : SUCCESS in 14m 25s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/22e34b1c00fa4bc78ef303ed99825fc1 : SUCCESS in 17m 16s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7526f87a68c5428b92d4c406d53c01c7 : SUCCESS in 3m 11s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/01f8694996d4466e85400f4f1566a705 : SUCCESS in 11m 52s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/f32c2e888dcb40b09b8821c100784649 : FAILURE in 31m 46s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/395b508564074048906b2ea868efbd4c : SUCCESS in 8m 00s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/0173e801e6034f18b1655a6e75ac64d5 : SUCCESS in 11m 02s\n- horizon-selenium-headless https://zuul.opendev.org/t/openstack/build/72c680cc9f0e4757b480f7ed69d0b423 : SUCCESS in 6m 32s\n- horizon-integration-pytest https://zuul.opendev.org/t/openstack/build/a2bfbb05018b44c693d7dfe9fc4c6bdf : SUCCESS in 1h 23m 41s\n- horizon-ui-pytest https://zuul.opendev.org/t/openstack/build/15bc6c01bdff44e7850ffd5613ef73cc : SUCCESS in 28m 57s\n- horizon-dsvm-tempest-plugin https://zuul.opendev.org/t/openstack/build/bc3ed145e6e74142b689e2e916c5dea8 : SUCCESS in 18m 13s\n- horizon-tox-bandit-baseline https://zuul.opendev.org/t/openstack/build/c61f7119805b405fa29f871a3836db98 : SUCCESS in 3m 32s\n- horizon-tempest-plugin-ipv6 https://zuul.opendev.org/t/openstack/build/bfb08d66c43e4e43a226a384507d0c18 : SUCCESS in 28m 34s","accounts_in_message":[],"_revision_number":3},{"id":"037ce32b976f6152551824a032d26ea4c193f7b9","author":{"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"},"date":"2026-05-05 10:18:56.000000000","message":"Patch Set 3: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"2f2c80f25c8fcd6f50073e856743e53a1b3aee55","revisions":{"42453e02cf89e63d897066451c469d9b14c7f04a":{"kind":"REWORK","_number":1,"created":"2026-05-04 10:25:24.000000000","uploader":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"ref":"refs/changes/35/987135/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/horizon","ref":"refs/changes/35/987135/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/horizon refs/changes/35/987135/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/horizon refs/changes/35/987135/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/horizon refs/changes/35/987135/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/horizon refs/changes/35/987135/1"}}},"commit":{"parents":[{"commit":"6c701e92c7b6f44dd99d07850fdfa6a71843ab06","subject":"Merge \"SDK: Remove remaining neutronclient calls\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/6c701e92c7b6f44dd99d07850fdfa6a71843ab06"}]}],"author":{"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","date":"2026-05-04 10:23:39.000000000","tz":120},"committer":{"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","date":"2026-05-04 10:23:39.000000000","tz":120},"subject":"Run unit tests in parallel","message":"Run unit tests in parallel\n\nUse pytest-xdist plugin to run all our unit tests in parallel, on as\nmany processors as are available.\n\nTo make that possible, I had to fix a race condition in two tests, which\nfail if they are run separately from previous tests, because of error in\nthe state logic.\n\nSigned-off-by: Radomir Dopieralski \u003copenstack@dopieralski.pl\u003e\nChange-Id: If5eee3e498bdfa049cfe614b58d43eaa99c6e84e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/42453e02cf89e63d897066451c469d9b14c7f04a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/42453e02cf89e63d897066451c469d9b14c7f04a"}]},"branch":"refs/heads/master"},"ad0fe85ca1146aeee01db74c15517650c09ce846":{"kind":"REWORK","_number":2,"created":"2026-05-04 15:20:44.000000000","uploader":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"ref":"refs/changes/35/987135/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/horizon","ref":"refs/changes/35/987135/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/horizon refs/changes/35/987135/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/horizon refs/changes/35/987135/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/horizon refs/changes/35/987135/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/horizon refs/changes/35/987135/2"}}},"commit":{"parents":[{"commit":"6c701e92c7b6f44dd99d07850fdfa6a71843ab06","subject":"Merge \"SDK: Remove remaining neutronclient calls\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/6c701e92c7b6f44dd99d07850fdfa6a71843ab06"}]}],"author":{"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","date":"2026-05-04 10:23:39.000000000","tz":120},"committer":{"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","date":"2026-05-04 15:20:33.000000000","tz":120},"subject":"Run unit tests in parallel","message":"Run unit tests in parallel\n\nUse pytest-xdist plugin to run all our unit tests in parallel, on as\nmany processors as are available.\n\nTo make that possible, I had to fix a race condition in two tests, which\nfail if they are run separately from previous tests, because of error in\nthe state logic.\n\nSigned-off-by: Radomir Dopieralski \u003copenstack@dopieralski.pl\u003e\nChange-Id: If5eee3e498bdfa049cfe614b58d43eaa99c6e84e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/ad0fe85ca1146aeee01db74c15517650c09ce846"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/ad0fe85ca1146aeee01db74c15517650c09ce846"}]},"branch":"refs/heads/master"},"2f2c80f25c8fcd6f50073e856743e53a1b3aee55":{"kind":"REWORK","_number":3,"created":"2026-05-05 06:35:39.000000000","uploader":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"ref":"refs/changes/35/987135/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/horizon","ref":"refs/changes/35/987135/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/horizon refs/changes/35/987135/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/horizon refs/changes/35/987135/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/horizon refs/changes/35/987135/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/horizon refs/changes/35/987135/3"}}},"commit":{"parents":[{"commit":"6c701e92c7b6f44dd99d07850fdfa6a71843ab06","subject":"Merge \"SDK: Remove remaining neutronclient calls\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/6c701e92c7b6f44dd99d07850fdfa6a71843ab06"}]}],"author":{"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","date":"2026-05-04 10:23:39.000000000","tz":120},"committer":{"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","date":"2026-05-05 06:15:00.000000000","tz":120},"subject":"Run unit tests in parallel","message":"Run unit tests in parallel\n\nUse pytest-xdist plugin to run all our unit tests in parallel, on as\nmany processors as are available.\n\nTo make that possible, I had to fix a race condition in two tests, which\nfail if they are run separately from previous tests, because of error in\nthe state logic.\n\nSigned-off-by: Radomir Dopieralski \u003copenstack@dopieralski.pl\u003e\nChange-Id: If5eee3e498bdfa049cfe614b58d43eaa99c6e84e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/2f2c80f25c8fcd6f50073e856743e53a1b3aee55"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/2f2c80f25c8fcd6f50073e856743e53a1b3aee55"}]},"branch":"refs/heads/master"}},"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":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"}},{"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":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Review-Priority","description":"Review priority","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"-label:Review-Priority\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":[],"failing_atoms":["label:Review-Priority\u003dMIN"],"atom_explanations":{"label:Review-Priority\u003dMIN":""}}},{"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":""}}}]}
