)]}'
{"id":"openstack%2Fkeystone~980628","triplet_id":"openstack%2Fkeystone~master~Ifb1ba670ac7c2b0305cf835e49c7eb4e3a2e575a","project":"openstack/keystone","branch":"master","hashtags":[],"change_id":"Ifb1ba670ac7c2b0305cf835e49c7eb4e3a2e575a","subject":"Remove dead hash_user_password function","status":"NEW","created":"2026-03-15 18:21:13.000000000","updated":"2026-03-15 20:26:20.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"91e00e302688dbf64eb9ed09b9cf6e9d7b78e904","_number":980628,"virtual_id_number":980628,"owner":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-03-15 20:26:20.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-03-15 19:04:37.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":"2026-03-15 20:26:20.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":"e230da021f89cdc82831be496bc48eb07984c675","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"date":"2026-03-15 18:21:13.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"20ddca58e52dcfb24479cfdf2338ffaf9bf41ce6","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-15 19:04:37.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/33dbb137276b4ff3b87fd86ddd943623\n\n- openstack-tox-py310-arm64 https://zuul.opendev.org/t/openstack/build/44d054611f0a48a09944f625bc884543 : SUCCESS in 20m 31s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/92065b17fa484f3b9cdbe3e7422f1a09 : SUCCESS in 18m 32s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/4811a0721e404152b677fbc26bcfc5f7 : SUCCESS in 17m 41s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"91e00e302688dbf64eb9ed09b9cf6e9d7b78e904","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-15 20:26:20.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0179f021351540c89344a363264dba94\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/cd055d0322db481c81c55b6a51c6128d : SUCCESS in 17m 17s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f2e7c56037c64687ba751145eee4f039 : SUCCESS in 5m 20s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/976ba5e5feb74301a18542a503271fe9 : SUCCESS in 12m 28s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/f016c7e7dc844dda845d42a74f9327c7 : SUCCESS in 11m 08s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/8adbab801a7c46f0ae65d01d12633c84 : SUCCESS in 12m 17s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ccc46ec644f34b8883c510bbd8bb3b67 : SUCCESS in 12m 50s\n- grenade https://zuul.opendev.org/t/openstack/build/065d2841ad1a455ba145360be2c3c3e8 : SUCCESS in 58m 00s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/664e754248ec46fc910764f5de9bea78 : SUCCESS in 1h 59m 10s\n- keystoneclient-devstack-functional https://zuul.opendev.org/t/openstack/build/07cab40a046c4759be77b520b6d8f0f5 : SUCCESS in 23m 23s (non-voting)\n- keystone-tempest https://zuul.opendev.org/t/openstack/build/62266c2e7d6b4d3a9774cb05c521a5af : SUCCESS in 33m 09s\n- keystone-tempest-fips https://zuul.opendev.org/t/openstack/build/bf581e3c47104f97894b606a48454c06 : FAILURE in 11m 03s (non-voting)\n- keystone-tempest-federation https://zuul.opendev.org/t/openstack/build/a04f39b544524ac7b99de8377680853d : FAILURE in 29m 39s (non-voting)\n- keystone-tempest-federation-k2k https://zuul.opendev.org/t/openstack/build/6619d6b36e4048baadd00de7d6ff65e7 : SUCCESS in 28m 57s\n- keystone-tempest-oidc-federation https://zuul.opendev.org/t/openstack/build/d4d74d5849c847108982b056dc5af91f : SUCCESS in 14m 26s\n- keystone-tempest-ldap-domain-specific-driver https://zuul.opendev.org/t/openstack/build/cb8ae5ff165e4b8ea91cff0581e50155 : SUCCESS in 37m 42s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/1e012d0975fe4fc2a7ee0c242ceadd65 : SUCCESS in 1h 00m 25s\n- keystone-protection-functional https://zuul.opendev.org/t/openstack/build/2a2ff3c7168242c9a42e36bbd48a5c9d : FAILURE in 43m 24s (non-voting)\n- codegenerator-openapi-identity-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/6cac5814c72643fcb1bd79e978cf450e : RETRY_LIMIT in 5m 43s (non-voting)","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"3208efb60cd889a46c65370652b53301118b0b2d","revisions":{"3208efb60cd889a46c65370652b53301118b0b2d":{"kind":"REWORK","_number":1,"created":"2026-03-15 18:21:13.000000000","uploader":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"ref":"refs/changes/28/980628/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystone","ref":"refs/changes/28/980628/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystone refs/changes/28/980628/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystone refs/changes/28/980628/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystone refs/changes/28/980628/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystone refs/changes/28/980628/1"}}},"commit":{"parents":[{"commit":"ba0cfdc55cca3486b3a5745ff528b7e2863a696a","subject":"Remove dead list_project_ids_from_domain_ids","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/ba0cfdc55cca3486b3a5745ff528b7e2863a696a"}]}],"author":{"name":"Boris Bobrov","email":"b.bobrov@sap.com","date":"2026-03-15 18:01:04.000000000","tz":60},"committer":{"name":"Boris Bobrov","email":"b.bobrov@sap.com","date":"2026-03-15 18:01:04.000000000","tz":60},"subject":"Remove dead hash_user_password function","message":"Remove dead hash_user_password function\n\nThis function has zero production callers. It was only called\nfrom test_utils.py. Production code hashes passwords through\nthe identity backend which calls hash_password directly.\n\nRemove the function from password_hashing.py, the re-export\nalias from utils.py, and the three tests that exercised it.\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nSigned-off-by: Boris Bobrov \u003cb.bobrov@sap.com\u003e\nChange-Id: Ifb1ba670ac7c2b0305cf835e49c7eb4e3a2e575a\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/3208efb60cd889a46c65370652b53301118b0b2d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/3208efb60cd889a46c65370652b53301118b0b2d"}]},"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"},{"label":"Workflow","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":"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":""}}}]}
