)]}'
{"id":"openstack%2Fkeystoneauth~670341","triplet_id":"openstack%2Fkeystoneauth~master~Ied73320fcd813ae796e40cbdb30717900486b92c","project":"openstack/keystoneauth","branch":"master","topic":"per-call-global_request_id","hashtags":[],"change_id":"Ied73320fcd813ae796e40cbdb30717900486b92c","subject":"Add a per-request global_request_id","status":"MERGED","created":"2019-07-11 15:56:37.000000000","updated":"2019-07-11 21:30:10.000000000","submitted":"2019-07-11 21:30:10.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":2,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"670341-1562880610226-31ef7618","meta_rev_id":"402b95ffe5019ae9b2ccbfab6b7a13f87af0bd20","_number":670341,"virtual_id_number":670341,"owner":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"value":0,"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},{"value":2,"date":"2019-07-11 21:30:10.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":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"all":[{"value":2,"date":"2019-07-11 16:01:23.000000000","_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"value":2,"date":"2019-07-11 16:49:18.000000000","_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},{"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":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"all":[{"value":0,"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"value":1,"date":"2019-07-11 19:32:11.000000000","_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},{"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":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2019-07-11 16:01:23.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":"2019-07-11 19:32:11.000000000","updated_by":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"reviewer":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"state":"REVIEWER"},{"updated":"2019-07-11 21:30:10.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":"710a766b1f8eaf711766bfe7b9c6c7102f4b2791","author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"date":"2019-07-11 15:56:37.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"ae6550fa6d11fb8df667e5ceaa6ba710df6d7847","author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"date":"2019-07-11 16:01:23.000000000","message":"Patch Set 1: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"116d14311b65bae4f58833ca7ff67834609e081f","author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"date":"2019-07-11 16:49:18.000000000","message":"Patch Set 1: Code-Review+2\n\n(1 comment)\n\n+A when zuul weighs in.","accounts_in_message":[],"_revision_number":1},{"id":"25567634dda8372231acf48eb3236515c918bebf","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-07-11 17:49:26.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- tempest-full http://logs.openstack.org/41/670341/1/check/tempest-full/99eb80d/ : SUCCESS in 1h 47m 00s\n- tempest-full-py3 http://logs.openstack.org/41/670341/1/check/tempest-full-py3/0e5332d/ : SUCCESS in 1h 44m 00s\n- openstack-tox-lower-constraints http://logs.openstack.org/41/670341/1/check/openstack-tox-lower-constraints/a24d295/ : SUCCESS in 5m 41s\n- openstack-tox-pep8 http://logs.openstack.org/41/670341/1/check/openstack-tox-pep8/8148d04/ : SUCCESS in 3m 19s\n- openstack-tox-py27 http://logs.openstack.org/41/670341/1/check/openstack-tox-py27/0a4297a/ : SUCCESS in 3m 15s\n- openstack-tox-py36 http://logs.openstack.org/41/670341/1/check/openstack-tox-py36/f28aae7/ : SUCCESS in 3m 15s\n- openstack-tox-py37 http://logs.openstack.org/41/670341/1/check/openstack-tox-py37/f0b6663/ : SUCCESS in 4m 09s\n- openstacksdk-functional-devstack-tips http://logs.openstack.org/41/670341/1/check/openstacksdk-functional-devstack-tips/5a990cd/ : SUCCESS in 1h 01m 03s\n- openstacksdk-functional-devstack-tips-python2 http://logs.openstack.org/41/670341/1/check/openstacksdk-functional-devstack-tips-python2/645fdb9/ : SUCCESS in 1h 04m 35s\n- openstacksdk-tox-py36-tips http://logs.openstack.org/41/670341/1/check/openstacksdk-tox-py36-tips/f7737ef/ : SUCCESS in 4m 18s\n- osc-tox-py27-tips http://logs.openstack.org/41/670341/1/check/osc-tox-py27-tips/8c60c58/ : SUCCESS in 4m 43s\n- osc-tox-py36-tips http://logs.openstack.org/41/670341/1/check/osc-tox-py36-tips/6fa01e6/ : SUCCESS in 6m 02s\n- openstack-tox-docs http://logs.openstack.org/41/670341/1/check/openstack-tox-docs/9b37b7b/html/ : SUCCESS in 3m 22s","accounts_in_message":[],"_revision_number":1},{"id":"60774b67ad5a15785ca952a8083b0c5eb3803bbb","author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"date":"2019-07-11 19:32:11.000000000","message":"Patch Set 1: Workflow+1","accounts_in_message":[],"_revision_number":1},{"id":"3df4bb7d68810b12775a6464780f03b2de000a58","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-07-11 19:34:34.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"fbdd1effc90f8a8a765968d37e5a850b2745943f","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-07-11 21:30:10.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":1},{"id":"833ed7afe67ce372b7a86fbb92bef591c0b23047","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-07-11 21:30:10.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- tempest-full http://logs.openstack.org/41/670341/1/gate/tempest-full/790efb0/ : SUCCESS in 1h 53m 49s\n- tempest-full-py3 http://logs.openstack.org/41/670341/1/gate/tempest-full-py3/7688920/ : SUCCESS in 1h 31m 39s\n- openstack-tox-lower-constraints http://logs.openstack.org/41/670341/1/gate/openstack-tox-lower-constraints/6d8c5a7/ : SUCCESS in 4m 30s\n- openstack-tox-pep8 http://logs.openstack.org/41/670341/1/gate/openstack-tox-pep8/014e4f0/ : SUCCESS in 3m 49s\n- openstack-tox-py27 http://logs.openstack.org/41/670341/1/gate/openstack-tox-py27/df083a7/ : SUCCESS in 3m 19s\n- openstack-tox-py36 http://logs.openstack.org/41/670341/1/gate/openstack-tox-py36/463e01c/ : SUCCESS in 3m 03s\n- openstack-tox-py37 http://logs.openstack.org/41/670341/1/gate/openstack-tox-py37/fdc0527/ : SUCCESS in 3m 40s\n- openstacksdk-functional-devstack-tips http://logs.openstack.org/41/670341/1/gate/openstacksdk-functional-devstack-tips/f65f965/ : SUCCESS in 1h 02m 58s\n- openstacksdk-functional-devstack-tips-python2 http://logs.openstack.org/41/670341/1/gate/openstacksdk-functional-devstack-tips-python2/b0ddcbf/ : SUCCESS in 58m 27s\n- openstacksdk-tox-py36-tips http://logs.openstack.org/41/670341/1/gate/openstacksdk-tox-py36-tips/3e5e3fd/ : SUCCESS in 3m 39s\n- osc-tox-py27-tips http://logs.openstack.org/41/670341/1/gate/osc-tox-py27-tips/6bab04e/ : SUCCESS in 6m 13s\n- osc-tox-py36-tips http://logs.openstack.org/41/670341/1/gate/osc-tox-py36-tips/d4129bc/ : SUCCESS in 4m 23s\n- openstack-tox-docs http://logs.openstack.org/41/670341/1/gate/openstack-tox-docs/5e09646/html/ : SUCCESS in 3m 03s","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"df57e0ec3bd3f168206475fc3cd70074566440f5","revisions":{"df57e0ec3bd3f168206475fc3cd70074566440f5":{"kind":"REWORK","_number":1,"created":"2019-07-11 15:56:37.000000000","uploader":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"ref":"refs/changes/41/670341/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/41/670341/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/41/670341/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/41/670341/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/41/670341/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/41/670341/1"}}},"commit":{"parents":[{"commit":"92ec14c66b5aa0762ecf0b313b53def4a17d45b1","subject":"Add Python 3 Train unit tests","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/92ec14c66b5aa0762ecf0b313b53def4a17d45b1"}]}],"author":{"name":"Eric Fried","email":"openstack@fried.cc","date":"2019-07-11 15:35:44.000000000","tz":-300},"committer":{"name":"Eric Fried","email":"openstack@fried.cc","date":"2019-07-11 15:35:44.000000000","tz":-300},"subject":"Add a per-request global_request_id","message":"Add a per-request global_request_id\n\nAdapter.__init__ takes a global_request_id which causes the\nX-Openstack-Request-Id header to be set on each request. This is fine if\nthe Adapter is used for only one \"request\" (in the sense of e.g. \"a\nserver create\" -- see [1]), but is too broad if the Adapter is reused\nfor multiple requests. For example, Nova\u0027s SchedulerReportClient (used\nto communicate with Placement) creates a single instance of Adapter for\nthe life of the process [2][3][4]. Openstack SDK\u0027s Proxy objects [5]\nendure for the life of a Connection.\n\nSo what is needed is a way to manage the X-Openstack-Request-Id header\non a per-request basis.\n\nThis commit adds a global_request_id kwarg to\nkeystoneauth1.session.Session.request, which is the funnel point for all\nrequests coming through Adapter as well as Session itself. (All the\nmethods feeding into that one already accept and pass through arbitrary\n**kwargs.) If present, the value in the X-Openstack-Request-Id header is\nset accordingly. Note that this will *override*\nAdapter.global_request_id, which is exactly what we want, as described\nabove.\n\n[1] http://specs.openstack.org/openstack/oslo-specs/specs/pike/global-req-id.html\n[2] https://opendev.org/openstack/nova/src/commit/bea9058f02927a3afd453af0532d21e2638d24db/nova/scheduler/client/report.py#L200\n[3] https://opendev.org/openstack/nova/src/commit/bea9058f02927a3afd453af0532d21e2638d24db/nova/scheduler/client/report.py#L243\n[4] https://opendev.org/openstack/nova/src/commit/bea9058f02927a3afd453af0532d21e2638d24db/nova/utils.py#L1219-L1221\n[5] https://opendev.org/openstack/openstacksdk/src/commit/bf6651f149df8e607a9152c5eeb279164b3a7f8e/openstack/proxy.py#L114\n\nChange-Id: Ied73320fcd813ae796e40cbdb30717900486b92c\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/df57e0ec3bd3f168206475fc3cd70074566440f5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/df57e0ec3bd3f168206475fc3cd70074566440f5"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
