)]}'
{"id":"openstack%2Fkeystoneauth~1003922","triplet_id":"openstack%2Fkeystoneauth~master~Ie2c5fb20d830a916f588bba65137dc327c736f07","project":"openstack/keystoneauth","branch":"master","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-09-04 12:50:17.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"}},"27900":{"account":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"last_update":"2026-09-04 14:25:13.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"Ie2c5fb20d830a916f588bba65137dc327c736f07","subject":"feat: add Session.close() for deterministic resource release","status":"MERGED","created":"2026-09-04 07:59:27.000000000","updated":"2026-09-04 14:26:40.000000000","submitted":"2026-09-04 14:25:13.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":9,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"1003922","meta_rev_id":"590c372cb2023927eaf253a9b58ec1462160eb5a","_number":1003922,"virtual_id_number":1003922,"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":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-09-04 14:25: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":"","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-09-04 12:50:17.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-09-04 12:50:17.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}},"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-09-04 09:43:03.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-09-04 11:07:19.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"}],"messages":[{"id":"2f5623921dc3ef542a37d8eb4a4e58b4951f5bac","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"date":"2026-09-04 07:59:27.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"f1e856f9a8f5ae37a4b02e420da5dc52e59b1024","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-04 09:43:03.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d246b77798bd44e3a4050f8a4c75ae93\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/2c8e412127f5417f9168c75ab206a988 : SUCCESS in 1h 36m 57s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/9b891e001c1f4dba81b07400a73dc324 : SUCCESS in 6m 39s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/f2439b886588418ba619fd4a33d83f40 : SUCCESS in 7m 32s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/e69951b2248f4a6e94a73d74a3b68f06 : SUCCESS in 7m 53s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/9598a7d0ec9348a0a68fc8b23fe76f20 : SUCCESS in 5m 18s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/21b9fd164b33490a9b899de46497e05e : SUCCESS in 15m 25s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/39cd30030da44b63935eb605c60e916d : SUCCESS in 58m 02s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/7f4d2edc84a14428a0021c29a60ea482 : SUCCESS in 4m 52s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/8c4c0b1e53e4409d89c65bc84d52d9e7 : SUCCESS in 8m 07s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d8b0df119b374135a7a08c94ed8a92e4 : SUCCESS in 8m 12s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/466ed1d264d94659ae2c9d1b40d77053 : SUCCESS in 5m 15s","accounts_in_message":[],"_revision_number":1},{"id":"36bf8b2c308cf2123ab536a152655ca3a74369b0","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-09-04 11:07:19.000000000","message":"Patch Set 1: Code-Review-1\n\n(4 comments)","accounts_in_message":[],"_revision_number":1},{"id":"9ca18c2db18e33aab140e3e787ac493e481572bc","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"date":"2026-09-04 12:07:55.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"3d9f08face1be958e38ce7ab7d9db6050dc63d08","author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"date":"2026-09-04 12:08:54.000000000","message":"Patch Set 2:\n\n(3 comments)","accounts_in_message":[],"_revision_number":2},{"id":"87b36137dce023130a070bea122538d4708d938c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"date":"2026-09-04 12:28:10.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"b0f40e9fce0c4c9d5c0d080c0c9b794eb81e3d74","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-09-04 12:50:17.000000000","message":"Patch Set 3: Code-Review+2 Workflow+1\n\n(2 comments)","accounts_in_message":[],"_revision_number":3},{"id":"58711b066be4c08773416de89932bc41cfdd6000","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-04 13:34:35.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ab895c3951f149f2b053768be20ef681\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/517f78468b6d42339aca11d5f0cb2454 : SUCCESS in 55m 55s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/fdbdb426658e45b8b53552308c3423b2 : SUCCESS in 8m 21s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/164d568aefc0429e8f076f649cac0692 : SUCCESS in 5m 00s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/6a2df234652a464490b8c737dac91b67 : SUCCESS in 8m 07s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/0acafd661fe14071a680299720fd522e : SUCCESS in 11m 57s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/9d34e5f052d04cf48deb28fec7459352 : SUCCESS in 15m 30s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/779369db1e914cfeaf87c6d2fdcb73db : SUCCESS in 59m 24s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/ffb9b5d129ed4bfb88eec4b2296491ec : SUCCESS in 3m 10s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/55f1fbc814c0407aa66fa11217d9d223 : SUCCESS in 8m 21s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/908d4e8b6df8456ba9f10e9fc6accd8f : SUCCESS in 10m 06s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/d21d97ca7c9443dc90ed3b0b4f8b7f6b : SUCCESS in 4m 28s","accounts_in_message":[],"_revision_number":3},{"id":"670b08af0e3737ac9a15ce48928865f74c6e8a6f","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-04 13:35:01.000000000","message":"Patch Set 3: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":3},{"id":"87fa26d48dc620b04d6f61ca565effc3268ea63b","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-04 14:25:12.000000000","message":"Patch Set 3: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/cc5cfea8e88c42f29181b7e9adb116bd\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/d33b889e575e4533bb93aca8def71558 : SUCCESS in 43m 56s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/9851ab0e6925445badfb6434e7e5e65a : SUCCESS in 9m 03s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/f07a88d582bd47bcb4b8a32991c0bcdb : SUCCESS in 4m 32s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/0b3a007978394a5c8963998c2df056f6 : SUCCESS in 8m 27s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/74db3e94030445b1ae2b0f7b0d9a97aa : SUCCESS in 10m 17s\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/245e24ba526a464f8e5613f6da318720 : SUCCESS in 29m 41s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/0690b7d71059489c81f5999d3855a06d : SUCCESS in 6m 46s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/c705e7c2b4a04c399ab00a3d9f0956fd : SUCCESS in 7m 44s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/34c5df3aa1ae43a18fb4f375b7c4e9de : SUCCESS in 8m 24s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/6c5deb6f41d7487c802c9fb71e080c90 : SUCCESS in 4m 24s","accounts_in_message":[],"_revision_number":3},{"id":"a4cff3678613a1d61d0f9b103a4e6161ed3727f9","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-04 14:25:13.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":3},{"id":"590c372cb2023927eaf253a9b58ec1462160eb5a","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-04 14:26:40.000000000","message":"Patch Set 3:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/615a148e4a2c45e0801806476066e7ed\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5c7822c17b074dfea57af16540832a46 : SUCCESS in 1m 10s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/867dfd6c6db44f65911a4048b09bcfde : SUCCESS in 46s","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"4741636c9075a7eefe5f13c2fa0796b5fd8508a5","revisions":{"a9a452afb04396da7c3720317932e0c24a67f31d":{"kind":"REWORK","_number":1,"created":"2026-09-04 07:59:27.000000000","uploader":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"ref":"refs/changes/22/1003922/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/22/1003922/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/22/1003922/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/22/1003922/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/22/1003922/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/22/1003922/1"}}},"commit":{"parents":[{"commit":"e91b3e3d5548e4193e86f9500eecb592b28c5831","subject":"typing: Allow None passed to set_auth_state","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/e91b3e3d5548e4193e86f9500eecb592b28c5831"}]}],"author":{"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","date":"2026-09-04 07:58:35.000000000","tz":120},"committer":{"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","date":"2026-09-04 07:59:24.000000000","tz":120},"subject":"feat: add Session.close() for deterministic resource release","message":"feat: add Session.close() for deterministic resource release\n\nAdd an explicit close() method to keystoneauth1.session.Session that\nreleases the underlying requests.Session (and with it the urllib3\nconnection pool holding keep-alive sockets) without waiting for the\nSession object to be garbage-collected via __del__. Consumers holding\na Session beyond a logical unit of work - long-running daemons,\nper-request connections, pre-fork cleanup - can now release pooled\nsockets deterministically.\n\nclose() only closes the requests session when keystoneauth1 created it\nitself; a requests.Session supplied via the session constructor\nargument is left untouched, as its ownership belongs to the caller.\nThe method is idempotent and non-fatal: the session remains usable\nafter being closed, establishing new connections as needed, and no\nre-authentication is required since token state lives in the auth\nplugin. __del__ now delegates to close() and keeps swallowing\nexceptions, as before.\n\nPartial-bug: https://bugs.launchpad.net/openstacksdk/+bug/2166351\nAssisted-By: opencode (Qwen3.8-27B)\nChange-Id: Ie2c5fb20d830a916f588bba65137dc327c736f07\nSigned-off-by: Artem Goncharov \u003cartem.goncharov@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/a9a452afb04396da7c3720317932e0c24a67f31d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/a9a452afb04396da7c3720317932e0c24a67f31d"}]},"branch":"refs/heads/master"},"5c48223dbae17ddcff656d54331c4c3eaa4bccb0":{"kind":"REWORK","_number":2,"created":"2026-09-04 12:07:55.000000000","uploader":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"ref":"refs/changes/22/1003922/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/22/1003922/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/22/1003922/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/22/1003922/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/22/1003922/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/22/1003922/2"}}},"commit":{"parents":[{"commit":"e91b3e3d5548e4193e86f9500eecb592b28c5831","subject":"typing: Allow None passed to set_auth_state","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/e91b3e3d5548e4193e86f9500eecb592b28c5831"}]}],"author":{"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","date":"2026-09-04 07:58:35.000000000","tz":120},"committer":{"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","date":"2026-09-04 12:07:37.000000000","tz":120},"subject":"feat: add Session.close() for deterministic resource release","message":"feat: add Session.close() for deterministic resource release\n\nAdd an explicit close() method to keystoneauth1.session.Session that\nreleases the underlying requests.Session (and with it the urllib3\nconnection pool holding keep-alive sockets) without waiting for the\nSession object to be garbage-collected via __del__. Consumers holding\na Session beyond a logical unit of work - long-running daemons,\nper-request connections, pre-fork cleanup - can now release pooled\nsockets deterministically.\n\nclose() only closes the requests session when keystoneauth1 created it\nitself; a requests.Session supplied via the session constructor\nargument is left untouched, as its ownership belongs to the caller.\nThe method is idempotent and non-fatal: the session remains usable\nafter being closed, establishing new connections as needed, and no\nre-authentication is required since token state lives in the auth\nplugin. __del__ now delegates to close() and keeps swallowing\nexceptions, as before.\n\nPartial-bug: https://bugs.launchpad.net/openstacksdk/+bug/2166351\nAssisted-By: opencode (Qwen3.8-27B)\nChange-Id: Ie2c5fb20d830a916f588bba65137dc327c736f07\nSigned-off-by: Artem Goncharov \u003cartem.goncharov@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/5c48223dbae17ddcff656d54331c4c3eaa4bccb0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/5c48223dbae17ddcff656d54331c4c3eaa4bccb0"}]},"branch":"refs/heads/master"},"4741636c9075a7eefe5f13c2fa0796b5fd8508a5":{"kind":"REWORK","_number":3,"created":"2026-09-04 12:28:10.000000000","uploader":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"ref":"refs/changes/22/1003922/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/22/1003922/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/22/1003922/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/22/1003922/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/22/1003922/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/22/1003922/3"}}},"commit":{"parents":[{"commit":"e91b3e3d5548e4193e86f9500eecb592b28c5831","subject":"typing: Allow None passed to set_auth_state","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/e91b3e3d5548e4193e86f9500eecb592b28c5831"}]}],"author":{"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","date":"2026-09-04 07:58:35.000000000","tz":120},"committer":{"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","date":"2026-09-04 12:27:59.000000000","tz":120},"subject":"feat: add Session.close() for deterministic resource release","message":"feat: add Session.close() for deterministic resource release\n\nAdd an explicit close() method to keystoneauth1.session.Session that\nreleases the underlying requests.Session (and with it the urllib3\nconnection pool holding keep-alive sockets) without waiting for the\nSession object to be garbage-collected via __del__. Consumers holding\na Session beyond a logical unit of work - long-running daemons,\nper-request connections, pre-fork cleanup - can now release pooled\nsockets deterministically.\n\nclose() only closes the requests session when keystoneauth1 created it\nitself; a requests.Session supplied via the session constructor\nargument is left untouched, as its ownership belongs to the caller.\nThe method is idempotent and non-fatal: the session remains usable\nafter being closed, establishing new connections as needed, and no\nre-authentication is required since token state lives in the auth\nplugin. __del__ now delegates to close() and keeps swallowing\nexceptions, as before.\n\nPartial-bug: https://bugs.launchpad.net/openstacksdk/+bug/2166351\nAssisted-By: opencode (Qwen3.8-27B)\nChange-Id: Ie2c5fb20d830a916f588bba65137dc327c736f07\nSigned-off-by: Artem Goncharov \u003cartem.goncharov@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/4741636c9075a7eefe5f13c2fa0796b5fd8508a5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/4741636c9075a7eefe5f13c2fa0796b5fd8508a5"}]},"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"}}]}],"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":""}}}]}
