)]}'
{"id":"openstack%2Fopenstacksdk~984816","triplet_id":"openstack%2Fopenstacksdk~master~If7d64340224c3510d5d7eb831af29409213a304a","project":"openstack/openstacksdk","branch":"master","topic":"type_hints_for_find_resources","attention_set":{},"removed_from_attention_set":{"15334":{"account":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"last_update":"2026-04-15 20:17:55.000000000","reason":"\u003cGERRIT_ACCOUNT_15334\u003e replied on the change","reason_account":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}},"9545":{"account":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"last_update":"2026-04-15 21:58:49.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"If7d64340224c3510d5d7eb831af29409213a304a","subject":"Add type hints for all find_* methods","status":"MERGED","created":"2026-04-15 16:03:38.000000000","updated":"2026-04-15 22:00:00.000000000","submitted":"2026-04-15 21:58:49.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":90,"unresolved_comment_count":1,"has_review_started":true,"submission_id":"984816-type_hints_for_find_resources","meta_rev_id":"b9ea3c98250487a5d8a3364f8fac96e4bf8e81a9","_number":984816,"virtual_id_number":984816,"owner":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-04-15 21:58: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":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"all":[{"value":2,"date":"2026-04-15 20:17:55.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"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":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"all":[{"value":1,"date":"2026-04-15 20:17:55.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"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},"Allow-Post-Review":{"all":[{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{" 0":"Abstain","+1":"Approved for Zuul Post Review Pipeline"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-04-15 16:26:42.000000000","updated_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"reviewer":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"state":"CC"},{"updated":"2026-04-15 17:01:51.000000000","updated_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"reviewer":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"state":"REVIEWER"},{"updated":"2026-04-15 19:46:51.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":"d1b54bb7756f9e377a2f72ed7fa235ee9f00b54e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"date":"2026-04-15 16:03:38.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"d8d515067feb2d0e39e06b62490a685f6bb08875","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-04-15 16:26:42.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"8eefcd92a94568de6908995582fdf762243ba9f2","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-04-15 16:26:44.000000000","message":"Topic type_hints_for_find_resources removed","accounts_in_message":[],"_revision_number":1},{"id":"dd200d3aada001e92eedd388b423ce689569a00b","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-04-15 16:26:49.000000000","message":"Topic set to typing","accounts_in_message":[],"_revision_number":1},{"id":"08fd5ca7673614bd9ebe126c4b97a4d3c911156b","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-04-15 16:37:18.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"d3ea8ce8233cffb9dd6c81976d91e25e6dce1558","author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"date":"2026-04-15 16:58:18.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"d41d4c525af17d983905f6e843fd6543e55379cd","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-04-15 17:01:51.000000000","message":"Patch Set 1: Code-Review-1\n\n(28 comments)","accounts_in_message":[],"_revision_number":1},{"id":"57b36c68c3e742dbddb48c4e7e40f421a616a8c5","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"date":"2026-04-15 17:44:22.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":2},{"id":"c1b8b033bca1fc93b848e646f031f4f578e8c2a8","author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"date":"2026-04-15 17:48:05.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"275c848b8fd90e433f73a959d71d18662c957a96","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-04-15 18:00:07.000000000","message":"Patch Set 2: Code-Review-1\n\n(29 comments)","accounts_in_message":[],"_revision_number":2},{"id":"42efa92c719a218b544a2c8904f9d2e8941d922d","author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"date":"2026-04-15 18:03:36.000000000","message":"Patch Set 2:\n\n(25 comments)","accounts_in_message":[],"_revision_number":2},{"id":"9cbe1c0e6c8626bf38c3f0c96a56047994c4d632","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"date":"2026-04-15 18:08:31.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":3},{"id":"09012be5253d354ceb19ae297603b33ee53f7222","author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"date":"2026-04-15 18:09:06.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"eae2a5eb0fd876c387cc14d93d9a0a0a25a13eb4","author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"date":"2026-04-15 18:09:30.000000000","message":"Patch Set 3:\n\n(2 comments)","accounts_in_message":[],"_revision_number":3},{"id":"6362d6446f6818dc7106bbf1bb4a3043b61329e1","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-15 19:46:51.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/37edc9148a0745a9b3dae325b7a6813e\n\n- bifrost-integration-openstacksdk-src https://zuul.opendev.org/t/openstack/build/891c2d27ced14f99a2debe1975a8b42b : SUCCESS in 54m 28s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0d3787c973fd4938a54dfbd6dc30315a : SUCCESS in 6m 34s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/4c99e3b63c3a4b85afa0c279d557cf1f : SUCCESS in 5m 27s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/e6b6717d3e904832b0697bad2e152962 : SUCCESS in 4m 06s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/59274f54d7f540b9a9b8418495cdbe70 : SUCCESS in 2m 32s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/3f33baeb135d4c06b95943ae4ae5df7b : SUCCESS in 6m 42s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/f222589d87b3400a939c40123d7385d5 : SUCCESS in 1h 09m 34s\n- os-client-config-tox-py311-tips https://zuul.opendev.org/t/openstack/build/11b9b2756a7e4caf8fd1a91f3261afdd : SUCCESS in 3m 22s\n- osc-tox-py310-tips https://zuul.opendev.org/t/openstack/build/8784e365757d4eebbe5827ef6e045e76 : SUCCESS in 2m 50s\n- osc-tox-py313-tips https://zuul.opendev.org/t/openstack/build/d8553831d03948439c6581977df4d240 : SUCCESS in 2m 30s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/bf34bd63c8cd43b98892eda2e68c6641 : SUCCESS in 11m 32s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/45f1679df1674c78a51b62d480e930a2 : SUCCESS in 57m 18s\n- openstacksdk-functional-devstack-networking https://zuul.opendev.org/t/openstack/build/db0c0e1d7ff440728eeedaf1d45c6900 : SUCCESS in 1h 31m 55s\n- openstacksdk-functional-devstack-networking-ext https://zuul.opendev.org/t/openstack/build/0bb07b8c92724dfda9c44d2aea85331e : SUCCESS in 1h 00m 05s\n- openstacksdk-functional-devstack-magnum https://zuul.opendev.org/t/openstack/build/0229ac6e7c8d4bb8848b0276e2dc991b : FAILURE in 58m 10s (non-voting)\n- openstacksdk-functional-devstack-manila https://zuul.opendev.org/t/openstack/build/6ed95e191e094fcfb8ea8864178e4718 : SUCCESS in 34m 46s\n- openstacksdk-functional-devstack-compute-manila https://zuul.opendev.org/t/openstack/build/8f97e976733d4d52809b549eb21d97b9 : SUCCESS in 32m 20s\n- openstacksdk-functional-devstack-masakari https://zuul.opendev.org/t/openstack/build/7b9d0f9174bd4417a13ff4166adde2fa : SUCCESS in 20m 08s\n- openstacksdk-functional-devstack-ironic https://zuul.opendev.org/t/openstack/build/ce4213501ea040cfadf27fa7c6bccd26 : SUCCESS in 39m 00s\n- osc-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/918ab8221b634891bc567e8e4629f820 : SUCCESS in 1h 21m 05s (non-voting)\n- ansible-collections-openstack-functional-devstack https://zuul.opendev.org/t/openstack/build/cd697d236c4248d096f1061bbf4a564c : SUCCESS in 38m 31s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"a5dbe8b592378ca617717dade5ef4ab55be6b479","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-04-15 20:17:55.000000000","message":"Patch Set 3: Code-Review+2 Workflow+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"efbfadef595bc57b2c7517a6e6f065cb4a60c18e","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-15 20:19:49.000000000","message":"Patch Set 3: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":3},{"id":"921b05319c3ef2edcb39aa962e49fbc983bec5c9","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-15 21:58:49.000000000","message":"Patch Set 3: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f12ef6ec5d39412a8ad9ded8360b5f4f\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b2a8fa357246497489a46da48cf14cdf : SUCCESS in 2m 52s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/80d3e1e63f71403793ac3ffc538ca7c3 : SUCCESS in 3m 37s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/484021e1bd91404ea8d1cd404cffa7b8 : SUCCESS in 3m 46s\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/7e59563434df44948c2ac2ec9e3fd892 : SUCCESS in 50m 42s\n- os-client-config-tox-py311-tips https://zuul.opendev.org/t/openstack/build/b4d8a7f91c3d48a3ac76676ed03c57f5 : SUCCESS in 2m 17s\n- osc-tox-py310-tips https://zuul.opendev.org/t/openstack/build/5cd67db93a0747f18c18ff8df86835bb : SUCCESS in 4m 24s\n- osc-tox-py313-tips https://zuul.opendev.org/t/openstack/build/7322ffe9f51e4e55a4962dfce29f9535 : SUCCESS in 4m 19s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/010e82dc20684633acdcbdac8799acbc : SUCCESS in 10m 53s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/adce60027f0b418aabd93751ff13be33 : SUCCESS in 1h 09m 47s\n- openstacksdk-functional-devstack-networking https://zuul.opendev.org/t/openstack/build/a0664d1fcda841ac902bc87f31a722ea : SUCCESS in 1h 28m 56s\n- openstacksdk-functional-devstack-networking-ext https://zuul.opendev.org/t/openstack/build/b7ae869fb06a4fba9864261be3c9584b : SUCCESS in 1h 34m 33s\n- openstacksdk-functional-devstack-ironic https://zuul.opendev.org/t/openstack/build/43042175be274ab397896a01e239a347 : SUCCESS in 44m 30s","accounts_in_message":[],"_revision_number":3},{"id":"f9d748dae4afc9aa425aa27a9ef9942ced02d3d8","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-15 21:58:49.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":3},{"id":"b9ea3c98250487a5d8a3364f8fac96e4bf8e81a9","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-15 22:00:00.000000000","message":"Patch Set 3:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ac93dc0f65314808824d48880d8dab27\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/93406a3d7dca4bf9989fe6649f52df74 : SUCCESS in 51s","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"d2101d27494ef5df125abe18fea3620b40a1d2e9","revisions":{"7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990":{"kind":"REWORK","_number":1,"created":"2026-04-15 16:03:38.000000000","uploader":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"ref":"refs/changes/16/984816/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstacksdk","ref":"refs/changes/16/984816/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/16/984816/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/16/984816/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/16/984816/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstacksdk refs/changes/16/984816/1"}}},"commit":{"parents":[{"commit":"c4526d3f2f40d1ec510c43300ea4db0bc164f9f1","subject":"cloud: Fix has_service for keystone","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/c4526d3f2f40d1ec510c43300ea4db0bc164f9f1"}]}],"author":{"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","date":"2026-04-15 16:00:56.000000000","tz":120},"committer":{"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","date":"2026-04-15 16:03:00.000000000","tz":120},"subject":"Add type hints for all find_* methods","message":"Add type hints for all find_* methods\n\nTools like `pybaseright` can dig into openstack code and figure out\nsemi-accurate return value even without typoe annotation.\nThe problem with such behaviour - it does not cover the logic difference\nbased on \"ignore_missing\" parameter.\n\nThis change covers all find_* methods with type hints including overloading\nfor the scenario when `ignore_missing` is boolean False\n\nChange-Id: If7d64340224c3510d5d7eb831af29409213a304a\nSigned-off-by: Andriy Kurilin \u003candr.kurilin@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/7e3b40e7f5c50a9c60ac78c1965c1ba28a13c990"}]},"branch":"refs/heads/master"},"360a06672f1b09f386c2f26251905d8cc7ae3501":{"kind":"REWORK","_number":2,"created":"2026-04-15 17:44:22.000000000","uploader":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"ref":"refs/changes/16/984816/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstacksdk","ref":"refs/changes/16/984816/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/16/984816/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/16/984816/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/16/984816/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstacksdk refs/changes/16/984816/2"}}},"commit":{"parents":[{"commit":"c4526d3f2f40d1ec510c43300ea4db0bc164f9f1","subject":"cloud: Fix has_service for keystone","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/c4526d3f2f40d1ec510c43300ea4db0bc164f9f1"}]}],"author":{"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","date":"2026-04-15 16:00:56.000000000","tz":120},"committer":{"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","date":"2026-04-15 17:44:15.000000000","tz":120},"subject":"Add type hints for all find_* methods","message":"Add type hints for all find_* methods\n\nTools like `pybaseright` can dig into openstack code and figure out\nsemi-accurate return value even without typoe annotation.\nThe problem with such behaviour - it does not cover the logic difference\nbased on \"ignore_missing\" parameter.\n\nThis change covers all find_* methods with type hints including overloading\nfor the scenario when `ignore_missing` is boolean False\n\nChange-Id: If7d64340224c3510d5d7eb831af29409213a304a\nSigned-off-by: Andriy Kurilin \u003candr.kurilin@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/360a06672f1b09f386c2f26251905d8cc7ae3501"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/360a06672f1b09f386c2f26251905d8cc7ae3501"}]},"branch":"refs/heads/master"},"d2101d27494ef5df125abe18fea3620b40a1d2e9":{"kind":"REWORK","_number":3,"created":"2026-04-15 18:08:31.000000000","uploader":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"ref":"refs/changes/16/984816/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstacksdk","ref":"refs/changes/16/984816/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/16/984816/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/16/984816/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/16/984816/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstacksdk refs/changes/16/984816/3"}}},"commit":{"parents":[{"commit":"c4526d3f2f40d1ec510c43300ea4db0bc164f9f1","subject":"cloud: Fix has_service for keystone","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/c4526d3f2f40d1ec510c43300ea4db0bc164f9f1"}]}],"author":{"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","date":"2026-04-15 16:00:56.000000000","tz":120},"committer":{"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","date":"2026-04-15 18:08:14.000000000","tz":120},"subject":"Add type hints for all find_* methods","message":"Add type hints for all find_* methods\n\nTools like `pybaseright` can dig into openstack code and figure out\nsemi-accurate return value even without typoe annotation.\nThe problem with such behaviour - it does not cover the logic difference\nbased on \"ignore_missing\" parameter.\n\nThis change covers all find_* methods with type hints including overloading\nfor the scenario when `ignore_missing` is boolean False\n\nChange-Id: If7d64340224c3510d5d7eb831af29409213a304a\nSigned-off-by: Andriy Kurilin \u003candr.kurilin@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/d2101d27494ef5df125abe18fea3620b40a1d2e9"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/d2101d27494ef5df125abe18fea3620b40a1d2e9"}]},"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":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}},{"label":"Allow-Post-Review","status":"MAY"}]}],"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":"Allow-Post-Review","description":"Allow Post Review","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}},{"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":""}}}]}
