)]}'
{"id":"openstack%2Fkeystone~909258","triplet_id":"openstack%2Fkeystone~stable%2Fzed~I8c45131b298ceae7b43b42e2c5df167607d18c48","project":"openstack/keystone","branch":"stable/zed","topic":"appcred-validation-speed2-stable/zed","attention_set":{},"removed_from_attention_set":{"21107":{"account":{"_account_id":21107,"name":"Trent Lloyd","email":"trent.lloyd@canonical.com","username":"lathiat"},"last_update":"2024-04-29 11:23:37.000000000","reason":"Change was abandoned"}},"hashtags":[],"change_id":"I8c45131b298ceae7b43b42e2c5df167607d18c48","subject":"Improve application credential validation speed","status":"ABANDONED","created":"2024-02-20 04:58:22.000000000","updated":"2024-04-29 11:23:37.000000000","total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"cherry_pick_of_change":880456,"cherry_pick_of_patch_set":4,"meta_rev_id":"b8b1ce34461dba0d162133dfc624c6760bb3a3c9","_number":909258,"virtual_id_number":909258,"owner":{"_account_id":21107,"name":"Trent Lloyd","email":"trent.lloyd@canonical.com","username":"lathiat"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":-1,"date":"2024-02-20 06:17:12.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"]}],"CC":[{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2024-02-20 05:49:26.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":"CC"},{"updated":"2024-02-20 06:17:12.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":"2024-04-29 11:23:37.000000000","updated_by":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"reviewer":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"state":"CC"}],"messages":[{"id":"ef75287c7461fb5e964e6bacbf9061f8f6b952b1","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":21107,"name":"Trent Lloyd","email":"trent.lloyd@canonical.com","username":"lathiat"},"date":"2024-02-20 04:58:22.000000000","message":"Patch Set 1: Cherry Picked from branch master.","accounts_in_message":[],"_revision_number":1},{"id":"080a089a1db20885542dd1c7a2dd9b9420c5fafe","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-02-20 05:49:26.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0c3fcd0e06074afebe25ee7826c77c69\n\n- openstack-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/4f64dcb8004641d1bd2ff833334910b2 : SUCCESS in 9m 32s (non-voting)\n- openstack-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/4f5a81a718354ee0bbf32be9b0136a07 : SUCCESS in 49m 24s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"2bc2c515f4086bd84a6500aa4fa50f41e984dd91","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-02-20 06:17:12.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\n\nhttps://zuul.opendev.org/t/openstack/buildset/66749fbf5d6744b7ab0d25c576303691\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/c3939b640cf34018b1baccc221689986 : SUCCESS in 14m 15s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4ef2424e3cff40d69163ad2ac4c40af7 : SUCCESS in 5m 06s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/ff5492ddd4ee4788a69a5992bf0deeae : SUCCESS in 12m 48s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/af1642d05eea450198f30e49306ce350 : SUCCESS in 12m 27s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/fff6265d6be241e28b9d4c81cc07f873 : SUCCESS in 13m 11s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0c068b83e9c346f89a959da00348e137 : SUCCESS in 14m 53s\n- grenade https://zuul.opendev.org/t/openstack/build/3070cf99b7f84d98afce6dbb073a3ec9 : FAILURE in 24m 20s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/9adb743100a842d39ebcd813cbe35a1a : SUCCESS in 1h 11m 49s\n- keystone-dsvm-py3-functional https://zuul.opendev.org/t/openstack/build/eb99afd509ba4110a8d658f56ee1d437 : SUCCESS in 30m 59s\n- keystone-dsvm-py3-functional-fips https://zuul.opendev.org/t/openstack/build/999cced7b00448eb976866ef7bdfa5a0 : SUCCESS in 37m 55s (non-voting)\n- keystone-dsvm-py3-functional-federation-ubuntu-focal https://zuul.opendev.org/t/openstack/build/e585706f934b4b6ba0c54b102a52ff23 : FAILURE in 28m 25s (non-voting)\n- keystone-dsvm-py3-functional-federation-ubuntu-focal-k2k https://zuul.opendev.org/t/openstack/build/6ad6407321484e688de42e740798abf3 : SUCCESS in 21m 38s\n- keystoneclient-devstack-functional https://zuul.opendev.org/t/openstack/build/877d5da243354682abeb5636ca91eb76 : SUCCESS in 19m 54s (non-voting)\n- keystone-dsvm-ldap-domain-specific-driver https://zuul.opendev.org/t/openstack/build/28af0be4099f4093867ca928a88f52eb : SUCCESS in 29m 01s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/e7ed938b41a94a93ad9689b81cb4ac7e : SUCCESS in 39m 27s\n- keystone-protection-functional https://zuul.opendev.org/t/openstack/build/4b5b4e0eac914e10b743903f66235b4f : FAILURE in 40m 22s","accounts_in_message":[],"_revision_number":1},{"id":"1ce0b5d3da8bfffb5c448e0df91fee82a9da5388","author":{"_account_id":21107,"name":"Trent Lloyd","email":"trent.lloyd@canonical.com","username":"lathiat"},"date":"2024-03-21 04:53:58.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"0174f505b8a0cfddb99c69b00e82e3f0d0d896e3","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-03-21 05:06:45.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/27ca678891f54d47807c280236530c60\n\n- openstack-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/f2cee53f66de457da2164ea1de0c803e : SUCCESS in 8m 23s (non-voting)\n- openstack-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/96cacb7317564dceb2b90c13e4a1ab32 : SUCCESS in 11m 56s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"b3c9e231cd5c011d7e0788800ea9123aa4065d39","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-03-21 06:34:48.000000000","message":"Patch Set 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\n\nhttps://zuul.opendev.org/t/openstack/buildset/19345abf09f040e9b16ec7e9fa34a98b\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/b84c3723c313479fadb86a9f6b4aecaf : SUCCESS in 13m 17s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7d74264b52f7457cb6283a513127c517 : SUCCESS in 5m 09s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/0af8d9dacc55460e8e76d8e184069f02 : SUCCESS in 12m 30s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/20af381b6751404092c71d383c032e7e : SUCCESS in 11m 04s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/53518edbfc6d45bdbc8639e4fdfee36c : SUCCESS in 12m 38s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e583c900da824d2f86cf0bca1998eb94 : SUCCESS in 10m 44s\n- grenade https://zuul.opendev.org/t/openstack/build/e0346dca9e494f7dbe1736bf4c9dd695 : SUCCESS in 1h 05m 18s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/c8e2f9f4927a404b9503599c7390545d : SUCCESS in 1h 35m 12s\n- keystone-dsvm-py3-functional https://zuul.opendev.org/t/openstack/build/c30e745e052a4c1fb3882dee965f0124 : SUCCESS in 33m 23s\n- keystone-dsvm-py3-functional-fips https://zuul.opendev.org/t/openstack/build/c947e08642f645f3a3ef7b15538d7ccd : SUCCESS in 44m 43s (non-voting)\n- keystone-dsvm-py3-functional-federation-ubuntu-focal https://zuul.opendev.org/t/openstack/build/5df8d9e63dd7407aaf5f1d1c662ca141 : FAILURE in 28m 45s (non-voting)\n- keystone-dsvm-py3-functional-federation-ubuntu-focal-k2k https://zuul.opendev.org/t/openstack/build/66004b4804fc46eeb9ab26f0a38db5c1 : SUCCESS in 35m 39s\n- keystoneclient-devstack-functional https://zuul.opendev.org/t/openstack/build/1e0b4ec7344149bea343e18d6f61b492 : SUCCESS in 19m 43s (non-voting)\n- keystone-dsvm-ldap-domain-specific-driver https://zuul.opendev.org/t/openstack/build/485f224b94524bcdace16a28a5bdbf3d : SUCCESS in 38m 02s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/e3f09c5cc95a46e7a65a78e7bc6e2d32 : SUCCESS in 40m 34s\n- keystone-protection-functional https://zuul.opendev.org/t/openstack/build/49b0a8070cbc437aadd57974d6f74e56 : FAILURE in 30m 36s","accounts_in_message":[],"_revision_number":1},{"id":"b8b1ce34461dba0d162133dfc624c6760bb3a3c9","tag":"autogenerated:gerrit:abandon","author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"date":"2024-04-29 11:23:37.000000000","message":"Abandoned\n\nstable/zed branch of openstack/keystone is about to be deleted. To be able to do that, all open patches need to be abandoned. Please cherry pick the patch to unmaintained/zed if you want to further work on this patch.","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"49ef982f813b5ea5d9ea1d22813e9840fb1b6cfa","revisions":{"49ef982f813b5ea5d9ea1d22813e9840fb1b6cfa":{"kind":"REWORK","_number":1,"created":"2024-02-20 04:58:22.000000000","uploader":{"_account_id":21107,"name":"Trent Lloyd","email":"trent.lloyd@canonical.com","username":"lathiat"},"ref":"refs/changes/58/909258/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystone","ref":"refs/changes/58/909258/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystone refs/changes/58/909258/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystone refs/changes/58/909258/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystone refs/changes/58/909258/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystone refs/changes/58/909258/1"}}},"commit":{"parents":[{"commit":"72a4fc0f3ccf7a5ca9fc40e5364e14f881ec27b2","subject":"Add an option to randomize LDAP urls list","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/72a4fc0f3ccf7a5ca9fc40e5364e14f881ec27b2"}]}],"author":{"name":"Trent Lloyd","email":"trent.lloyd@canonical.com","date":"2024-01-02 08:46:24.000000000","tz":0},"committer":{"name":"Trent Lloyd","email":"trent.lloyd@canonical.com","date":"2024-02-20 04:58:22.000000000","tz":0},"subject":"Improve application credential validation speed","message":"Improve application credential validation speed\n\nValidating an application credential token is very slow, taking at least\n400ms+ in a simple devstack environment, 5-10x longer than validating a\nuser/password project token.\n\nThe primary bottleneck during a token validation request\n(/v3/auth/tokens) is that token.roles is evaluated at least 5 times.\nvalidate_token is called twice, first during RBAC to populate the\nsubject token context and again to actually validate the token. Each\ncall to validate_token then called token.roles twice because it first\nchecks if it is None, before calling it again to use the result. Lastly\ntoken.roles is evaluated a fifth time during\nrender_token_response_from_model.\n\nEach evaluation of token.roles calls through\n_get_application_credential_roles into list_role_assignments which then\nmakes multiple round-trip SQL queries to the database.\n\nUnlike the related get_roles_for_user_and_project function, none of\nthese calls are currently cached/memoized. We memoize\nlist_role_assignments to get the same-speedup.\n\nReduce the number of token.roles calls to only 3 by storing and re-using\nthe token.roles result in validate_token, then memoize\nlist_role_assignments so the 2nd and 3rd call fetch from the cache\ninstead of repeating many SQL queries.\n\nThis provides a substantial performance improvement bringing validation\ntime in-line with user/password tokens.\n\nChange-Id: I8c45131b298ceae7b43b42e2c5df167607d18c48\n(cherry picked from commit 67b5cca032c36ef67a8aee9db6adada9b403dc5c)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/49ef982f813b5ea5d9ea1d22813e9840fb1b6cfa"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/49ef982f813b5ea5d9ea1d22813e9840fb1b6cfa"}]},"branch":"refs/heads/stable/zed"}},"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":{}}},{"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":{}}},{"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":{}}}]}
