)]}'
{"id":"openstack%2Fpython-ironic-inspector-client~824247","triplet_id":"openstack%2Fpython-ironic-inspector-client~master~I81e9b7605077a619eb4aa0884775c3f7c73e83c8","project":"openstack/python-ironic-inspector-client","branch":"master","attention_set":{},"removed_from_attention_set":{"15519":{"account":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"last_update":"2022-04-21 21:23:01.000000000","reason":"Change was abandoned"},"4571":{"account":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"last_update":"2022-01-12 20:11:13.000000000","reason":"Steve Baker replied on the change"},"24245":{"account":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"last_update":"2022-01-13 14:49:09.000000000","reason":"Harald Jensås replied on the change"},"11655":{"account":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"last_update":"2022-03-02 03:47:20.000000000","reason":"Julia Kreger replied on the change"}},"hashtags":[],"change_id":"I81e9b7605077a619eb4aa0884775c3f7c73e83c8","subject":"Fix connection read/timeout issues.","status":"ABANDONED","created":"2022-01-11 22:07:52.000000000","updated":"2022-04-21 21:23:01.000000000","total_comment_count":10,"unresolved_comment_count":2,"has_review_started":true,"meta_rev_id":"aa8d9149dee9aadfcdfa11b685f78f31383624a7","_number":824247,"virtual_id_number":824247,"owner":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2022-01-12 20:05:50.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"}],"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":{"approved":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"disliked":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":-1,"date":"2022-01-13 17:33:22.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},{"value":2,"date":"2022-01-12 20:11:13.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},{"value":1,"date":"2022-01-13 14:49:09.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"}],"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":"","value":-1,"default_value":0,"optional":true},"Workflow":{"rejected":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},{"value":-1,"date":"2022-01-14 20:30:12.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Backport-Candidate":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"}],"values":{"-1":"Do Not Backport"," 0":"Backport Review Needed","+1":"Should Backport"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"CC":[{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"}],"REVIEWER":[{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2022-01-11 22:09:02.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":"2022-01-11 22:09:11.000000000","updated_by":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"reviewer":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"state":"REVIEWER"},{"updated":"2022-01-11 22:09:11.000000000","updated_by":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"reviewer":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"state":"REVIEWER"},{"updated":"2022-01-13 17:33:22.000000000","updated_by":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"reviewer":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"state":"REVIEWER"},{"updated":"2022-03-01 19:11:22.000000000","updated_by":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"reviewer":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"state":"CC"}],"messages":[{"id":"7c10c54ee832618141cb9054fe9b7c695129d32b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"date":"2022-01-11 22:07:52.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"e6517cecb016a5f74bdac8f2c5bbcf6a964199ce","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"date":"2022-01-11 22:08:44.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"a6c6c7d272c15d7c4a1853771fab9d20fe7eab50","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-01-11 22:09:02.000000000","message":"Patch Set 1: Verified-1\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.","accounts_in_message":[],"_revision_number":1},{"id":"ba43cc4042e70e9194e3e93acf243012a9bae43d","author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"date":"2022-01-11 22:54:15.000000000","message":"Patch Set 2:\n\n(2 comments)","accounts_in_message":[],"_revision_number":2},{"id":"572ef30b35daeb4930269710bf2882b1c385087f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-01-11 23:04:41.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3f2f09c594404d38b70f85d6df08b138 : SUCCESS in 3m 08s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/a7b1f23ed20146348163db5303daaf36 : SUCCESS in 4m 11s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/80e4897f0c0e46ecae3cc77a62f6d3af : SUCCESS in 3m 58s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7f9712cb412846f9a7e8bed745c26e68 : SUCCESS in 6m 49s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/14c04bee56a14b0e8e73d94d6f91450d : SUCCESS in 3m 38s\n- openstackclient-check-plugins https://zuul.opendev.org/t/openstack/build/60a26c21f19a431d9408302aa7b4e4fd : SUCCESS in 5m 22s (non-voting)\n- openstack-tox-functional-py39 https://zuul.opendev.org/t/openstack/build/b33e82146dc341819364865765a2f412 : SUCCESS in 6m 19s\n- python-ironic-inspector-client-tempest https://zuul.opendev.org/t/openstack/build/4108cca76b554943a2206dc5fc55b980 : SUCCESS in 53m 51s","accounts_in_message":[],"_revision_number":2},{"id":"34e746070c7f0d941fb0c5283d4f5e20af2c5627","author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"date":"2022-01-12 17:48:40.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"5e9a35e043180b916e06fef23f74763f180be20c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"date":"2022-01-12 18:47:48.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"2f8292a47686a271140c56214005ed3332e06e55","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-01-12 20:05:50.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/344c4238c9734d74a522b0bb37cb641b : SUCCESS in 5m 58s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/d4b5b67f77d74bbd892e1c37f061bcc0 : SUCCESS in 5m 02s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/d6232cbbce744df196967260642f004f : SUCCESS in 6m 29s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/665c8dc69d274058bf96a52fc2f75cd0 : SUCCESS in 9m 58s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/0bf75c870aec44e3b52154cc214f9d66 : SUCCESS in 4m 40s\n- openstackclient-check-plugins https://zuul.opendev.org/t/openstack/build/109a8849c2884991939b19b229684751 : SUCCESS in 7m 40s (non-voting)\n- openstack-tox-functional-py39 https://zuul.opendev.org/t/openstack/build/c8d935ed247948739ce340cba6d51a14 : SUCCESS in 6m 18s\n- python-ironic-inspector-client-tempest https://zuul.opendev.org/t/openstack/build/9a5afc4193b64f73bbcce799de3255bd : SUCCESS in 1h 05m 35s","accounts_in_message":[],"_revision_number":3},{"id":"3b655d2e60f2955c36fad030ea85e01bedb5ab1a","author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"date":"2022-01-12 20:11:13.000000000","message":"Patch Set 3: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"8a08e2d7ae8518c10e59dfd6f4b6a0223d19ae7f","author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"date":"2022-01-12 20:19:54.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"54d834211867c044d03c3e1d504b143e77408089","author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"date":"2022-01-13 14:49:09.000000000","message":"Patch Set 3: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"3fa37b6bd05d9eac6a7dbea0e2ef5e80f98b4f46","author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"date":"2022-01-13 17:33:22.000000000","message":"Patch Set 3: Code-Review-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"0ecba08d83da019825509874d20bb38be8573ec4","author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"date":"2022-01-14 20:30:12.000000000","message":"Patch Set 3: Workflow-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"fefd27b078c2f3bc1d2c456c3c625097cda300bf","author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"date":"2022-03-01 19:11:22.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"e915a5dd1f242a210b1feca030c9992d863c8e16","author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"date":"2022-03-02 03:47:20.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"aa8d9149dee9aadfcdfa11b685f78f31383624a7","tag":"autogenerated:gerrit:abandon","author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"date":"2022-04-21 21:23:01.000000000","message":"Abandoned\n\nAbandoning this as we determined the root cause which was not the client.","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"b14cb12b853e46e4991909c0e062c9280331faa2","revisions":{"302a8559623c1515943a70644ab438db8bd709ce":{"kind":"REWORK","_number":1,"created":"2022-01-11 22:07:52.000000000","uploader":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"ref":"refs/changes/47/824247/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-ironic-inspector-client","ref":"refs/changes/47/824247/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-ironic-inspector-client refs/changes/47/824247/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-ironic-inspector-client refs/changes/47/824247/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-ironic-inspector-client refs/changes/47/824247/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-ironic-inspector-client refs/changes/47/824247/1"}}},"commit":{"parents":[{"commit":"9bb11505d79c97e28b32c821dda0e47ef2ef1dc7","subject":"add python 3.7 unit test job","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-ironic-inspector-client/commit/9bb11505d79c97e28b32c821dda0e47ef2ef1dc7"}]}],"author":{"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","date":"2022-01-11 21:57:24.000000000","tz":-480},"committer":{"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","date":"2022-01-11 22:06:23.000000000","tz":-480},"subject":"Disable keep-alive","message":"Disable keep-alive\n\nHttp keep-alive, which is by default enabled with python requests\nand intermediate proxies may not gracefully handle the simple exchanges\nwhich occur between the client and the server. This introduces the\npossibility where a server explicitly closes a socket, but the client\nmay believe the socket is still available as it is connected to a\nproxy, or even an socket on the network stack which is in the process\nof closing.\n\nIn particcular, this can be encountered on requests where the intermediate\nlibraries want to use Chunked encoding, but the server responds with an\nempty response (which is valid), and then closes the socket (expected).\nWith a HTTP proxy, there is no way for the client to gracefully handle\nthe socket disappearing and it generates failures as a result.\n\nChange-Id: I81e9b7605077a619eb4aa0884775c3f7c73e83c8\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-ironic-inspector-client/commit/302a8559623c1515943a70644ab438db8bd709ce"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-ironic-inspector-client/commit/302a8559623c1515943a70644ab438db8bd709ce"}]},"branch":"refs/heads/master"},"bed93178dcb2ed2778b739bf105dffef9dd0b027":{"kind":"REWORK","_number":2,"created":"2022-01-11 22:08:44.000000000","uploader":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"ref":"refs/changes/47/824247/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-ironic-inspector-client","ref":"refs/changes/47/824247/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-ironic-inspector-client refs/changes/47/824247/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-ironic-inspector-client refs/changes/47/824247/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-ironic-inspector-client refs/changes/47/824247/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-ironic-inspector-client refs/changes/47/824247/2"}}},"commit":{"parents":[{"commit":"6ac7e6ea651675e1a99212b2880a7bec2e067742","subject":"Re-add python 3.6/3.7 in classifier","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-ironic-inspector-client/commit/6ac7e6ea651675e1a99212b2880a7bec2e067742"}]}],"author":{"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","date":"2022-01-11 21:57:24.000000000","tz":-480},"committer":{"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","date":"2022-01-11 22:08:29.000000000","tz":-480},"subject":"Disable keep-alive","message":"Disable keep-alive\n\nHttp keep-alive, which is by default enabled with python requests\nand intermediate proxies may not gracefully handle the simple exchanges\nwhich occur between the client and the server. This introduces the\npossibility where a server explicitly closes a socket, but the client\nmay believe the socket is still available as it is connected to a\nproxy, or even an socket on the network stack which is in the process\nof closing.\n\nIn particcular, this can be encountered on requests where the intermediate\nlibraries want to use Chunked encoding, but the server responds with an\nempty response (which is valid), and then closes the socket (expected).\nWith a HTTP proxy, there is no way for the client to gracefully handle\nthe socket disappearing and it generates failures as a result.\n\nChange-Id: I81e9b7605077a619eb4aa0884775c3f7c73e83c8\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-ironic-inspector-client/commit/bed93178dcb2ed2778b739bf105dffef9dd0b027"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-ironic-inspector-client/commit/bed93178dcb2ed2778b739bf105dffef9dd0b027"}]},"branch":"refs/heads/master"},"b14cb12b853e46e4991909c0e062c9280331faa2":{"kind":"REWORK","_number":3,"created":"2022-01-12 18:47:48.000000000","uploader":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"ref":"refs/changes/47/824247/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-ironic-inspector-client","ref":"refs/changes/47/824247/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-ironic-inspector-client refs/changes/47/824247/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-ironic-inspector-client refs/changes/47/824247/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-ironic-inspector-client refs/changes/47/824247/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-ironic-inspector-client refs/changes/47/824247/3"}}},"commit":{"parents":[{"commit":"6ac7e6ea651675e1a99212b2880a7bec2e067742","subject":"Re-add python 3.6/3.7 in classifier","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-ironic-inspector-client/commit/6ac7e6ea651675e1a99212b2880a7bec2e067742"}]}],"author":{"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","date":"2022-01-11 21:57:24.000000000","tz":-480},"committer":{"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","date":"2022-01-12 18:47:41.000000000","tz":-480},"subject":"Fix connection read/timeout issues.","message":"Fix connection read/timeout issues.\n\nHTTP is a complex protocol. It has a number of features which\nhave evolved over time to help facilitate efficent data transfers\nand minimize the Time To Response.\n\nOne of the aspects which is widely used is HTTP Keep-Alive\nwhich is where the TCP socket is held-open unless explicitly\nrequested to be closed.\n\nThe other aspect which ties into this is chunked encoding which\nallows the server to send chunks to be processed as they are\nreceieved.\n\nWith ironic-inspector\u0027s simple API, we don\u0027t need these features,\nand we use a rarely leveraged feature of an emtpy body response.\n\nPython requests explicitly try to leverage keep-alive, but without\nresult code awareness. This is further compicated by actions of\nthe API surface behavior where sockets are closed in some cases,\nsuch as when 202 or 204 codes are returned.\n\nWhat happens with keep-alive, is when a long running client, either\nruns with a --wait flag on the command line, or an instantiated\npython client calls the API explicitly while waiting a period of\ntime, An intermediate proxy may hold open part of the sequence,\nbut HTTP has no mechanism to convey \"connection timed out and closed\".\nWeb browsers handle this same issue by generally expecting the socket\nto work for two and a half minutes after the request unless hte server\nexplicitly says \"Close the socket\" using the \"Connection: close\"\nheader. What the CLI user or client library API consumer experiences\nis an exception that the connection was closed prematurely.\n\nSimilar in user experience, is when the intermediate service layers\nresult in headers being injected forcing the content response to\nindicate there is always a response body to be processed. But they\nare optional the lesser used HTTP 202 and 204 response codes.\n\nWhere this goes sideways is when python requests attempts to process\nthe empty/null bodied response and expects that a body exists because\nthe intermediate layer injected encoding flags. Encoding flags are also\nhop-to-hop in nature and not end-to-end, so any intermediate proxy may\nchoose to change the encoding style of the response. Anyway, requests\ntries to setup the response such that a user can use the response, finds\nno body, and assumes that the socket closed without the response and\nraises an exception.\n\nIn reality, all because the intermediate proxy is largely written to\npass through everything and nearly almost everythign *has* response\nbodies.\n\nSo where does this leave us? Well, aside from feeling like we are in\nLemony Snicket\u0027s A Series of Unfortunate Events, we need to explicitly\ndisregard the impact of proxies, and handle encoding behavior on the\nclient side because there are many intermediate variables.\n\nSo in the end, we will now close all connections *and* we will\nchange the request handling behavior so requests expects the reader\nto possibly iterate through the response bodies one line at a time,\nwhich causes python-requests to skip some of the things it would\nnormally do for the client.\n\nBasically this impacts calls where we don\u0027t actually look at the\nresponse body, but expect to be notified of a failure due to an\nexception being raised.\n\nRelated: rhbz#2039046\nRelated: rhbz#2039515\n\nChange-Id: I81e9b7605077a619eb4aa0884775c3f7c73e83c8\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-ironic-inspector-client/commit/b14cb12b853e46e4991909c0e062c9280331faa2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-ironic-inspector-client/commit/b14cb12b853e46e4991909c0e062c9280331faa2"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
