)]}'
{"id":"openstack%2Fkeystoneauth~731847","triplet_id":"openstack%2Fkeystoneauth~master~Iba707dd0506d22e144aca4fdfc9b140c8e37ae02","project":"openstack/keystoneauth","branch":"master","topic":"bug/1881351","hashtags":[],"change_id":"Iba707dd0506d22e144aca4fdfc9b140c8e37ae02","subject":"Make header Case Insensitive","status":"MERGED","created":"2020-05-29 21:13:58.000000000","updated":"2020-06-03 17:59:33.000000000","submitted":"2020-06-03 17:57:33.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"731847-1591207053108-e5c44743","meta_rev_id":"d186f00efafc55f7dda9025440ac146d74b16f0b","_number":731847,"virtual_id_number":731847,"owner":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"value":0,"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"value":0,"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},{"value":0,"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2020-06-03 17:57:31.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"}],"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":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"recommended":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"all":[{"value":1,"date":"2020-05-30 20:24:02.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"value":2,"date":"2020-05-31 14:26:12.000000000","_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"value":2,"date":"2020-06-03 16:42:45.000000000","_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},{"value":0,"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2020-05-31 15:30:28.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"}],"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":{"approved":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"all":[{"value":0,"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"value":0,"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"value":1,"date":"2020-06-03 16:42:45.000000000","_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},{"value":0,"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2020-05-30 20:24:02.000000000","updated_by":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"reviewer":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"state":"REVIEWER"},{"updated":"2020-05-31 14:26:12.000000000","updated_by":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"reviewer":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"state":"REVIEWER"},{"updated":"2020-05-31 15:30:28.000000000","updated_by":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"reviewer":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"state":"REVIEWER"},{"updated":"2020-06-03 16:42:45.000000000","updated_by":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"reviewer":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"state":"REVIEWER"},{"updated":"2020-06-03 17:57: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"}],"messages":[{"id":"8ce6fc26f4ec4979eb1dfd612e90a59fd6c37dc2","author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"date":"2020-05-29 21:13:58.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"6bdd7de9793897f3b146d8fdfd2b4c7a26fcd6d4","author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"date":"2020-05-29 21:17:46.000000000","message":"Patch Set 1:\n\nAwesome.\n\nHowever - http headers are actually case-insensitive, so I\u0027d argue it\u0027s a bug that this matters. Perhaps instead of having headers be a {}, we should use requests.structures.CaseInsensitiveDict","accounts_in_message":[],"_revision_number":1},{"id":"37c41621509032a74e92a9d1fa1aea7bf7e2e0cc","author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"date":"2020-05-29 21:31:29.000000000","message":"Patch Set 1: Workflow-1\n\n\u003e Awesome.\n \u003e \n \u003e However - http headers are actually case-insensitive, so I\u0027d argue\n \u003e it\u0027s a bug that this matters. Perhaps instead of having headers be\n \u003e a {}, we should use requests.structures.CaseInsensitiveDict\n\nthanks, updating with that.","accounts_in_message":[],"_revision_number":1},{"id":"6c8613086c0f3266ea422727df3e9911efaa0639","author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"date":"2020-05-29 22:21:46.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"823fa07c44c13379f9601f8ad4e2b72405bb935c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-05-29 23:45:18.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/9018d38e9e324284aa24be32de6b8084 : SUCCESS in 1h 22m 30s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/78c33c9e83e84ebe98e4a68ba18ee6d3 : SUCCESS in 4m 38s\n- openstack-tox-py35 https://zuul.opendev.org/t/openstack/build/0ab4b07ab51b456c98023b762ade3e14 : SUCCESS in 3m 25s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/051ae1116a7044b9a01329aa73cb7858 : SUCCESS in 3m 38s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/868e1ee1368c46ac82f66aed501ee863 : SUCCESS in 3m 41s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/9bb59478ad2642c5a7f2d664d3d22373 : SUCCESS in 3m 38s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/ac7a032a35fd4aa48511b5f9f75390aa : SUCCESS in 3m 39s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/f4d17e63f2b94c928128861f9cf5ae61 : SUCCESS in 47m 20s\n- openstacksdk-tox-py38-tips https://zuul.opendev.org/t/openstack/build/89833894b52c4f8c8cc01f9cf0c6b117 : SUCCESS in 3m 51s\n- osc-tox-py36-tips https://zuul.opendev.org/t/openstack/build/eb6223f7234f43a09a9b10fd254dfbe7 : SUCCESS in 4m 40s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/fde0114d3e7846cdb38ec3dbfc0eec20 : SUCCESS in 6m 07s","accounts_in_message":[],"_revision_number":2},{"id":"c67e38af2376b9ab32d209e5a2353dfec03d06e1","author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"date":"2020-05-30 20:24:02.000000000","message":"Patch Set 2: Code-Review+1\n\n(1 comment)\n\nComment typo, but otherwise looks good.\n\nI don\u0027t suppose we can just make sure it is properly cased in all instances?","accounts_in_message":[],"_revision_number":2},{"id":"5b88d06146df2746c1fe9536da0b8d4438534f7c","author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"date":"2020-05-31 14:26:12.000000000","message":"Patch Set 2: Code-Review+2\n\nSean - there\u0027s no such thing as properly cased (that previous patch made them consistent, I requested this approach) because http headers are case insensitive.","accounts_in_message":[],"_revision_number":2},{"id":"f3fad20951a39c3b1dbe2a0db192988bffec24c4","author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"date":"2020-05-31 15:16:06.000000000","message":"Patch Set 2:\n\nYeah, I meant bring consistent in our setting of the header so there is no duplication.","accounts_in_message":[],"_revision_number":2},{"id":"38a804e89e5996d8fbfc4d4315531f33afa4cb9b","author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"date":"2020-05-31 15:30:28.000000000","message":"Patch Set 2: Code-Review+1","accounts_in_message":[],"_revision_number":2},{"id":"e99eb64513e197597fc67a05b5c3245761c183ee","author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"date":"2020-06-03 16:42:45.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":2},{"id":"99f9bca713c8545f51b01299947ee2c1d967c43a","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-06-03 16:42:57.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"4bad8be2ae0d21e7685de10ff317fc2580ecaa69","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-06-03 17:57:31.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/2a986a0b2beb4647b373aa2754cc0ed9 : SUCCESS in 1h 13m 34s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/b45d46661feb47b7b6224e7d2e810b10 : SUCCESS in 6m 21s\n- openstack-tox-py35 https://zuul.opendev.org/t/openstack/build/0e21199985a44ceeba9b7d990c19c5c3 : SUCCESS in 4m 50s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1ac8aa9f3def4b42ad3de845bdf58ba1 : SUCCESS in 4m 43s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/ca5931f5d02d4526a611a7e7efda2581 : SUCCESS in 4m 43s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/9fea6d3ee8d549eab2f95ea8d1aaad4d : SUCCESS in 5m 48s\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/f8f23a58241843a491245d6ddc91a8ba : SUCCESS in 54m 50s\n- openstacksdk-tox-py38-tips https://zuul.opendev.org/t/openstack/build/93914d43dfd94d7e9e7c163c65e73c8f : SUCCESS in 5m 10s\n- osc-tox-py36-tips https://zuul.opendev.org/t/openstack/build/4cd1e1e75847422da1cfcc479cf7e70d : SUCCESS in 6m 31s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/6c9932b3d29745ad94f7818dae6e61f7 : SUCCESS in 7m 34s","accounts_in_message":[],"_revision_number":2},{"id":"3268e4ed23dc321b0b4597f84326fdb0acce8894","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-06-03 17:57:33.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":2},{"id":"fdf052e1da9bddabe98b11e3fdda00c16480b0fe","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-06-03 17:59:33.000000000","message":"Patch Set 2:\n\nBuild succeeded (promote pipeline).\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a0d1cee23c6b4e1b9c8940a626b4fe5a : SUCCESS in 1m 42s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"c00fca4a09942181937794d711643511e3b1e4a5","revisions":{"3e73d3f89fad3b7210b30d61413a7c56b918e66d":{"kind":"REWORK","_number":1,"created":"2020-05-29 21:13:58.000000000","uploader":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"ref":"refs/changes/47/731847/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/47/731847/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/47/731847/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/47/731847/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/47/731847/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/47/731847/1"}}},"commit":{"parents":[{"commit":"1bffde3315e68a6eadf48e09f831d9fab2bc5332","subject":"Merge \"Re-add python3.5 testing\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/1bffde3315e68a6eadf48e09f831d9fab2bc5332"}]}],"author":{"name":"Ghanshyam Mann","email":"gmann@ghanshyammann.com","date":"2020-05-29 21:04:47.000000000","tz":-300},"committer":{"name":"Ghanshyam Mann","email":"gmann@ghanshyammann.com","date":"2020-05-29 21:12:19.000000000","tz":-300},"subject":"Fix global-request-id header name","message":"Fix global-request-id header name\n\nIn case of global-request-id request, Adapter\nsend two global request id header\n - \"X-OpenStack-Request-ID\"\n - \"X-Openstack-Request-Id\".\n\nExample: https://zuul.opendev.org/t/openstack/build/c5b1debf78df4aa3bdda34f0b4c53c37/log/testrepository.subunit#2385\n\nThis is becasue of the different header name in when\nadaptor add or when session request add it, differnce\nis with cap \u0027D\u0027.\n\nUnit test for whether request global-request-id has precedence\nover adapter fail many times because of how different python version\ntreat the dict. py3.6 and above are all good as dict maintain the\ninsertion ordered but py3.5 can fail it any time.\n\nWe can see consistent failure in py35 jobs:\n- https://review.opendev.org/#/c/730687/\n\nLet\u0027s use the header name from sessions global var to\nmake it consistent and no chance of having/comparing different\nheader.\n\nChange-Id: Iba707dd0506d22e144aca4fdfc9b140c8e37ae02\nCloses-Bug: #1881351\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/3e73d3f89fad3b7210b30d61413a7c56b918e66d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/3e73d3f89fad3b7210b30d61413a7c56b918e66d"}]},"branch":"refs/heads/master"},"c00fca4a09942181937794d711643511e3b1e4a5":{"kind":"REWORK","_number":2,"created":"2020-05-29 22:21:46.000000000","uploader":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"ref":"refs/changes/47/731847/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/47/731847/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/47/731847/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/47/731847/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/47/731847/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/47/731847/2"}}},"commit":{"parents":[{"commit":"1bffde3315e68a6eadf48e09f831d9fab2bc5332","subject":"Merge \"Re-add python3.5 testing\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/1bffde3315e68a6eadf48e09f831d9fab2bc5332"}]}],"author":{"name":"Ghanshyam Mann","email":"gmann@ghanshyammann.com","date":"2020-05-29 21:04:47.000000000","tz":-300},"committer":{"name":"Ghanshyam Mann","email":"gmann@ghanshyammann.com","date":"2020-05-29 22:17:11.000000000","tz":-300},"subject":"Make header Case Insensitive","message":"Make header Case Insensitive\n\nIn case of global-request-id request, Adapter\nsend two global request id header\n - \"X-OpenStack-Request-ID\"\n - \"X-Openstack-Request-Id\".\n\nExample: https://zuul.opendev.org/t/openstack/build/c5b1debf78df4aa3bdda34f0b4c53c37/log/testrepository.subunit#2385\n\nThis is becasue of the header not being Case Insensitive\nand end up with two different name of same header with difference\nof cap \u0027D\u0027.\n\nUnit test for whether request global-request-id has precedence\nover adapter fail many times because of how different python version\ntreat the dict. py3.6 and above are all good as dict maintain the\ninsertion ordered but py3.5 can fail it any time.\n\nWe can see consistent failure in py35 jobs:\n- https://review.opendev.org/#/c/730687/\n\nLet\u0027s make the headers always Case Insensitive which is\nwhat RFC says.\n\nChange-Id: Iba707dd0506d22e144aca4fdfc9b140c8e37ae02\nCloses-Bug: #1881351\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/c00fca4a09942181937794d711643511e3b1e4a5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/c00fca4a09942181937794d711643511e3b1e4a5"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
