)]}'
{"id":"openstack%2Ffreezer-web-ui~993776","triplet_id":"openstack%2Ffreezer-web-ui~master~Ib631eb7966ab97969d86258fa78b31816acb1914","project":"openstack/freezer-web-ui","branch":"master","attention_set":{},"removed_from_attention_set":{"28619":{"account":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"last_update":"2026-06-19 11:13:22.000000000","reason":"Change was abandoned"}},"hashtags":[],"change_id":"Ib631eb7966ab97969d86258fa78b31816acb1914","subject":"Get rid of XHR","status":"ABANDONED","created":"2026-06-17 15:14:03.000000000","updated":"2026-06-19 11:13:22.000000000","total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"aa5df27ca3b6491112c0039b0f870d05ae517920","_number":993776,"virtual_id_number":993776,"owner":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":-1,"date":"2026-06-18 11:44:49.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":-1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-06-17 15:50:52.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"}],"messages":[{"id":"15048941c7fc31eeb7982309298e8fa82fc6fd42","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"date":"2026-06-17 15:14:03.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"903248c0085a40e8aa2acd47901f5ee5b2bf558b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-17 15:50:52.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/32a0e7e71cf040118993016aa4e4f169\n\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/39d12d53e20345c4bf0fd13a473dcca2 : SUCCESS in 3m 22s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/c213edc7504d41868ebe17abf5f7e90f : SUCCESS in 4m 19s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/1cecb3acb4ae413eb2b45fbb0710932f : SUCCESS in 4m 55s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2913769aa573411e8fafea1885e10534 : FAILURE in 4m 02s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/3102110cd79e431790e19631e091facd : SUCCESS in 4m 49s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/ded3f2ec99ab4b78800ebf2b04efdf4b : SUCCESS in 6m 26s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/35d44f9f12314d178a1d5f2a6541bfc8 : SUCCESS in 7m 30s\n- freezer-web-ui https://zuul.opendev.org/t/openstack/build/f1bc6459b12c403c91120f1d3b4bcd01 : SUCCESS in 31m 04s\n- openstack-tox-pylint https://zuul.opendev.org/t/openstack/build/2caa91f3fda84ad0b58db2a6bd752e06 : SUCCESS in 4m 06s\n\nWarning:\n  Comments left for invalid file freezer_ui/jobs/workflows/update_actions.py","accounts_in_message":[],"_revision_number":1},{"id":"d40ffcea6b9e443ce73ecc810fb8111526c7866f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"date":"2026-06-18 11:23:51.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"1275dc0a097728dc3a0bf81b4cdf945edb83c577","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"date":"2026-06-18 11:24:55.000000000","message":"Patch Set 3: Published edit on patch set 2.","accounts_in_message":[],"_revision_number":3},{"id":"4eae64cb4454eb360cbf9f4ebcfb1771760450e0","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-18 11:44:49.000000000","message":"Patch Set 3: 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/dc5934729730468c8130561e8b7d42a8\n\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/aded4522769846f686039e6d78e599c5 : SUCCESS in 3m 40s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/492a48105f0a4d7180e83a256f62ac67 : SUCCESS in 3m 01s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/e1c937461a22400bab503acf8a36ec8b : SUCCESS in 4m 10s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/62acd2fe08d14bc7bf86ed6dbe6b3b1a : FAILURE in 3m 53s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/330afa9d3a954bbfbecf7232d800130e : SUCCESS in 3m 34s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/90e0a8b021264811b12ca294d067aed6 : SUCCESS in 5m 10s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/33afb43c92ab429490c585e60729f543 : SUCCESS in 7m 24s\n- freezer-web-ui https://zuul.opendev.org/t/openstack/build/f30af6358fff4267b4da3dd235b7e10e : SUCCESS in 19m 12s\n- openstack-tox-pylint https://zuul.opendev.org/t/openstack/build/65a319fc048e4dee81aa24142611b80d : SUCCESS in 3m 59s\n\nWarning:\n  Comments left for invalid file freezer_ui/jobs/workflows/update_actions.py","accounts_in_message":[],"_revision_number":3},{"id":"aa5df27ca3b6491112c0039b0f870d05ae517920","tag":"autogenerated:gerrit:abandon","author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"date":"2026-06-19 11:13:22.000000000","message":"Abandoned\n\nIn favor of https://review.opendev.org/c/openstack/freezer-web-ui/+/993970","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"235b06064c265f891fb868d34e3022aa4272ef8d","revisions":{"4f617d3918aec09e636cae570974d3b9881c963e":{"kind":"REWORK","_number":1,"created":"2026-06-17 15:14:03.000000000","uploader":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"ref":"refs/changes/76/993776/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/freezer-web-ui","ref":"refs/changes/76/993776/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/freezer-web-ui refs/changes/76/993776/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/freezer-web-ui refs/changes/76/993776/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/freezer-web-ui refs/changes/76/993776/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/freezer-web-ui refs/changes/76/993776/1"}}},"commit":{"parents":[{"commit":"66522340e57bb87e9f937f7d32a9a5e32f784641","subject":"Filter out incompatible clients and jobs","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/freezer-web-ui/commit/66522340e57bb87e9f937f7d32a9a5e32f784641"}]}],"author":{"name":"Dmitriy Rabotyagov","email":"dmitriy.rabotyagov@cleura.com","date":"2026-06-17 15:13:53.000000000","tz":120},"committer":{"name":"Dmitriy Rabotyagov","email":"dmitriy.rabotyagov@cleura.com","date":"2026-06-17 15:13:53.000000000","tz":120},"subject":"Get rid of XHR","message":"Get rid of XHR\n\nIn OpenStack Horizon, workflows and modals are loaded\ndynamically via AJAX. When jQuery inserts HTML content that\ncontains \u003cscript src\u003d\"...\"\u003e tags, it fetches those external scripts\nusing a synchronous XMLHttpRequest (sync-xhr) to\nensure execution order.\n\nThis triggers console warnings/violations and fails\nunder security/permissions policies that block sync-xhr (sync-xhr\u003d()).\n\nTo resolve this, we will remove all \u003cscript src\u003d\"...\"\u003e tags from the\nAJAX-loaded templates, load them statically as part of Horizon\u0027s\nstatic asset pipeline, and refactor the JS\n\nAssisted-By: Gemini 3.5\nChange-Id: Ib631eb7966ab97969d86258fa78b31816acb1914\nSigned-off-by: Dmitriy Rabotyagov \u003cdmitriy.rabotyagov@cleura.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/freezer-web-ui/commit/4f617d3918aec09e636cae570974d3b9881c963e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/freezer-web-ui/commit/4f617d3918aec09e636cae570974d3b9881c963e"}]},"branch":"refs/heads/master"},"7efd3398a205f8f2754c5a9d02ffbcb883168dfb":{"kind":"REWORK","_number":2,"created":"2026-06-18 11:23:51.000000000","uploader":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"ref":"refs/changes/76/993776/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/freezer-web-ui","ref":"refs/changes/76/993776/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/freezer-web-ui refs/changes/76/993776/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/freezer-web-ui refs/changes/76/993776/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/freezer-web-ui refs/changes/76/993776/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/freezer-web-ui refs/changes/76/993776/2"}}},"commit":{"parents":[{"commit":"66522340e57bb87e9f937f7d32a9a5e32f784641","subject":"Filter out incompatible clients and jobs","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/freezer-web-ui/commit/66522340e57bb87e9f937f7d32a9a5e32f784641"}]}],"author":{"name":"Dmitriy Rabotyagov","email":"dmitriy.rabotyagov@cleura.com","date":"2026-06-17 15:13:53.000000000","tz":120},"committer":{"name":"Dmitriy Rabotyagov","email":"dmitriy.rabotyagov@cleura.com","date":"2026-06-17 16:34:30.000000000","tz":120},"subject":"Get rid of XHR","message":"Get rid of XHR\n\nIn OpenStack Horizon, workflows and modals are loaded\ndynamically via AJAX. When jQuery inserts HTML content that\ncontains \u003cscript src\u003d\"...\"\u003e tags, it fetches those external scripts\nusing a synchronous XMLHttpRequest (sync-xhr) to\nensure execution order.\n\nThis triggers console warnings/violations and fails\nunder security/permissions policies that block sync-xhr (sync-xhr\u003d()).\n\nTo resolve this, we will remove all \u003cscript src\u003d\"...\"\u003e tags from the\nAJAX-loaded templates, load them statically as part of Horizon\u0027s\nstatic asset pipeline, and refactor the JS\n\nAssisted-By: Gemini 3.5\nChange-Id: Ib631eb7966ab97969d86258fa78b31816acb1914\nSigned-off-by: Dmitriy Rabotyagov \u003cdmitriy.rabotyagov@cleura.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/freezer-web-ui/commit/7efd3398a205f8f2754c5a9d02ffbcb883168dfb"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/freezer-web-ui/commit/7efd3398a205f8f2754c5a9d02ffbcb883168dfb"}]},"branch":"refs/heads/master"},"235b06064c265f891fb868d34e3022aa4272ef8d":{"kind":"REWORK","_number":3,"created":"2026-06-18 11:24:55.000000000","uploader":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"ref":"refs/changes/76/993776/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/freezer-web-ui","ref":"refs/changes/76/993776/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/freezer-web-ui refs/changes/76/993776/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/freezer-web-ui refs/changes/76/993776/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/freezer-web-ui refs/changes/76/993776/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/freezer-web-ui refs/changes/76/993776/3"}}},"commit":{"parents":[{"commit":"66522340e57bb87e9f937f7d32a9a5e32f784641","subject":"Filter out incompatible clients and jobs","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/freezer-web-ui/commit/66522340e57bb87e9f937f7d32a9a5e32f784641"}]}],"author":{"name":"Dmitriy Rabotyagov","email":"dmitriy.rabotyagov@cleura.com","date":"2026-06-17 15:13:53.000000000","tz":120},"committer":{"name":"Dmitriy Rabotyagov","email":"dmitriy.rabotyagov@cleura.com","date":"2026-06-18 11:24:55.000000000","tz":0},"subject":"Get rid of XHR","message":"Get rid of XHR\n\nIn OpenStack Horizon, workflows and modals are loaded\ndynamically via AJAX. When jQuery inserts HTML content that\ncontains \u003cscript src\u003d\"...\"\u003e tags, it fetches those external scripts\nusing a synchronous XMLHttpRequest (sync-xhr) to\nensure execution order.\n\nThis triggers console warnings/violations and fails\nunder security/permissions policies that block sync-xhr (sync-xhr\u003d()).\n\nTo resolve this, we will remove all \u003cscript src\u003d\"...\"\u003e tags from the\nAJAX-loaded templates, load them statically as part of Horizon\u0027s\nstatic asset pipeline, and refactor the JS\n\nAssisted-By: Gemini 3.5\nChange-Id: Ib631eb7966ab97969d86258fa78b31816acb1914\nSigned-off-by: Dmitriy Rabotyagov \u003cdmitriy.rabotyagov@cleura.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/freezer-web-ui/commit/235b06064c265f891fb868d34e3022aa4272ef8d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/freezer-web-ui/commit/235b06064c265f891fb868d34e3022aa4272ef8d"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"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":""}}}]}
