)]}'
{"id":"openstack%2Fswift~975150","triplet_id":"openstack%2Fswift~master~Ic32d3bbe60f5a18a31a461081e33c085724f0135","project":"openstack/swift","branch":"master","topic":"p-proxy-logging-double-quoting","attention_set":{"1179":{"account":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"last_update":"2026-01-30 14:34:31.000000000","reason":"\u003cGERRIT_ACCOUNT_7847\u003e replied on the change","reason_account":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"}},"15343":{"account":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"last_update":"2026-02-02 16:45:46.000000000","reason":"\u003cGERRIT_ACCOUNT_7847\u003e replied on the change","reason_account":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"}}},"removed_from_attention_set":{"7847":{"account":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"last_update":"2026-02-02 16:45:46.000000000","reason":"\u003cGERRIT_ACCOUNT_7847\u003e replied on the change","reason_account":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"}}},"hashtags":[],"change_id":"Ic32d3bbe60f5a18a31a461081e33c085724f0135","subject":"proxy-logging: fix double url-quoting of path elements","status":"NEW","created":"2026-01-29 13:19:23.000000000","updated":"2026-02-02 16:45:46.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":14,"unresolved_comment_count":6,"has_review_started":true,"meta_rev_id":"a3b9b3da6699f5a8a263ab1b02cfc90b30703ace","_number":975150,"virtual_id_number":975150,"owner":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-01-29 17:07:28.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":"","value":1,"default_value":0,"optional":true},"Code-Review":{"disliked":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"value":-1,"date":"2026-01-29 17:43:37.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_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":"","value":-1,"default_value":0,"optional":true},"Workflow":{"rejected":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"all":[{"value":-1,"date":"2026-01-30 14:34:31.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_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":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"CC":[{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-01-29 14:31:31.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-01-29 17:43:37.000000000","updated_by":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"reviewer":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"state":"REVIEWER"},{"updated":"2026-01-29 20:53:51.000000000","updated_by":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"reviewer":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"state":"CC"}],"messages":[{"id":"ec663f9e6ffb4a6e28b45163aa61682e078753b4","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-29 13:19:23.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"17462ea9d298dbf544cc17cb952d883a0000cda6","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-29 14:31:31.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/814a9a3052ae4092bb3392311e64600e\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/62d1f6097d99491ea09012c7aede3c5f : SUCCESS in 4m 41s\n- grenade https://zuul.opendev.org/t/openstack/build/b65f2189fef84c37a4ff762b98995434 : SUCCESS in 1h 09m 45s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/ce622a557baf474f9db3a1ca0930f191 : SUCCESS in 56m 14s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/a39675bffe924a259bfa09c29458bc00 : SUCCESS in 39m 09s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/6178bc7330254b4fa183d202af7dd0cb : SUCCESS in 1h 08m 18s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/d161fc3104f5456191c4fa467864de73 : SUCCESS in 18m 33s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/d003c952a2714c7fa235f9c2faefc770 : SUCCESS in 19m 44s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/989da091b15249c6823938b92cfbfa47 : SUCCESS in 23m 25s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/5752388997e242cf9371349b25911150 : SUCCESS in 5m 26s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/0ce9b97ef37c4a288915ee7440213044 : SUCCESS in 20m 13s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/f3f04af89f074de4abd16b50f110e91a : SUCCESS in 21m 47s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/5d36ffdbe4d94b69b657d7f9b7eda4e6 : SUCCESS in 21m 23s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/968bd51c3ecd41cb9a8def600bcc3d0f : SUCCESS in 31m 40s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/88a1ecebbcd54a67bd00abc9c86aa854 : SUCCESS in 13m 34s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/53210de917794bdd89b39284db11598e : SUCCESS in 14m 26s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/bfa4e13381424fb0b4e0659532fdb8d8 : SUCCESS in 13m 00s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/890ff76c98b14110903408918e5e2eca : SUCCESS in 5m 52s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/305371c32f474f13941b61adfd56eef2 : SUCCESS in 13m 13s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/b1e249febabd46739bdd2af5628d799a : SUCCESS in 8m 21s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/f8c7450dac1d4974b3c63584438a8eac : SUCCESS in 33m 16s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/4e220e3e3126421fb4179b6320871556 : SUCCESS in 20m 57s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/96ca564429ac434882e77cebee5cb74d : SUCCESS in 55m 34s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/b7f8c6b47d42475ea5b998ea051ce15b : SUCCESS in 10m 25s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f3a97acb829a423fb2085a2eb8901efd : SUCCESS in 2m 39s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/b7b063de43b34f149a544b9284495756 : SUCCESS in 18m 07s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/bde35a73e3a04680a4115c2c9069ae6a : SUCCESS in 50m 39s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/4bb8b8e5aa4a42718a16094e1fa10dfb : SUCCESS in 59m 37s","accounts_in_message":[],"_revision_number":1},{"id":"14e5618a5e765bf7a18c2f7d045b9b3948fe4b93","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-29 15:47:53.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":2},{"id":"ffcb0329b7e633216c938a76de167d8c3b8ba1f9","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-29 17:07:28.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/409593c92af0487991bad8c2305bf558\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/6851caf12fb042a199fd955222f9420b : SUCCESS in 11m 36s\n- grenade https://zuul.opendev.org/t/openstack/build/8a5e241c1e404bd88bf36810e451014d : SUCCESS in 1h 01m 57s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/c3b32b18b99c4c939955ce745110c592 : SUCCESS in 1h 09m 36s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/f44459635a5d4aadab9171689b56d0e4 : SUCCESS in 54m 20s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/e5fbbdcbb25c41f78510444facc471c2 : SUCCESS in 32m 57s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/9117920128a8417ab0a705b9cbfc550a : SUCCESS in 17m 41s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/69db0de837a84f0ea1ee299724c70c6e : SUCCESS in 17m 41s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/b609f55c5d7f475c8d43a24f06233d45 : SUCCESS in 23m 04s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/df98060eeff24fc89118add577cd1ff8 : SUCCESS in 9m 41s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/80d010426bd7405ba5dab27c9940d79d : SUCCESS in 25m 01s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/4f8aba0219b04f85a1873b462eb7701d : SUCCESS in 17m 49s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/7b9b6bbc6be14946b1f3e0c7488c03b6 : SUCCESS in 28m 01s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/8092b24b2d8140dfab3152dbf16535be : SUCCESS in 29m 27s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/b0cb565509ae4cd68c73a8940d2eae79 : SUCCESS in 10m 17s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/b845fd7a6c794b898c79e9f81fd6ff01 : SUCCESS in 16m 50s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/08cb083055d04b7da15f0858d5800e84 : SUCCESS in 15m 22s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/19261f2532014ceba0896dabbc5a4788 : SUCCESS in 7m 02s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/cc29893ca3204ae4a383a83aa49d9702 : SUCCESS in 15m 59s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/12f7be93c8de4ab5805d34333a2f2636 : SUCCESS in 8m 00s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/f9724b9b42d444b794ddd2c1b8bcbb7c : SUCCESS in 1h 00m 22s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/cfb1b9a89e64473aaa10fc5a789e5e87 : SUCCESS in 36m 46s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/500eb1b3e4a74d06a765616dc24d5753 : SUCCESS in 45m 53s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/843494b117cd4d74a286bf047d324ffd : SUCCESS in 27m 25s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/59ae9cbe19524e45b4ccd3635448f3b8 : SUCCESS in 4m 11s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/fede988f9ae443ad8c1b8d51c7e259c3 : SUCCESS in 19m 24s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/c2d42ec8630043be8065ede13252577b : SUCCESS in 56m 15s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/cea76ad09da74111beb05fea3946bc16 : SUCCESS in 46m 10s","accounts_in_message":[],"_revision_number":2},{"id":"6e0fbf9e0b8761689e213f7fc6636f3e58b65dbd","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2026-01-29 17:43:37.000000000","message":"Patch Set 2: Code-Review-1\n\n(3 comments)","accounts_in_message":[],"_revision_number":2},{"id":"893e4f0cdeb8dd4d312548df4666b61fca37c4b4","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2026-01-29 20:53:51.000000000","message":"Patch Set 2:\n\n(2 comments)","accounts_in_message":[],"_revision_number":2},{"id":"82e6bbf12a64dd0059edb8360df2052b9d75a28b","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-30 02:44:55.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/3c866036aa4f4817957aa17cdd947adb\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/15c6002372e14e91afdf22112e1d587b : SUCCESS in 1h 09m 30s","accounts_in_message":[],"_revision_number":2},{"id":"ba44967570118fbaf5b318b181e1c8f159230ced","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-30 14:34:31.000000000","message":"Patch Set 2: Workflow-1\n\n(4 comments)","accounts_in_message":[],"_revision_number":2},{"id":"ded325a1b81817016dff59be165e92fa5eff7b51","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2026-01-30 18:55:39.000000000","message":"Patch Set 2:\n\n(4 comments)","accounts_in_message":[],"_revision_number":2},{"id":"a3b9b3da6699f5a8a263ab1b02cfc90b30703ace","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-02 16:45:46.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"c3dc4554661355b38109e869445dccbb90110b32","revisions":{"b26db47008d49a16f6a8d5e95faf6d2ac93b1dd3":{"kind":"REWORK","_number":1,"created":"2026-01-29 13:19:23.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/50/975150/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/50/975150/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/50/975150/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/50/975150/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/50/975150/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/50/975150/1"}}},"commit":{"parents":[{"commit":"1b0c11b68fe264fad2ed2e5d8e4db083986c9e6a","subject":"Updating the dockerhub secret (again^2)","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1b0c11b68fe264fad2ed2e5d8e4db083986c9e6a"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-01-27 14:27:28.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-01-29 13:19:08.000000000","tz":0},"subject":"proxy-logging: fix double url-quoting of path elements","message":"proxy-logging: fix double url-quoting of path elements\n\nPreviously the proxy-logging middleware used the url-quoted\nswob.Request.path property to populate the path elements of a log\nline. The LogFormatter also url-quoted each element of a log line\nduring formatting. This resulted in a path such as:\n\n  \u0027/v1/a/%00versions%00bucket/%00obj\u0027\n\nbeing logged as:\n\n  \u0027/v1/a/%2500versions%2500bucket/%2500obj\u0027.\n\ni.e. the path has been \u0027double url-quoted\u0027.\n\nThis is inconsistent with the path logged by the backend servers and\nthe path element values used to label metrics, both of which use the\nsingle url-quoted path elements.\n\nThe author\u0027s understanding is that the intention of the LogFormatter\nquoting is to avoid individual log line elements having whitespace, so\nthat the log line as a whole can be easily parsed into its\nelements. This patch therefore modifies the LogFormatter such that\nwhen quoting is enabled, only log line elements containing whitespace\nare quoted.\n\nDrive-by: improve swob.Request docstrings and test coverage.\n\nCloses-bug: #2139145\n\nChange-Id: Ic32d3bbe60f5a18a31a461081e33c085724f0135\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/b26db47008d49a16f6a8d5e95faf6d2ac93b1dd3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/b26db47008d49a16f6a8d5e95faf6d2ac93b1dd3"}]},"branch":"refs/heads/master"},"c3dc4554661355b38109e869445dccbb90110b32":{"kind":"REWORK","_number":2,"created":"2026-01-29 15:47:53.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/50/975150/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/50/975150/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/50/975150/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/50/975150/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/50/975150/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/50/975150/2"}}},"commit":{"parents":[{"commit":"1b0c11b68fe264fad2ed2e5d8e4db083986c9e6a","subject":"Updating the dockerhub secret (again^2)","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1b0c11b68fe264fad2ed2e5d8e4db083986c9e6a"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-01-27 14:27:28.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-01-29 15:47:07.000000000","tz":0},"subject":"proxy-logging: fix double url-quoting of path elements","message":"proxy-logging: fix double url-quoting of path elements\n\nPreviously the proxy-logging middleware used the url-quoted\nswob.Request.path property to populate the path elements of a log\nline. The LogStringFormatter also url-quoted each element of a log\nline during formatting. This resulted in a path such as:\n\n  \u0027/v1/a/%00versions%00bucket/%00obj\u0027\n\nbeing logged as:\n\n  \u0027/v1/a/%2500versions%2500bucket/%2500obj\u0027.\n\ni.e. the path has been \u0027double url-quoted\u0027.\n\nThis is inconsistent with the path logged by the backend servers and\nthe path element values used to label metrics, both of which use the\nsingle url-quoted path elements.\n\nThe current behaviour appears to have been the same since the initial\ncommit of Swift [1], but not documented until [2]. Some exceptions to\nthe quoting were previously introduced in [3]. The universal quoting\nwas retained when log lines became configurable [4].\n\nThe author\u0027s assumption is that the intention of the\nLogStringFormatter quoting is to avoid individual log line elements\nhaving whitespace, so that the log line as a whole can be easily\nparsed into its elements. This patch therefore modifies the\nLogStringFormatter such that when quoting is enabled, only log line\nelements containing whitespace are quoted.\n\nDrive-by: improve swob.Request docstrings and test coverage.\n\nCloses-bug: #2139145\n[1] commit 001407b969bc1\n[2] Related-Change: I196fc4212b5405c410c9bfb850cd0d4737094c47\n[3] Related-Change: Ia13a9bc8a320cde5c56034a7f0b645913428bf21\n[4] Related-Change: I29e30ef45fe3f8a026e7897127ffae08a6a80cd9\n\nChange-Id: Ic32d3bbe60f5a18a31a461081e33c085724f0135\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c3dc4554661355b38109e869445dccbb90110b32"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c3dc4554661355b38109e869445dccbb90110b32"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","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":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":["label:Workflow\u003dMIN"],"failing_atoms":["label:Workflow\u003dMAX"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
