)]}'
{"id":"openstack%2Ffreezer-api~984069","triplet_id":"openstack%2Ffreezer-api~master~Ibcf12de8de07b6b0fcfd1152c23d5de86ec8c1ed","project":"openstack/freezer-api","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-04-22 21:17:40.000000000","reason":"\u003cGERRIT_ACCOUNT_28619\u003e replied on the change","reason_account":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"}}},"hashtags":[],"change_id":"Ibcf12de8de07b6b0fcfd1152c23d5de86ec8c1ed","subject":"Raise an error on unauthorized client delete attempt","status":"MERGED","created":"2026-04-10 16:43:51.000000000","updated":"2026-04-22 22:02:08.000000000","submitted":"2026-04-22 22:01:13.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"984069","meta_rev_id":"9541f39f218408aa1c55c59527059f42f4255a59","_number":984069,"virtual_id_number":984069,"owner":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-04-22 22:01:13.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":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"all":[{"value":2,"date":"2026-04-22 21:17:40.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"value":0,"_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":{"approved":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"all":[{"value":1,"date":"2026-04-22 21:17:40.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"value":0,"_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"]},{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-04-10 17:03:07.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":"88d257eae9a17409feef216ae0e1c27a324e8a3c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"date":"2026-04-10 16:43:51.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"b2865374e8b5ad754a4fa4824436931bd7b0b06b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-10 17:03:07.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/27286832de2d44af8d71561d562f906c\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/790080ac00874baeb8fc3db112f5e7d7 : SUCCESS in 3m 25s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/880b1f2a42e34a3db509537d19fc7628 : SUCCESS in 2m 18s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/0eea9f1e84fa479ebdd057daf6ec9156 : SUCCESS in 2m 25s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/380f3fadb8fe493785405b19688e2b2f : SUCCESS in 5m 52s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4ba72bd9622d4169b659ae8e8c32015e : SUCCESS in 3m 48s\n- openstack-tox-pylint https://zuul.opendev.org/t/openstack/build/d069cb8c9289475e8d21787edcc772fe : FAILURE in 4m 37s\n- freezer-tempest-basic https://zuul.opendev.org/t/openstack/build/b5c654d4b83b40e0ac34d47f5719a43b : SUCCESS in 14m 58s\n- freezer-tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/3a91735ec99448a4aab42c35bf3f1d14 : SUCCESS in 18m 01s","accounts_in_message":[],"_revision_number":1},{"id":"ceec536b2d402d1b89d072e16f52ddf681dcd50a","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-10 17:05:22.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/cd504906185849e4bf3f6fe969b19765\n\n- openstack-tox-py310-arm64 https://zuul.opendev.org/t/openstack/build/2e9660b979284437ab0ee3803bb2d0da : SUCCESS in 4m 43s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/7ad93813afd642bba64e4ac5d6868ca9 : SUCCESS in 4m 22s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/9de48c13fb664c0cbd5685748cf5fc84 : SUCCESS in 6m 11s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"e59ce7401ecfc72d0adde5586d72c988b70e6b1d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"date":"2026-04-22 12:43:34.000000000","message":"Patch Set 2: Patch Set 1 was rebased\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"e4ca7994cbddfcfd2b776874cd8bd1f2b2cd315e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-22 13:24:46.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/73ed39c095d2492389026264ae2d5a05\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3df661787e5a49378966dc77f44782dc : SUCCESS in 3m 10s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/8793ab31c8fa4c0cbcf672f14d33ba75 : SUCCESS in 4m 02s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/e9ef0ecd37804bac8e6d7e97d8b580f4 : SUCCESS in 4m 09s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/d56429dd7b734887b9ccf91a720cea2c : SUCCESS in 6m 26s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9bdedee160764474abe2673758b5ab01 : SUCCESS in 4m 17s\n- openstack-tox-pylint https://zuul.opendev.org/t/openstack/build/f5012958674f42699bb3036b9846d1c5 : SUCCESS in 4m 40s\n- freezer-tempest-basic https://zuul.opendev.org/t/openstack/build/9ee6b9512c9244459ba9acbd5e6922ea : SUCCESS in 34m 22s\n- freezer-tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/4a081ac0d0994c609d271a4b2842a40f : SUCCESS in 35m 23s","accounts_in_message":[],"_revision_number":2},{"id":"65fb8d390a868f3fd318120a5956935d85fb2fb5","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-22 13:34:55.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9424b654a8cc4e8a9c68e1195a5a49f8\n\n- openstack-tox-py310-arm64 https://zuul.opendev.org/t/openstack/build/800010c65298484ca543b6b31cbd003f : SUCCESS in 4m 01s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/66f8e928e3b146498ab7e4bba93448a0 : SUCCESS in 5m 15s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/99bc285dfdf14a0caaef956289299cd3 : SUCCESS in 7m 23s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"1ab3d00db697bacd36f23b86048d2e1e19c1d789","author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"date":"2026-04-22 21:17:40.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":2},{"id":"3bc4d800e241a9aea4f4f31b09d4dde4bb6c737e","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-22 21:18:13.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"61cad2f333c31f74d90442922b535f58de551464","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-22 22:01:13.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c5071c4d3d80427eaf8f37dc906318f8\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f5ce4e7fd3b346df87f34c1752b1c88d : SUCCESS in 3m 26s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/16408ab94f5a4aab9507ec92ae35eca3 : SUCCESS in 4m 19s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/4cf6c77f48da463ebc342ec6606bd055 : SUCCESS in 3m 53s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4ae56707aa8b4584a08efcbc17c60d09 : SUCCESS in 4m 08s\n- openstack-tox-pylint https://zuul.opendev.org/t/openstack/build/b2cf4a0b12a945c7a303c58d8ba41f2a : SUCCESS in 4m 55s\n- freezer-tempest-basic https://zuul.opendev.org/t/openstack/build/58742feee21940019172c9fe51efa02f : SUCCESS in 33m 01s\n- freezer-tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/98b631cda5334bff8827a689dfabec50 : SUCCESS in 37m 33s","accounts_in_message":[],"_revision_number":2},{"id":"979c9a5615b3f10f907d164221cbf89dc3ae7a26","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-22 22:01:13.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":2},{"id":"9541f39f218408aa1c55c59527059f42f4255a59","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-22 22:02:08.000000000","message":"Patch Set 2:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c34726b08a2c4efdb815a2fe3f9c6236\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/fa3ff78ab48d44bf93df31a923855279 : SUCCESS in 42s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"6d7eb90ba63a0a9dc35e338b95fbe9deda9524df","revisions":{"c42dab4fc899c6e7921d9ca93b8c91e936fe44d3":{"kind":"REWORK","_number":1,"created":"2026-04-10 16:43:51.000000000","uploader":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"ref":"refs/changes/69/984069/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/freezer-api","ref":"refs/changes/69/984069/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/freezer-api refs/changes/69/984069/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/freezer-api refs/changes/69/984069/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/freezer-api refs/changes/69/984069/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/freezer-api refs/changes/69/984069/1"}}},"commit":{"parents":[{"commit":"05a2ef1e22a65a6287b21fd2ecc81f751a948f52","subject":"Do not show PIDs for central clients","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/freezer-api/commit/05a2ef1e22a65a6287b21fd2ecc81f751a948f52"}]}],"author":{"name":"Dmitriy Rabotyagov","email":"dmitriy.rabotyagov@cleura.com","date":"2026-04-10 16:43:40.000000000","tz":120},"committer":{"name":"Dmitriy Rabotyagov","email":"dmitriy.rabotyagov@cleura.com","date":"2026-04-10 16:43:40.000000000","tz":120},"subject":"Raise an error on unauthorized client delete attempt","message":"Raise an error on unauthorized client delete attempt\n\nWith central clients, users may attempt to issue delete request towards\nthem.\n\nWhile deletion will not happen, as user_id/project_id match will not\nhappen,\nAPI will reply with success code, which is confusing.\n\nLet\u0027s properly raise an unauthorized in such case.\n\nChange-Id: Ibcf12de8de07b6b0fcfd1152c23d5de86ec8c1ed\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-api/commit/c42dab4fc899c6e7921d9ca93b8c91e936fe44d3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/freezer-api/commit/c42dab4fc899c6e7921d9ca93b8c91e936fe44d3"}]},"branch":"refs/heads/master"},"6d7eb90ba63a0a9dc35e338b95fbe9deda9524df":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2026-04-22 12:43:34.000000000","uploader":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"ref":"refs/changes/69/984069/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/freezer-api","ref":"refs/changes/69/984069/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/freezer-api refs/changes/69/984069/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/freezer-api refs/changes/69/984069/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/freezer-api refs/changes/69/984069/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/freezer-api refs/changes/69/984069/2"}}},"commit":{"parents":[{"commit":"67c899fd2e03070d01bc89e506af222e4424b1dc","subject":"Do not show PIDs for central clients","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/freezer-api/commit/67c899fd2e03070d01bc89e506af222e4424b1dc"}]}],"author":{"name":"Dmitriy Rabotyagov","email":"dmitriy.rabotyagov@cleura.com","date":"2026-04-10 16:43:40.000000000","tz":120},"committer":{"name":"Dmitriy Rabotyagov","email":"dmitriy.rabotyagov@cleura.com","date":"2026-04-22 12:43:35.000000000","tz":0},"subject":"Raise an error on unauthorized client delete attempt","message":"Raise an error on unauthorized client delete attempt\n\nWith central clients, users may attempt to issue delete request towards\nthem.\n\nWhile deletion will not happen, as user_id/project_id match will not\nhappen,\nAPI will reply with success code, which is confusing.\n\nLet\u0027s properly raise an unauthorized in such case.\n\nChange-Id: Ibcf12de8de07b6b0fcfd1152c23d5de86ec8c1ed\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-api/commit/6d7eb90ba63a0a9dc35e338b95fbe9deda9524df"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/freezer-api/commit/6d7eb90ba63a0a9dc35e338b95fbe9deda9524df"}]},"branch":"refs/heads/master","description":"Rebase","conflicts":{"ours":"c42dab4fc899c6e7921d9ca93b8c91e936fe44d3","theirs":"67c899fd2e03070d01bc89e506af222e4424b1dc","contains_conflicts":false}}},"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":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"}}]}],"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":{"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":"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":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
