)]}'
{"id":"openstack%2Fopenstacksdk~997117","triplet_id":"openstack%2Fopenstacksdk~master~If0d4c54ada121fb034f725d6af8fda288ebd4835","project":"openstack/openstacksdk","branch":"master","topic":"lp-2160562","attention_set":{},"removed_from_attention_set":{"27900":{"account":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"last_update":"2026-08-19 11:45:48.000000000","reason":"Change was submitted"},"2271":{"account":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"last_update":"2026-08-19 11:45:48.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"If0d4c54ada121fb034f725d6af8fda288ebd4835","subject":"Defer missing-catalog errors until proxy use.","status":"MERGED","created":"2026-07-13 20:29:32.000000000","updated":"2026-08-19 11:45:48.000000000","submitted":"2026-08-19 11:45:48.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":2,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"997117-lp-2160562","meta_rev_id":"d45b8c6089ba862eaf9972e5a139e3f00be902bf","_number":997117,"virtual_id_number":997117,"owner":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"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-08-19 11:45:48.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-08-05 10:18:39.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-08-19 10:10:37.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":[{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"}],"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"]},{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-07-13 21:35:44.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":"2026-08-05 10:18:39.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-08-05 10:18:39.000000000","updated_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"reviewer":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"state":"REVIEWER"}],"messages":[{"id":"03af9871d5da24b7fd93ee6d97cdae8e1a304019","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"date":"2026-07-13 20:29:32.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"a72ae3b5fdc37c8207b3ea644dab0cd08f32d51f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-13 21:35:44.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/cd241321b6af48a694e8d2687c14e5ff\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/73bec64e811749ffb8dcad301f9a2aa8 : SUCCESS in 3m 13s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/da28ba554d9841a5a27f589624342250 : SUCCESS in 3m 21s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/cdc1ae7759d149caa25c805983824739 : SUCCESS in 3m 58s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/bebeee48dab649f0a9105ed8ffcebbe6 : SUCCESS in 3m 39s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/2915247b4fe44f308e527f3eba6d6b61 : SUCCESS in 6m 38s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/faf16cc861ca4bc5abd7a6cf1ced739b : SUCCESS in 7m 40s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/f0d0a59e40f44c13879fc1b9d2b9a468 : SUCCESS in 32m 54s\n- os-client-config-tox-py311-tips https://zuul.opendev.org/t/openstack/build/3b16b28b5b4f4e3aa9bf4e5acb2a66ff : SUCCESS in 3m 19s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/29e6c300e2de4cd8b68610d2deed0f80 : SUCCESS in 4m 10s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/667c3946c523404da9f9f9350a01fed3 : SUCCESS in 5m 16s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/59a2c5d1dcbe4943a7972601bee560de : SUCCESS in 6m 09s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/73b838109c644d2685c9e335af94417c : SUCCESS in 2m 41s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/b2d82ce598bb49b883ab52d8da56b810 : SUCCESS in 27m 44s\n- openstacksdk-functional-devstack-networking https://zuul.opendev.org/t/openstack/build/ef54d49e08d8450fbcc380755d427ab2 : SUCCESS in 1h 03m 57s\n- openstacksdk-functional-devstack-networking-ext https://zuul.opendev.org/t/openstack/build/1f48b12d1c5d4acdb149c22b3e5794bf : FAILURE in 57m 12s (non-voting)\n- openstacksdk-functional-devstack-magnum https://zuul.opendev.org/t/openstack/build/9e59850c7c3d40bc99a5f57f974a2831 : FAILURE in 54m 48s (non-voting)\n- openstacksdk-functional-devstack-manila https://zuul.opendev.org/t/openstack/build/f7ce901b8d984bd5a83fca1e1d1dfa40 : SUCCESS in 25m 37s\n- openstacksdk-functional-devstack-compute-manila https://zuul.opendev.org/t/openstack/build/59ffddbcf3c6471d889e0445f1d39ed0 : SUCCESS in 16m 34s\n- openstacksdk-functional-devstack-masakari https://zuul.opendev.org/t/openstack/build/dce4261994e245f58fb7ae9438d47643 : SUCCESS in 12m 42s\n- openstacksdk-functional-devstack-ironic https://zuul.opendev.org/t/openstack/build/8ea78b96f72a44c7aa97a527ef797541 : SUCCESS in 25m 57s\n- osc-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/98989f2a7ed8484f84c61166938d8e03 : SUCCESS in 39m 11s (non-voting)\n- ansible-collections-openstack-functional-devstack https://zuul.opendev.org/t/openstack/build/9152da6d524e4896b21e18f4f5549f87 : SUCCESS in 33m 38s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"01859a24c1760cef6356fa19c50c28d6b54fb056","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-08-05 10:18:39.000000000","message":"Patch Set 1: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"3018ce86eb366d9e01535462a5d32899ebb5c6b4","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-08-05 10:19:16.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"7ba96a0b1d2057b14b9f4f397ea094d1eb6d4882","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-08-19 10:10:37.000000000","message":"Patch Set 1: Workflow+1","accounts_in_message":[],"_revision_number":1},{"id":"5fc4f275a313823edfd365f4b46c94ce498fec7e","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-19 10:12:18.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"ad0f2b44183dcdc3a4b399d93bfadcf8481579c4","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-19 11:45:48.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b532d4e5b4e84bf6b01ef061effff060\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/72f3722c81ee401cb863dc72483bfff5 : SUCCESS in 4m 53s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/bbff8dc41579454fb5b4fa24b6e75aa2 : SUCCESS in 4m 16s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/e89ee7bb15164491bcd42dc4b927f8c2 : SUCCESS in 4m 28s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/af3377ff4b734379a5735a3fe3ac0ba7 : SUCCESS in 6m 56s\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/03b6127b460449b78e84713285906823 : SUCCESS in 1h 01m 43s\n- os-client-config-tox-py311-tips https://zuul.opendev.org/t/openstack/build/c4753b69911b45ad906fe1f5ee16f737 : SUCCESS in 3m 46s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/4ace5c0ec5eb4fc78180a516e5186366 : SUCCESS in 3m 31s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/028e564874d54caaa3d609a67d9167c3 : SUCCESS in 7m 25s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/34cc90a75b02497f9b8196b6c0c9ad09 : SUCCESS in 11m 00s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/ef8f399be1ab4d308d64eecd428568bc : SUCCESS in 3m 14s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/a7fd54664a2546699089e9032a902d3e : SUCCESS in 1h 02m 05s\n- openstacksdk-functional-devstack-networking https://zuul.opendev.org/t/openstack/build/31c178aeb4154042af184ecc143c804e : SUCCESS in 51m 26s\n- openstacksdk-functional-devstack-ironic https://zuul.opendev.org/t/openstack/build/395afe9cb1e04e6d93a555d723a3501d : SUCCESS in 38m 59s","accounts_in_message":[],"_revision_number":1},{"id":"d45b8c6089ba862eaf9972e5a139e3f00be902bf","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-19 11:45:48.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"27fc1d824f7a66594f7827ff2b139bc87e78e4ec","revisions":{"27fc1d824f7a66594f7827ff2b139bc87e78e4ec":{"kind":"REWORK","_number":1,"created":"2026-07-13 20:29:32.000000000","uploader":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"ref":"refs/changes/17/997117/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstacksdk","ref":"refs/changes/17/997117/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/17/997117/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/17/997117/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/17/997117/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstacksdk refs/changes/17/997117/1"}}},"commit":{"parents":[{"commit":"8d9426395c172b35ef4ed1a8cbaa525c17944c6b","subject":"Merge \"share: Add missing query-string parameters\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/8d9426395c172b35ef4ed1a8cbaa525c17944c6b"}]}],"author":{"name":"Michael Still","email":"mikal@stillhq.com","date":"2026-07-13 20:16:43.000000000","tz":600},"committer":{"name":"Michael Still","email":"mikal@stillhq.com","date":"2026-07-13 20:29:29.000000000","tz":600},"subject":"Defer missing-catalog errors until proxy use.","message":"Defer missing-catalog errors until proxy use.\n\nAccessing a service proxy attribute on a Connection (for example\nconn.block_storage) performed endpoint discovery eagerly and raised\nkeystoneauth1\u0027s EndpointNotFound at attribute-access time when the\nservice is enabled in configuration but not present in the cloud\u0027s\nservice catalog. That punishes callers that fetch proxies for\nservices they never end up using: python-openstackclient 10.2.0\nreturns conn.block_storage from its volume client plugin and\n\"openstack server create\" touches that client unconditionally, so\nevery server create on a cloud without cinder now fails despite\nnever needing the volume API.\n\nCatch EndpointNotFound during proxy construction in\nServiceDescription.__get__ and hand back the existing\n_ServiceDisabledProxyShim instead, so the error surfaces as a clear\nServiceDisabledException if and when the proxy is actually used.\nThis mirrors how services disabled in configuration already degrade,\nand the cleanup path in openstackcloud.py already tolerates exactly\nthis shim (\"Cloud may include endpoint in catalog but not implement\nthe service\").\n\nConnections created with strict_proxies\u003dTrue retain the previous\nfail-fast behaviour; the existing test asserting the raise\n(TestFromConf.test_no_endpoint) runs under strict_proxies and is\nunchanged. New tests cover both construction paths: versioned SDK\nproxies, which fail version discovery inside _make_proxy(), and\npassthrough services without proxy classes, which fail in\nProxy.get_endpoint() immediately afterwards.\n\nCloses-Bug: #2160562\nChange-Id: If0d4c54ada121fb034f725d6af8fda288ebd4835\nSigned-off-by: Michael Still \u003cmikal@stillhq.com\u003e\nAssisted-By: Claude Fable 5 (200K context, high effort) \u003cnoreply@anthropic.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/27fc1d824f7a66594f7827ff2b139bc87e78e4ec"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/27fc1d824f7a66594f7827ff2b139bc87e78e4ec"}]},"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":""}}}]}
