)]}'
{"id":"openstack%2Fhorizon~980010","triplet_id":"openstack%2Fhorizon~master~I7569047442d932205a23abe5644fa1598df984e1","project":"openstack/horizon","branch":"master","attention_set":{},"removed_from_attention_set":{"37632":{"account":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"last_update":"2026-03-11 20:55:18.000000000","reason":"\u003cGERRIT_ACCOUNT_37632\u003e replied on the change","reason_account":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"}},"6914":{"account":{"_account_id":6914,"name":"Tatiana Ovchinnikova","email":"t.v.ovtchinnikova@gmail.com","username":"tmazur"},"last_update":"2026-03-12 14:33:08.000000000","reason":"\u003cGERRIT_ACCOUNT_6914\u003e replied on the change","reason_account":{"_account_id":6914,"name":"Tatiana Ovchinnikova","email":"t.v.ovtchinnikova@gmail.com","username":"tmazur"}},"8648":{"account":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"last_update":"2026-03-12 15:03:48.000000000","reason":"\u003cGERRIT_ACCOUNT_8648\u003e replied on the change","reason_account":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"}},"35916":{"account":{"_account_id":35916,"name":"Pham Le Gia Dai","display_name":"Dai","email":"daipham.3213@gmail.com","username":"daiplg","status":"Full Stack Dev"},"last_update":"2026-03-12 16:36:51.000000000","reason":"Change was submitted"},"35133":{"account":{"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"},"last_update":"2026-03-12 16:36:51.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I7569047442d932205a23abe5644fa1598df984e1","subject":"fix: avoid mutating user service catalog in svc-catalog API","status":"MERGED","created":"2026-03-11 11:18:50.000000000","updated":"2026-03-12 16:38:53.000000000","submitted":"2026-03-12 16:36:51.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":2,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"980010","meta_rev_id":"0f10d079ff61329d620e83fa5bec00530306b073","_number":980010,"virtual_id_number":980010,"owner":{"_account_id":35916,"name":"Pham Le Gia Dai","display_name":"Dai","email":"daipham.3213@gmail.com","username":"daiplg","status":"Full Stack Dev"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},{"value":0,"_account_id":35378,"name":"Sang Tran","email":"SangTQ8@fpt.com","username":"sang.tran"},{"value":0,"_account_id":6914,"name":"Tatiana Ovchinnikova","email":"t.v.ovtchinnikova@gmail.com","username":"tmazur"},{"value":0,"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-03-12 16:36:50.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":6914,"name":"Tatiana Ovchinnikova","email":"t.v.ovtchinnikova@gmail.com","username":"tmazur"},"recommended":{"_account_id":35378,"name":"Sang Tran","email":"SangTQ8@fpt.com","username":"sang.tran"},"all":[{"value":1,"date":"2026-03-11 20:55:18.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},{"value":1,"date":"2026-03-11 16:44:13.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":35378,"name":"Sang Tran","email":"SangTQ8@fpt.com","username":"sang.tran"},{"value":2,"date":"2026-03-12 14:33:08.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":6914,"name":"Tatiana Ovchinnikova","email":"t.v.ovtchinnikova@gmail.com","username":"tmazur"},{"value":2,"date":"2026-03-12 15:03:48.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2026-03-11 16:58:57.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"}],"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":{"approved":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"all":[{"value":0,"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},{"value":0,"_account_id":35378,"name":"Sang Tran","email":"SangTQ8@fpt.com","username":"sang.tran"},{"value":0,"_account_id":6914,"name":"Tatiana Ovchinnikova","email":"t.v.ovtchinnikova@gmail.com","username":"tmazur"},{"value":1,"date":"2026-03-12 15:03:48.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},{"value":0,"_account_id":35378,"name":"Sang Tran","email":"SangTQ8@fpt.com","username":"sang.tran"},{"value":0,"_account_id":6914,"name":"Tatiana Ovchinnikova","email":"t.v.ovtchinnikova@gmail.com","username":"tmazur"},{"value":0,"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"}],"values":{"-1":"Release Freeze"," 0":"No Priority","+1":"Important Change","+2":"Gate Blocker Fix / Urgent Change"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[{"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"}],"reviewers":{"REVIEWER":[{"_account_id":6914,"name":"Tatiana Ovchinnikova","email":"t.v.ovtchinnikova@gmail.com","username":"tmazur"},{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"},{"_account_id":35378,"name":"Sang Tran","email":"SangTQ8@fpt.com","username":"sang.tran"},{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-03-11 11:20:54.000000000","updated_by":{"_account_id":35916,"name":"Pham Le Gia Dai","display_name":"Dai","email":"daipham.3213@gmail.com","username":"daiplg","status":"Full Stack Dev"},"reviewer":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"state":"REVIEWER"},{"updated":"2026-03-11 12:49:40.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-03-11 16:44:13.000000000","updated_by":{"_account_id":35378,"name":"Sang Tran","email":"SangTQ8@fpt.com","username":"sang.tran"},"reviewer":{"_account_id":35378,"name":"Sang Tran","email":"SangTQ8@fpt.com","username":"sang.tran"},"state":"REVIEWER"},{"updated":"2026-03-11 16:58:57.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"state":"REVIEWER"},{"updated":"2026-03-11 16:58:57.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":6914,"name":"Tatiana Ovchinnikova","email":"t.v.ovtchinnikova@gmail.com","username":"tmazur"},"state":"REVIEWER"},{"updated":"2026-03-11 16:58:57.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"},"state":"REVIEWER"},{"updated":"2026-03-11 17:00:33.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"state":"REVIEWER"}],"messages":[{"id":"847d50924a7a45dc9b6798eefec1734057dec248","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":35916,"name":"Pham Le Gia Dai","display_name":"Dai","email":"daipham.3213@gmail.com","username":"daiplg","status":"Full Stack Dev"},"date":"2026-03-11 11:18:50.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"86fdd328dcaf8dcb998df3823148c2710309318a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-11 12:49:40.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/d22a48474b4c48da9a6672cb0ca6bc5e\n\n- horizon-cross-manila-ui-python https://zuul.opendev.org/t/openstack/build/5ff9c4cb609446ecab3b4c52ec667bdf : SUCCESS in 7m 42s (non-voting)\n- horizon-cross-ironic-ui-npm https://zuul.opendev.org/t/openstack/build/a918f9b0934e451bbb2535aaf3ee0d90 : SUCCESS in 5m 29s (non-voting)\n- horizon-cross-heat-dashboard-python https://zuul.opendev.org/t/openstack/build/e9eda5552de047e1aa8a10bec8c8c896 : SUCCESS in 3m 53s (non-voting)\n- horizon-cross-magnum-ui-python https://zuul.opendev.org/t/openstack/build/15bad470bc6d46adaddaf235b6d731f8 : SUCCESS in 3m 12s (non-voting)\n- horizon-nodejs20-run-lint https://zuul.opendev.org/t/openstack/build/939dba8d51314defb97f3a7498defcf5 : SUCCESS in 6m 56s\n- horizon-nodejs20-run-test https://zuul.opendev.org/t/openstack/build/ebe86eb0d7d34ea089e5cfdf0252962c : SUCCESS in 4m 48s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/9574568bf1f147598f58ec13f490f4b7 : SUCCESS in 14m 35s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/ec497aa62c5d428faf14eb2a9a1ccff9 : SUCCESS in 15m 29s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/a5023ac2c2a04b52b202201760aad7b7 : SUCCESS in 17m 09s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b422d7fef3f645ef81eea5a3cc19d3c6 : SUCCESS in 5m 53s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/be4878ba66314939a11e131ea70906dd : SUCCESS in 17m 24s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/90ba4878a0904010a9f3ec41a73ad0cd : FAILURE in 29m 45s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/411b6d061dfa42ac99e89b7268c9e045 : SUCCESS in 14m 26s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/a460d5e9933e4ddbb793b3611a010685 : FAILURE in 2m 52s\n- horizon-selenium-headless https://zuul.opendev.org/t/openstack/build/f5b6ffcb07f84439b8c388d6283145da : SUCCESS in 8m 02s\n- horizon-integration-pytest https://zuul.opendev.org/t/openstack/build/07131897b6c84e3fbfe70253ce952811 : SUCCESS in 1h 20m 07s\n- horizon-ui-pytest https://zuul.opendev.org/t/openstack/build/49c1ccafba89414986e3abe0b8b5032d : SUCCESS in 29m 06s\n- horizon-dsvm-tempest-plugin https://zuul.opendev.org/t/openstack/build/07c656048ed2476587d070e1434ec0da : SUCCESS in 30m 06s\n- horizon-tox-bandit-baseline https://zuul.opendev.org/t/openstack/build/693eed35a0754316bb607d8059b331d9 : SUCCESS in 2m 59s\n- horizon-tempest-plugin-ipv6 https://zuul.opendev.org/t/openstack/build/a0039f813202481ea715ca6c40544e09 : SUCCESS in 16m 11s","accounts_in_message":[],"_revision_number":1},{"id":"0d75b2a278b9c4509f97fc3efa884a961a7236b5","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":35916,"name":"Pham Le Gia Dai","display_name":"Dai","email":"daipham.3213@gmail.com","username":"daiplg","status":"Full Stack Dev"},"date":"2026-03-11 14:22:13.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":2},{"id":"452ab2ca917a9fbd4fc356a7ba577ca1261508a7","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-11 15:51:16.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0b9e2a1577524ea285a9881152216460\n\n- horizon-cross-manila-ui-python https://zuul.opendev.org/t/openstack/build/6eb79f8d310d44908ae6fadcbe74fb09 : SUCCESS in 7m 15s (non-voting)\n- horizon-cross-ironic-ui-npm https://zuul.opendev.org/t/openstack/build/94a5289cddfd44a8a17f809a04148fa5 : SUCCESS in 5m 43s (non-voting)\n- horizon-cross-heat-dashboard-python https://zuul.opendev.org/t/openstack/build/59d0c9815dcf438f902bf7fe59b03ba0 : SUCCESS in 3m 46s (non-voting)\n- horizon-cross-magnum-ui-python https://zuul.opendev.org/t/openstack/build/c20c82f3910347dc8bfed36e548cf2ca : SUCCESS in 3m 18s (non-voting)\n- horizon-nodejs20-run-lint https://zuul.opendev.org/t/openstack/build/6f6518a83839412593b18029628feafb : SUCCESS in 2m 31s\n- horizon-nodejs20-run-test https://zuul.opendev.org/t/openstack/build/c93ccdcca0b841368ddda00f24a5f2ba : SUCCESS in 6m 28s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/140b63d39f9247baaf247682c622b311 : SUCCESS in 15m 28s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/441f444ddeed489399c4cf600db16479 : SUCCESS in 16m 11s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/ccdbbc97100643ffaa4fb68c1a32fd87 : SUCCESS in 14m 32s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/808ac8899499485a92327a3d23a48dae : SUCCESS in 6m 06s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/79003abc6833495b80d556cacc8ddb4c : SUCCESS in 17m 25s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/a5a5034a22d04157b3950a0d89716145 : FAILURE in 29m 54s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7523d151f48d4eabbf698ce6f3e31c66 : SUCCESS in 14m 30s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/52b457f881b14f2481880b2c6d1db095 : SUCCESS in 16m 21s\n- horizon-selenium-headless https://zuul.opendev.org/t/openstack/build/e477c4d143af4109b06de2b838279764 : SUCCESS in 8m 25s\n- horizon-integration-pytest https://zuul.opendev.org/t/openstack/build/98cf5b5fb3834d1fa20d69c0bfd3ff7e : SUCCESS in 1h 24m 00s\n- horizon-ui-pytest https://zuul.opendev.org/t/openstack/build/d350c388fc7a47b3aa0959a7949250fb : SUCCESS in 31m 18s\n- horizon-dsvm-tempest-plugin https://zuul.opendev.org/t/openstack/build/1e9e02740a644f148b73d56815b10c6b : SUCCESS in 30m 57s\n- horizon-tox-bandit-baseline https://zuul.opendev.org/t/openstack/build/243ff096630b4f9fbedaf680654c1484 : SUCCESS in 4m 03s\n- horizon-tempest-plugin-ipv6 https://zuul.opendev.org/t/openstack/build/ca6a994d851e4f50bee66b29c6e471f4 : SUCCESS in 30m 21s","accounts_in_message":[],"_revision_number":2},{"id":"f66e2c5b97d7d95a483a4fcb7544f8d7fd51011b","author":{"_account_id":35378,"name":"Sang Tran","email":"SangTQ8@fpt.com","username":"sang.tran"},"date":"2026-03-11 16:44:13.000000000","message":"Patch Set 2: Code-Review+1","accounts_in_message":[],"_revision_number":2},{"id":"8ebedecf806cbcffa5dcad7eaa8bed4def11ad2a","author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"date":"2026-03-11 16:58:57.000000000","message":"Patch Set 2: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"ed69ed596f3e079e80caa580e03b113abbe35d2b","author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"date":"2026-03-11 20:55:18.000000000","message":"Patch Set 2: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"d1ff07599bce3428eec47a37c697a3343fc310db","author":{"_account_id":6914,"name":"Tatiana Ovchinnikova","email":"t.v.ovtchinnikova@gmail.com","username":"tmazur"},"date":"2026-03-12 14:33:08.000000000","message":"Patch Set 2: Code-Review+2","accounts_in_message":[],"_revision_number":2},{"id":"3b4a923b6bb47b47a67e0d52477637714f95c157","author":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"date":"2026-03-12 15:03:48.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":2},{"id":"5f156f003c07d97699082203635f286c52ebc56d","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-12 15:05:01.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"656ab295eedc46f3575e7da6bb6539fe5e8d473a","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-12 16:36:50.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/8f6aedc503444162b68cacff7215dfe3\n\n- horizon-nodejs20-run-lint https://zuul.opendev.org/t/openstack/build/1b8b0d15ab364bf9b15db48c9e792f6c : SUCCESS in 4m 30s\n- horizon-nodejs20-run-test https://zuul.opendev.org/t/openstack/build/f3a158a14c6442b9a5c156fe62816451 : SUCCESS in 5m 59s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/c0c06f2301254064991c80c8f72e2dc3 : SUCCESS in 13m 49s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/87ea1ccd44054e62835401676d45bd74 : SUCCESS in 9m 05s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/9b03f0f773f748a7858851ca13fbcb13 : SUCCESS in 4m 51s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/807f1eb52bc1417d96c76a24273b1737 : SUCCESS in 18m 04s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e0e94435eccc41cb939a80cd01eec461 : SUCCESS in 15m 24s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/a57d33611cc74fbbbbf1d0990b5348e1 : SUCCESS in 16m 39s\n- horizon-dsvm-tempest-plugin https://zuul.opendev.org/t/openstack/build/1418c6954ba64d9b9b3baee2e248e6b9 : SUCCESS in 30m 53s\n- horizon-selenium-headless https://zuul.opendev.org/t/openstack/build/8cb72d0079294e008d98af0525e6ea51 : SUCCESS in 6m 32s\n- horizon-integration-pytest https://zuul.opendev.org/t/openstack/build/d26c29da184b4be1bda19ae3bad81593 : SUCCESS in 1h 27m 05s\n- horizon-ui-pytest https://zuul.opendev.org/t/openstack/build/e144067574b149f58d4b86164ab8e0ba : SUCCESS in 34m 45s\n- horizon-tempest-plugin-ipv6 https://zuul.opendev.org/t/openstack/build/b8b481c4fa014fbba4219c0cd3fe0da8 : SUCCESS in 31m 53s","accounts_in_message":[],"_revision_number":2},{"id":"7a585a2449aef49cebc60938f758d46b9b497dd3","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-12 16:36:51.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":2},{"id":"0f10d079ff61329d620e83fa5bec00530306b073","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-12 16:38:53.000000000","message":"Patch Set 2:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/df0fa01ddef243ddbdf01211b31ca0cf\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/3ccc6e694afe4b18a2c17007bc6e0b2b : SUCCESS in 1m 49s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/92b4f10953ad4d34a0aa16a5d339e658 : SUCCESS in 55s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"52141b9145ef13b8a498a086bd0d398e06763007","revisions":{"5be454a7925f491c35676b4f08166076c23c547a":{"kind":"REWORK","_number":1,"created":"2026-03-11 11:18:50.000000000","uploader":{"_account_id":35916,"name":"Pham Le Gia Dai","display_name":"Dai","email":"daipham.3213@gmail.com","username":"daiplg","status":"Full Stack Dev"},"ref":"refs/changes/10/980010/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/horizon","ref":"refs/changes/10/980010/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/horizon refs/changes/10/980010/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/horizon refs/changes/10/980010/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/horizon refs/changes/10/980010/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/horizon refs/changes/10/980010/1"}}},"commit":{"parents":[{"commit":"981ce4067aad3ba0738691282c2c5ec57427f5cd","subject":"Merge \"Add magnum-ui cross job\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/981ce4067aad3ba0738691282c2c5ec57427f5cd"}]}],"author":{"name":"Pham Le Gia Dai","email":"daiplg@fpt.com","date":"2026-03-11 11:17:20.000000000","tz":420},"committer":{"name":"Pham Le Gia Dai","email":"daiplg@fpt.com","date":"2026-03-11 11:18:36.000000000","tz":420},"subject":"fix: avoid mutating user service catalog in svc-catalog API","message":"fix: avoid mutating user service catalog in svc-catalog API\n\nError logs show repeated endpoint resolution failures after calling `/api/keystone/svc-catalog/`, including:\n- `horizon.exceptions.ServiceCatalogException: Invalid service catalog: image` from `openstack_dashboard/api/base.py:url_for()`\n- call chain through `openstack_dashboard/api/glance.py:glanceclient()` while resolving the `image` endpoint.\n\nThe REST handler filtered endpoints by writing back to `record[\u0027endpoints\u0027]` while iterating over `request.user.service_catalog`. That mutates the user session catalog in place and removes non-public interfaces needed by later backend API calls.\n\nFix this by copying each service record before replacing its endpoints in the response payload, so only the API response is filtered and the original `request.user.service_catalog` remains unchanged.\n\nCloses-Bug: #2134580\nChange-Id: I7569047442d932205a23abe5644fa1598df984e1\nSigned-off-by: Pham Le Gia Dai \u003cdaiplg@fpt.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/5be454a7925f491c35676b4f08166076c23c547a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/5be454a7925f491c35676b4f08166076c23c547a"}]},"branch":"refs/heads/master"},"52141b9145ef13b8a498a086bd0d398e06763007":{"kind":"REWORK","_number":2,"created":"2026-03-11 14:22:13.000000000","uploader":{"_account_id":35916,"name":"Pham Le Gia Dai","display_name":"Dai","email":"daipham.3213@gmail.com","username":"daiplg","status":"Full Stack Dev"},"ref":"refs/changes/10/980010/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/horizon","ref":"refs/changes/10/980010/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/horizon refs/changes/10/980010/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/horizon refs/changes/10/980010/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/horizon refs/changes/10/980010/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/horizon refs/changes/10/980010/2"}}},"commit":{"parents":[{"commit":"981ce4067aad3ba0738691282c2c5ec57427f5cd","subject":"Merge \"Add magnum-ui cross job\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/981ce4067aad3ba0738691282c2c5ec57427f5cd"}]}],"author":{"name":"Pham Le Gia Dai","email":"daiplg@fpt.com","date":"2026-03-11 11:17:20.000000000","tz":420},"committer":{"name":"Pham Le Gia Dai","email":"daiplg@fpt.com","date":"2026-03-11 14:22:06.000000000","tz":420},"subject":"fix: avoid mutating user service catalog in svc-catalog API","message":"fix: avoid mutating user service catalog in svc-catalog API\n\nError logs show repeated endpoint resolution failures after calling `/api/keystone/svc-catalog/`, including:\n- `horizon.exceptions.ServiceCatalogException: Invalid service catalog: image` from `openstack_dashboard/api/base.py:url_for()`\n- call chain through `openstack_dashboard/api/glance.py:glanceclient()` while resolving the `image` endpoint.\n\nThe REST handler filtered endpoints by writing back to `record[\u0027endpoints\u0027]` while iterating over `request.user.service_catalog`. That mutates the user session catalog in place and removes non-public interfaces needed by later backend API calls.\n\nFix this by copying each service record before replacing its endpoints in the response payload, so only the API response is filtered and the original `request.user.service_catalog` remains unchanged.\n\nCloses-Bug: #2134580\nChange-Id: I7569047442d932205a23abe5644fa1598df984e1\nSigned-off-by: Pham Le Gia Dai \u003cdaiplg@fpt.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/52141b9145ef13b8a498a086bd0d398e06763007"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/52141b9145ef13b8a498a086bd0d398e06763007"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","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":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"}},{"label":"Review-Priority","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{}}},{"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":{}}},{"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":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{}}}]}
