)]}'
{"id":"openstack%2Fcodegenerator~1000983","triplet_id":"openstack%2Fcodegenerator~master~I8599cd8c907dd73cea98bde9b43dddb023e71530","project":"openstack/codegenerator","branch":"master","hashtags":[],"change_id":"I8599cd8c907dd73cea98bde9b43dddb023e71530","subject":"fix(openapi): safely handle schemas missing \u0027type\u0027 field","status":"MERGED","created":"2026-08-14 16:49:42.000000000","updated":"2026-08-14 18:07:42.000000000","submitted":"2026-08-14 18:06:45.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":"1000983","meta_rev_id":"648ea643beb36411385b6514e7f687c456be414b","_number":1000983,"virtual_id_number":1000983,"owner":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-08-14 18:06:45.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":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"all":[{"value":2,"date":"2026-08-14 17:26:10.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},{"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":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"all":[{"value":1,"date":"2026-08-14 17:26:10.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},{"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":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-08-14 17:25: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":"2e37b34ceca2dca9e4f2c7aa01debfed3c1f7fd1","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"date":"2026-08-14 16:49:42.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"54e5f45f5b2dbe0bbc940e33c78214d9baaf9de6","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-14 17:25:07.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6e79ee9efa7d474caad6cefd1d931ea3\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/084a424709a14f3c886d955a45a0fefe : SUCCESS in 3m 05s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3d3f03695216410fa6646929afb05af8 : SUCCESS in 3m 22s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/4e3fca5c7fa244ceb636b5c559f4e666 : SUCCESS in 3m 09s\n- codegenerator-openapi-baremetal-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/af9a23b7efb447f2979e44f556314d40 : SUCCESS in 5m 36s\n- codegenerator-openapi-block-storage-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/0f3aaa7373e14f3b824b27f598770e64 : SUCCESS in 6m 54s\n- codegenerator-openapi-compute-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/a7d6b57ffa97409ea43ed0298ca65b80 : SUCCESS in 4m 10s\n- codegenerator-openapi-container-infrastructure-management-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/7cadd86db149403a985f72c6a3247bfe : SUCCESS in 5m 00s\n- codegenerator-openapi-dns-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/4b5b77f005c74621af35a1321e4b9626 : SUCCESS in 5m 18s\n- codegenerator-openapi-identity-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/5ab4bca901a94f5780a9278dbf396a71 : SUCCESS in 6m 52s\n- codegenerator-openapi-identity-tips https://zuul.opendev.org/t/openstack/build/df19a8ccd7f0418fbb8b15488d6d5ce7 : SUCCESS in 2m 39s\n- codegenerator-openapi-image-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/12e0d6cef818409993a287010d7b4912 : SUCCESS in 5m 30s\n- codegenerator-openapi-key-manager-tips https://zuul.opendev.org/t/openstack/build/62643d71c9d74c8da9c07345de8e06ba : SUCCESS in 2m 38s\n- codegenerator-openapi-load-balancing-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/a9283a4902234bc4924f98bb7dfe6254 : SUCCESS in 5m 04s\n- codegenerator-openapi-network-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/1d1e7854ec6f4e188d2739295434d341 : SUCCESS in 4m 33s\n- codegenerator-openapi-object-store-static https://zuul.opendev.org/t/openstack/build/ec384a5287054e1492f08a77d20073c6 : SUCCESS in 1m 19s\n- codegenerator-openapi-placement-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/f98b485ab75c427d8314bc3e12df21c1 : SUCCESS in 2m 33s\n- codegenerator-openapi-shared-file-system-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/bb27bf0cdde644088cb142e5accb3ff3 : SUCCESS in 6m 20s\n- codegenerator-tox-publish-openapi-specs https://zuul.opendev.org/t/openstack/build/ba7c8086067840a6bed316ce04f7366b : SUCCESS in 3m 11s\n- codegenerator-rust-all https://zuul.opendev.org/t/openstack/build/9ce15a8def84482a96b90a90b0ebd1c3 : SUCCESS in 21m 37s","accounts_in_message":[],"_revision_number":1},{"id":"76130b793fcf1d78dc7bfd67e53b5c309da24034","author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"date":"2026-08-14 17:26:10.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":1},{"id":"dce39e5bdf5c72f6ab29262fb79146193e457ab9","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-14 17:26:39.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"7555ca941e43413461f0227b8b065b230f9e728e","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-14 18:06:45.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/8cfeda2a5c55430dabab5a7bdc2d258a\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/bfa79d77fe5448a79c7f8aad3cfd0120 : SUCCESS in 4m 01s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7365b61e6e604e928f2af572d4153dd8 : SUCCESS in 4m 22s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/0f4fd78cc00b413aaa270d5c932e5a9e : SUCCESS in 5m 43s\n- codegenerator-openapi-baremetal-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/780643db6dd244dbbd72ee94524b85f9 : SUCCESS in 5m 52s\n- codegenerator-openapi-block-storage-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/4fcd997612cc42008f8107675d5c8fa9 : SUCCESS in 7m 24s\n- codegenerator-openapi-compute-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/4a9dbef1408840c49e7196c3cdf7c55b : SUCCESS in 8m 19s\n- codegenerator-openapi-container-infrastructure-management-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/e9e67ed12d614bdf8d0f7cd9df75afad : SUCCESS in 2m 45s\n- codegenerator-openapi-dns-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/b62415a7cda44a55be78b2b17d640e0b : SUCCESS in 2m 49s\n- codegenerator-openapi-identity-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/2b65b3b2d632471c9f31b6cc10b48687 : SUCCESS in 7m 27s\n- codegenerator-openapi-image-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/8207fdb80f8244e0a2a17b1d92125d96 : SUCCESS in 5m 19s\n- codegenerator-openapi-key-manager-tips https://zuul.opendev.org/t/openstack/build/5ea14eeecefb49e29847caba6adcbeef : SUCCESS in 2m 25s\n- codegenerator-openapi-load-balancing-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/8500d2fa78db4de4957616bf235f89bf : SUCCESS in 5m 40s\n- codegenerator-openapi-network-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/2d4960db9b714ff7ae9cc4f2320dc6f3 : SUCCESS in 8m 19s\n- codegenerator-openapi-object-store-static https://zuul.opendev.org/t/openstack/build/1ff773c57b0c4318af0a3196305edacf : SUCCESS in 1m 27s\n- codegenerator-openapi-placement-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/782dbacf58d440d0a7df2398ed2b5a46 : SUCCESS in 2m 34s\n- codegenerator-openapi-shared-file-system-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/0293d86abf8e46d3ba2521026c0e6c7a : SUCCESS in 5m 43s\n- codegenerator-tox-publish-openapi-specs https://zuul.opendev.org/t/openstack/build/8118724743f34c1f824095a4f0de9151 : SUCCESS in 2m 17s\n- codegenerator-rust-all https://zuul.opendev.org/t/openstack/build/89085266e8e84f81b9b3616b66b4e8ed : SUCCESS in 25m 34s","accounts_in_message":[],"_revision_number":1},{"id":"491866ef15bb2aff7fcb5b319804f2ea34bfae33","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-14 18:06:45.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":1},{"id":"648ea643beb36411385b6514e7f687c456be414b","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-14 18:07:42.000000000","message":"Patch Set 1:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5ed4239323f34ec4877be3594713efd5\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/92f9ae33cf7849b4989ab5fc61d7c218 : SUCCESS in 42s\n- codegenerator-propose-rust-openstack-change https://zuul.opendev.org/t/openstack/build/9f06320f77bb464ea306da3457b9290d : SUCCESS in 45s\n\nWarning:\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job codegenerator-propose-rust-openstack-change.  Add to preserve-home-paths if safe, or otherwise remove.\n  File openstack/renovate.json5 found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job codegenerator-propose-rust-openstack-change.  Add to preserve-home-paths if safe, or otherwise remove.\n  File openstack/clippy.toml found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job codegenerator-propose-rust-openstack-change.  Add to preserve-home-paths if safe, or otherwise remove.\n  File openstack/.gitignore found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job codegenerator-propose-rust-openstack-change.  Add to preserve-home-paths if safe, or otherwise remove.\n  File openstack/.clog.toml found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job codegenerator-propose-rust-openstack-change.  Add to preserve-home-paths if safe, or otherwise remove.\n  File openstack/Dockerfile found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job codegenerator-propose-rust-openstack-change.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job codegenerator-propose-rust-openstack-change.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job codegenerator-propose-rust-openstack-change.  Add to preserve-home-paths if safe, or otherwise remove.","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"be4f0a501d79b04895b51dab2b0e6af31b9c0070","revisions":{"be4f0a501d79b04895b51dab2b0e6af31b9c0070":{"kind":"REWORK","_number":1,"created":"2026-08-14 16:49:42.000000000","uploader":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"ref":"refs/changes/83/1000983/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/codegenerator","ref":"refs/changes/83/1000983/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/codegenerator refs/changes/83/1000983/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/codegenerator refs/changes/83/1000983/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/codegenerator refs/changes/83/1000983/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/codegenerator refs/changes/83/1000983/1"}}},"commit":{"parents":[{"commit":"a9f69600392021984708bf45611fa88691a91feb","subject":"fix(rust-cli,rust-tui): dispatch response schema by resolved (not floor-only) microversion","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/codegenerator/commit/a9f69600392021984708bf45611fa88691a91feb"}]}],"author":{"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","date":"2026-08-14 16:48:48.000000000","tz":120},"committer":{"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","date":"2026-08-14 16:49:32.000000000","tz":120},"subject":"fix(openapi): safely handle schemas missing \u0027type\u0027 field","message":"fix(openapi): safely handle schemas missing \u0027type\u0027 field\n\nFixes a KeyError crash in _find_schema_property when traversing\nschemas that use \u0027oneOf\u0027 without an explicit \u0027type\u0027 (e.g. server\nlist/detail response schemas). The bare except block silently\nswallowed this crash, causing api-ref description merging to fail\nfor affected operations and producing non-deterministic YAML output\ndue to Python hash-seed dependent schema ordering.\n\nChange-Id: I8599cd8c907dd73cea98bde9b43dddb023e71530\nSigned-off-by: Artem Goncharov \u003cartem.goncharov@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/codegenerator/commit/be4f0a501d79b04895b51dab2b0e6af31b9c0070"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/codegenerator/commit/be4f0a501d79b04895b51dab2b0e6af31b9c0070"}]},"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":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"}}]}],"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":""}}}]}
