)]}'
{"id":"openstack%2Fpython-glanceclient~396816","triplet_id":"openstack%2Fpython-glanceclient~master~Idf6079b32f70bc171f5016467048e917d42f296d","project":"openstack/python-glanceclient","branch":"master","topic":"bug/1641239","hashtags":[],"change_id":"Idf6079b32f70bc171f5016467048e917d42f296d","subject":"v2: Content-Type: application/octet-stream header always added","status":"MERGED","created":"2016-11-12 01:46:05.000000000","updated":"2017-05-24 21:55:26.000000000","submitted":"2017-05-24 21:55:26.000000000","submitter":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"total_comment_count":27,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"813690541e807cd383bd0b690a67421a32459709","_number":396816,"virtual_id_number":396816,"owner":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":0,"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},{"value":2,"date":"2017-05-24 21:55:26.000000000","post_submit":true,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},{"value":0,"_account_id":10068,"name":"Welcome, new contributor!","username":"welcome-message"},{"value":0,"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},{"value":0,"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"value":0,"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},{"value":0,"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},{"value":0,"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},{"value":0,"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},{"value":0,"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"}],"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":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"all":[{"value":0,"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},{"value":0,"_account_id":10068,"name":"Welcome, new contributor!","username":"welcome-message"},{"value":0,"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},{"value":0,"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"value":0,"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},{"value":2,"date":"2017-05-24 20:33:22.000000000","_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},{"value":0,"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},{"value":2,"date":"2017-05-22 13:02:10.000000000","_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},{"value":0,"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"}],"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":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"all":[{"value":0,"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},{"value":0,"_account_id":10068,"name":"Welcome, new contributor!","username":"welcome-message"},{"value":0,"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},{"value":0,"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"value":0,"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},{"value":1,"date":"2017-05-24 20:33:22.000000000","_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},{"value":0,"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},{"value":0,"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},{"value":0,"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},{"value":0,"_account_id":10068,"name":"Welcome, new contributor!","username":"welcome-message"},{"value":0,"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},{"value":0,"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"value":0,"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},{"value":0,"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},{"value":0,"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},{"value":0,"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},{"value":0,"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"}],"values":{"-1":"Branch Freeze"," 0":"No Priority","+1":"Important Change","+2":"Top Priority / Holds Gate"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},{"_account_id":10068,"name":"Welcome, new contributor!","username":"welcome-message"},{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},{"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"},{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2016-11-12 01:46:15.000000000","updated_by":{"_account_id":10068,"name":"Welcome, new contributor!","username":"welcome-message"},"reviewer":{"_account_id":10068,"name":"Welcome, new contributor!","username":"welcome-message"},"state":"REVIEWER"},{"updated":"2016-12-16 10:22:12.000000000","updated_by":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"reviewer":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"state":"REVIEWER"},{"updated":"2016-12-30 17:55:25.000000000","updated_by":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"reviewer":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"state":"REVIEWER"},{"updated":"2017-04-03 12:50:44.000000000","updated_by":{"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"},"reviewer":{"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"},"state":"REVIEWER"},{"updated":"2017-04-06 12:54:04.000000000","updated_by":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"reviewer":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"state":"REVIEWER"},{"updated":"2017-05-18 22:33:45.000000000","updated_by":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"reviewer":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"state":"REVIEWER"},{"updated":"2017-05-20 00:25:41.000000000","updated_by":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"reviewer":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"state":"REVIEWER"},{"updated":"2017-05-22 13:02:10.000000000","updated_by":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"reviewer":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"state":"REVIEWER"},{"updated":"2017-05-24 20:33:22.000000000","updated_by":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"reviewer":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"state":"REVIEWER"},{"updated":"2017-05-24 21:55:26.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"d4e6c918e45d022e89b0bc341e90b710142a4f1b","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-11-12 01:46:05.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"4e02f51687684334d7326c61867c8bf75ace71bf","author":{"_account_id":10068,"name":"Welcome, new contributor!","username":"welcome-message"},"date":"2016-11-12 01:46:15.000000000","message":"Patch Set 1:\n\nThank you for your first contribution to OpenStack.\n\n    Your patch will now be tested automatically by OpenStack testing frameworks\n    and once the automatic tests pass, it will be reviewed by other friendly\n    developers. They will give you feedback and may require you to refine it.\n\n    People seldom get their patch approved on the first try, so don\u0027t be\n    concerned if requested to make corrections. Feel free to modify your patch\n    and resubmit a new change-set.\n\n    Patches usually take 3 to 7 days to be reviewed so be patient and be\n    available on IRC to ask and answer questions about your work. Also it\n    takes generally at least a couple of weeks for cores to get around to\n    reviewing code. The more you participate in the community the more\n    rewarding it is for you. You may also notice that the more you get to know\n    people and get to be known, the faster your patches will be reviewed and\n    eventually approved. Get to know others and become known by doing code\n    reviews: anybody can do it, and it\u0027s a great way to learn the code base.\n\n    Thanks again for supporting OpenStack, we look forward to working with you.\n\n    IRC: https://wiki.openstack.org/wiki/IRC\n    Workflow: http://docs.openstack.org/infra/manual/developers.html\n    Commit Messages: https://wiki.openstack.org/wiki/GitCommitMessages","accounts_in_message":[],"_revision_number":1},{"id":"65c59c33cda7201116170c95d6754b1785cb1e30","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-11-12 02:29:29.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see http://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n- gate-python-glanceclient-docs-ubuntu-xenial http://docs-draft.openstack.org/16/396816/1/check/gate-python-glanceclient-docs-ubuntu-xenial/8615700//doc/build/html/ : SUCCESS in 2m 09s\n- gate-python-glanceclient-pep8-ubuntu-xenial http://logs.openstack.org/16/396816/1/check/gate-python-glanceclient-pep8-ubuntu-xenial/4334e92/ : FAILURE in 2m 09s\n- gate-python-glanceclient-python27-ubuntu-xenial http://logs.openstack.org/16/396816/1/check/gate-python-glanceclient-python27-ubuntu-xenial/aab8df3/ : SUCCESS in 3m 29s\n- gate-python-glanceclient-python34 http://logs.openstack.org/16/396816/1/check/gate-python-glanceclient-python34/bca7a29/ : SUCCESS in 2m 25s\n- gate-python-glanceclient-python35-nv http://logs.openstack.org/16/396816/1/check/gate-python-glanceclient-python35-nv/780da6e/ : SUCCESS in 2m 23s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-glanceclient http://logs.openstack.org/16/396816/1/check/gate-tempest-dsvm-neutron-src-python-glanceclient/612ab4a/ : SUCCESS in 43m 11s\n- gate-glanceclient-dsvm-functional http://logs.openstack.org/16/396816/1/check/gate-glanceclient-dsvm-functional/2cb5c0e/ : SUCCESS in 16m 20s\n- gate-glanceclient-dsvm-functional-identity-v3-only-nv http://logs.openstack.org/16/396816/1/check/gate-glanceclient-dsvm-functional-identity-v3-only-nv/b5a90a8/ : FAILURE in 15m 47s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"7fa6eadb8b2421ba557dbf82dd5348266701e307","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-11-12 03:16:45.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"f398624328ff5cb04d7625812ee9783e8a94eb43","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-11-12 03:58:24.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-glanceclient-docs-ubuntu-xenial http://docs-draft.openstack.org/16/396816/2/check/gate-python-glanceclient-docs-ubuntu-xenial/4e91b7b//doc/build/html/ : SUCCESS in 2m 10s\n- gate-python-glanceclient-pep8-ubuntu-xenial http://logs.openstack.org/16/396816/2/check/gate-python-glanceclient-pep8-ubuntu-xenial/ba20fc9/ : SUCCESS in 2m 08s\n- gate-python-glanceclient-python27-ubuntu-xenial http://logs.openstack.org/16/396816/2/check/gate-python-glanceclient-python27-ubuntu-xenial/8a6ef83/ : SUCCESS in 2m 18s\n- gate-python-glanceclient-python34 http://logs.openstack.org/16/396816/2/check/gate-python-glanceclient-python34/fa7a4f7/ : SUCCESS in 2m 20s\n- gate-python-glanceclient-python35-nv http://logs.openstack.org/16/396816/2/check/gate-python-glanceclient-python35-nv/292a315/ : SUCCESS in 2m 56s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-glanceclient http://logs.openstack.org/16/396816/2/check/gate-tempest-dsvm-neutron-src-python-glanceclient/313e7a0/ : SUCCESS in 41m 26s\n- gate-glanceclient-dsvm-functional http://logs.openstack.org/16/396816/2/check/gate-glanceclient-dsvm-functional/8e2e127/ : SUCCESS in 35m 26s\n- gate-glanceclient-dsvm-functional-identity-v3-only-nv http://logs.openstack.org/16/396816/2/check/gate-glanceclient-dsvm-functional-identity-v3-only-nv/364553c/ : FAILURE in 16m 33s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"ac5aedecad9f2add7a5468119af15c402189427a","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-11-12 04:00:52.000000000","message":"Patch Set 2: Code-Review+1","accounts_in_message":[],"_revision_number":2},{"id":"c1089ec5bacda888d19764e44e3f4c5c66fa4b0c","author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"date":"2016-11-16 16:59:55.000000000","message":"Patch Set 2: Code-Review-1\n\nI think there should be a unit test to go along with this change.","accounts_in_message":[],"_revision_number":2},{"id":"a204ecef7499520146211e872dd20dc2afb3f619","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-11-19 21:36:51.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"240fefa9edbbbd7cf763ccc3cd1e26c7a6f85031","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-11-19 21:40:47.000000000","message":"Patch Set 3: Code-Review+1","accounts_in_message":[],"_revision_number":3},{"id":"9e1906136c1cf69fda87cd2ea0231c9f7197860c","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-11-19 21:42:34.000000000","message":"Patch Set 4: Patch Set 3 was rebased","accounts_in_message":[],"_revision_number":3},{"id":"9ba34f5e6fc7d6599187348b74cd557ea94462f9","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-11-19 22:35:04.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-glanceclient-docs-ubuntu-xenial http://docs-draft.openstack.org/16/396816/4/check/gate-python-glanceclient-docs-ubuntu-xenial/4436fd1//doc/build/html/ : SUCCESS in 2m 06s\n- gate-python-glanceclient-pep8-ubuntu-xenial http://logs.openstack.org/16/396816/4/check/gate-python-glanceclient-pep8-ubuntu-xenial/709d3c3/ : SUCCESS in 2m 19s\n- gate-python-glanceclient-python27-ubuntu-xenial http://logs.openstack.org/16/396816/4/check/gate-python-glanceclient-python27-ubuntu-xenial/9681e6a/ : SUCCESS in 3m 22s\n- gate-python-glanceclient-python34 http://logs.openstack.org/16/396816/4/check/gate-python-glanceclient-python34/e440e5a/ : SUCCESS in 2m 51s\n- gate-python-glanceclient-python35-nv http://logs.openstack.org/16/396816/4/check/gate-python-glanceclient-python35-nv/598bfb5/ : SUCCESS in 2m 53s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-glanceclient http://logs.openstack.org/16/396816/4/check/gate-tempest-dsvm-neutron-src-python-glanceclient/1305bc7/ : SUCCESS in 43m 14s\n- gate-glanceclient-dsvm-functional http://logs.openstack.org/16/396816/4/check/gate-glanceclient-dsvm-functional/75c20f8/ : SUCCESS in 15m 51s\n- gate-glanceclient-dsvm-functional-identity-v3-only-nv http://logs.openstack.org/16/396816/4/check/gate-glanceclient-dsvm-functional-identity-v3-only-nv/e4db38a/ : FAILURE in 28m 27s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"33e4a58a78858471224fa80727bbd816d91beb03","author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"date":"2016-11-21 20:09:31.000000000","message":"Patch Set 4: Code-Review-1\n\nHi Carlos. The new unit test passes with both new and old (unchanged) version of http.py. So I am not sure what it is that was fixed and what is being tested. Can you clarify? I\u0027d like to independently confirm the associated bug: https://bugs.launchpad.net/python-glanceclient/+bug/1641239. Can you also provide information on how to do that, either here or in the bug description.","accounts_in_message":[],"_revision_number":4},{"id":"2f91bd7ac4e087d3e04bff5b7a4244ed4b2a465c","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-11-21 23:00:41.000000000","message":"Patch Set 4: -Code-Review\n\nThe old code works with python2 but not with python3. Can you confirm that your run of the unit test uses both python versions? From my end I will double-check that I am testing the right thing in the test case.","accounts_in_message":[],"_revision_number":4},{"id":"90c7b024f6e695cb49b955ecffd87b3ba855550b","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-11-22 03:55:42.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"74a071ee8e60211254d6329d3b16d9cb7f51a8cd","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-11-22 03:58:49.000000000","message":"Uploaded patch set 6.","accounts_in_message":[],"_revision_number":6},{"id":"a09fa4f10520fd7b8c495a8684441206e31349be","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-11-22 04:04:34.000000000","message":"Patch Set 6:\n\nThe comment in encode_headers() says \"This should be used right before sending anything out.\" That\u0027s the new tactic. The old code did not obey this.","accounts_in_message":[],"_revision_number":6},{"id":"5669b9b110bc3e4d643144aa4ce01c651966bd31","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-11-22 04:45:16.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-glanceclient-docs-ubuntu-xenial http://docs-draft.openstack.org/16/396816/6/check/gate-python-glanceclient-docs-ubuntu-xenial/93c0c99//doc/build/html/ : SUCCESS in 2m 23s\n- gate-python-glanceclient-pep8-ubuntu-xenial http://logs.openstack.org/16/396816/6/check/gate-python-glanceclient-pep8-ubuntu-xenial/64a82f1/ : SUCCESS in 2m 24s\n- gate-python-glanceclient-python27-ubuntu-xenial http://logs.openstack.org/16/396816/6/check/gate-python-glanceclient-python27-ubuntu-xenial/10654e5/ : SUCCESS in 3m 44s\n- gate-python-glanceclient-python34 http://logs.openstack.org/16/396816/6/check/gate-python-glanceclient-python34/c751f1b/ : SUCCESS in 2m 29s\n- gate-python-glanceclient-python35-nv http://logs.openstack.org/16/396816/6/check/gate-python-glanceclient-python35-nv/408defe/ : SUCCESS in 3m 37s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-glanceclient http://logs.openstack.org/16/396816/6/check/gate-tempest-dsvm-neutron-src-python-glanceclient/ad46483/ : SUCCESS in 46m 15s\n- gate-glanceclient-dsvm-functional http://logs.openstack.org/16/396816/6/check/gate-glanceclient-dsvm-functional/5f0f1e9/ : SUCCESS in 29m 34s\n- gate-glanceclient-dsvm-functional-identity-v3-only-nv http://logs.openstack.org/16/396816/6/check/gate-glanceclient-dsvm-functional-identity-v3-only-nv/d2b9cdf/ : FAILURE in 15m 32s (non-voting)","accounts_in_message":[],"_revision_number":6},{"id":"9debb410db40be965ed932eb78f584880784a68d","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-11-22 13:51:04.000000000","message":"Patch Set 6: Code-Review+1","accounts_in_message":[],"_revision_number":6},{"id":"ea4e65c0db955d36e9acd6cc61fd8f0f2a2dabc0","author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"date":"2016-11-22 14:53:30.000000000","message":"Patch Set 6:\n\nHow about that unit test?","accounts_in_message":[],"_revision_number":6},{"id":"d0846fbe95656a4dd1b6d8956864e8a260edb4f5","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-11-22 15:00:58.000000000","message":"Patch Set 6:\n\nThe unit test that I wrote for the earlier version of this review is no longer relevant. I am not changing _set_common_request_kwargs(). If a unit test is still needed, then the first step is to decide what needs testing.","accounts_in_message":[],"_revision_number":6},{"id":"50881471374b1288ca1ea5e40e150c4f51536a37","author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"date":"2016-11-22 15:58:35.000000000","message":"Patch Set 6:\n\nThis change is purporting to fix a bug. Therefore a test needs to be written such that it would fail without this change and pass with it. Since the bug in question has not been confirmed and has no steps listed for reproducing, it is doubly imperative that there be a test that shows why this change is necessary.","accounts_in_message":[],"_revision_number":6},{"id":"3f1463441b53573638f93ecdb29bf5d3374a43b9","author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"date":"2016-11-22 15:58:42.000000000","message":"Patch Set 6: Code-Review-1","accounts_in_message":[],"_revision_number":6},{"id":"40d6014f329aafed7ea34f587a93a6deabe39f75","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-11-22 18:19:22.000000000","message":"Uploaded patch set 7.","accounts_in_message":[],"_revision_number":7},{"id":"10885f11390115f14b22caadf47857746b4af53a","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-11-22 19:09:51.000000000","message":"Patch Set 7: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-glanceclient-docs-ubuntu-xenial http://docs-draft.openstack.org/16/396816/7/check/gate-python-glanceclient-docs-ubuntu-xenial/a8f9a87//doc/build/html/ : SUCCESS in 3m 50s\n- gate-python-glanceclient-pep8-ubuntu-xenial http://logs.openstack.org/16/396816/7/check/gate-python-glanceclient-pep8-ubuntu-xenial/61cf1a4/ : SUCCESS in 3m 51s\n- gate-python-glanceclient-python27-ubuntu-xenial http://logs.openstack.org/16/396816/7/check/gate-python-glanceclient-python27-ubuntu-xenial/056cee6/ : SUCCESS in 4m 35s\n- gate-python-glanceclient-python34 http://logs.openstack.org/16/396816/7/check/gate-python-glanceclient-python34/819820a/ : SUCCESS in 6m 16s\n- gate-python-glanceclient-python35-nv http://logs.openstack.org/16/396816/7/check/gate-python-glanceclient-python35-nv/f74fa27/ : SUCCESS in 3m 42s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-glanceclient http://logs.openstack.org/16/396816/7/check/gate-tempest-dsvm-neutron-src-python-glanceclient/ec23324/ : SUCCESS in 46m 14s\n- gate-glanceclient-dsvm-functional http://logs.openstack.org/16/396816/7/check/gate-glanceclient-dsvm-functional/f1a018d/ : SUCCESS in 21m 13s\n- gate-glanceclient-dsvm-functional-identity-v3-only-nv http://logs.openstack.org/16/396816/7/check/gate-glanceclient-dsvm-functional-identity-v3-only-nv/f80be81/ : FAILURE in 20m 08s (non-voting)","accounts_in_message":[],"_revision_number":7},{"id":"d732eb1f9799d2828b27861af1f410069e87e2c8","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-11-22 19:27:40.000000000","message":"Patch Set 7: Code-Review+1","accounts_in_message":[],"_revision_number":7},{"id":"d97c60070c1ec86e91a1422656c5ac75f2b7696f","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-11-22 19:36:46.000000000","message":"Uploaded patch set 8.","accounts_in_message":[],"_revision_number":8},{"id":"4cb8e06253340c291a209f508e664eff1cf5ed25","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-11-22 19:37:35.000000000","message":"Patch Set 8: Code-Review+1\n\nAdded comments to the unit test. Should be ready now.","accounts_in_message":[],"_revision_number":8},{"id":"26ae066996315a9cde7a8fa60926618dfbe8b040","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-11-22 20:21:20.000000000","message":"Patch Set 8: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-glanceclient-docs-ubuntu-xenial http://docs-draft.openstack.org/16/396816/8/check/gate-python-glanceclient-docs-ubuntu-xenial/16ca320//doc/build/html/ : SUCCESS in 2m 22s\n- gate-python-glanceclient-pep8-ubuntu-xenial http://logs.openstack.org/16/396816/8/check/gate-python-glanceclient-pep8-ubuntu-xenial/c8b6f0e/ : SUCCESS in 2m 23s\n- gate-python-glanceclient-python27-ubuntu-xenial http://logs.openstack.org/16/396816/8/check/gate-python-glanceclient-python27-ubuntu-xenial/6b31c36/ : SUCCESS in 2m 22s\n- gate-python-glanceclient-python34 http://logs.openstack.org/16/396816/8/check/gate-python-glanceclient-python34/2c32661/ : SUCCESS in 2m 56s\n- gate-python-glanceclient-python35-nv http://logs.openstack.org/16/396816/8/check/gate-python-glanceclient-python35-nv/dc0098f/ : SUCCESS in 3m 45s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-glanceclient http://logs.openstack.org/16/396816/8/check/gate-tempest-dsvm-neutron-src-python-glanceclient/d15b8f0/ : SUCCESS in 44m 18s\n- gate-glanceclient-dsvm-functional http://logs.openstack.org/16/396816/8/check/gate-glanceclient-dsvm-functional/f1b6c5b/ : SUCCESS in 16m 29s\n- gate-glanceclient-dsvm-functional-identity-v3-only-nv http://logs.openstack.org/16/396816/8/check/gate-glanceclient-dsvm-functional-identity-v3-only-nv/b273e9f/ : FAILURE in 30m 08s (non-voting)","accounts_in_message":[],"_revision_number":8},{"id":"29df3e2bdd23814daf4db923a75546a11b8c773d","author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"date":"2016-11-22 21:59:48.000000000","message":"Patch Set 8: Code-Review-1\n\nThank you Carlos for sticking with this. Not trying to make your life difficult, but once again, your unit test is not testing the change that you made. It passes with both old and new versions of http.py (python2.7 and 3.4). Since you modified the SessionClient.request() method, you should be testing it directly, in such a manner that your new test fails without your changes and passes with them.","accounts_in_message":[],"_revision_number":8},{"id":"d69fcf09db11fcc603107cf51a4c25dc35d6582d","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-11-26 00:23:55.000000000","message":"Patch Set 8: -Code-Review\n\nThere is a major issue with writing the unit test as has been suggested. The problem will not manifest itself until the request is actually sent. I need to get a 415 back in the response. If I don\u0027t hit a real glance API endpoint, I will not see the issue. A mock request is not going to cut it. I could mock what happens in real life, but it won\u0027t prove any correlation between the mock and a real API call. Therefore I can see no way forward with any implementation that involves calling SessionClient.request().","accounts_in_message":[],"_revision_number":8},{"id":"4417817480351cbd13f67991dffe9b36184f68ea","author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"date":"2016-11-28 17:42:18.000000000","message":"Patch Set 8: Code-Review-1\n\nYou need to use a functional testing approach here.\n\nSee also glanceclient/tests/functional/README.rst in the python-glanceclient repo.","accounts_in_message":[],"_revision_number":8},{"id":"f652de50f5aa70e6e5af0e9aa80ed9c40534c5cb","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-12-06 18:50:09.000000000","message":"Uploaded patch set 9.","accounts_in_message":[],"_revision_number":9},{"id":"aea83d999de6876511f9f9a2db171aff26c9da17","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-12-06 18:50:31.000000000","message":"Patch Set 9: Workflow-1","accounts_in_message":[],"_revision_number":9},{"id":"612a43ccb506d1f38948bb56af09f1faffa0ec8c","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-12-06 19:41:38.000000000","message":"Patch Set 9: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see http://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n- gate-python-glanceclient-docs-ubuntu-xenial http://docs-draft.openstack.org/16/396816/9/check/gate-python-glanceclient-docs-ubuntu-xenial/4adbf2b//doc/build/html/ : SUCCESS in 2m 19s\n- gate-python-glanceclient-pep8-ubuntu-xenial http://logs.openstack.org/16/396816/9/check/gate-python-glanceclient-pep8-ubuntu-xenial/d85707e/ : SUCCESS in 2m 34s\n- gate-python-glanceclient-python27-ubuntu-xenial http://logs.openstack.org/16/396816/9/check/gate-python-glanceclient-python27-ubuntu-xenial/6610606/ : SUCCESS in 4m 59s\n- gate-python-glanceclient-python34 http://logs.openstack.org/16/396816/9/check/gate-python-glanceclient-python34/6b5cc2f/ : SUCCESS in 2m 33s\n- gate-python-glanceclient-python35-nv http://logs.openstack.org/16/396816/9/check/gate-python-glanceclient-python35-nv/db66c61/ : SUCCESS in 2m 41s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial http://logs.openstack.org/16/396816/9/check/gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial/9d27a9f/ : SUCCESS in 49m 47s\n- gate-glanceclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/16/396816/9/check/gate-glanceclient-dsvm-functional-ubuntu-xenial/dfec9d9/ : FAILURE in 17m 02s\n- gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/16/396816/9/check/gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/f6b541c/ : FAILURE in 15m 41s (non-voting)","accounts_in_message":[],"_revision_number":9},{"id":"7d761cd569a332fe55d22ccdfc2aa90b9d77fdfc","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-12-07 21:26:27.000000000","message":"Uploaded patch set 10.","accounts_in_message":[],"_revision_number":10},{"id":"7a43aa85fa5fcba50b23d33889bc28cd4f7600b3","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-12-07 21:33:15.000000000","message":"Patch Set 10: Code-Review-1 Workflow-1","accounts_in_message":[],"_revision_number":10},{"id":"49a79b89b204b255997e261f57cfe23ff90a1769","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-12-07 21:34:44.000000000","message":"Uploaded patch set 11.","accounts_in_message":[],"_revision_number":11},{"id":"d5326643586988d0b8d9ba6aafa6b521cdb9f75b","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-12-07 22:24:07.000000000","message":"Patch Set 11: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-glanceclient-docs-ubuntu-xenial http://docs-draft.openstack.org/16/396816/11/check/gate-python-glanceclient-docs-ubuntu-xenial/cbe5fc7//doc/build/html/ : SUCCESS in 2m 49s\n- gate-python-glanceclient-pep8-ubuntu-xenial http://logs.openstack.org/16/396816/11/check/gate-python-glanceclient-pep8-ubuntu-xenial/e2e3dd9/ : SUCCESS in 4m 13s\n- gate-python-glanceclient-python27-ubuntu-xenial http://logs.openstack.org/16/396816/11/check/gate-python-glanceclient-python27-ubuntu-xenial/fb51547/ : SUCCESS in 3m 25s\n- gate-python-glanceclient-python34 http://logs.openstack.org/16/396816/11/check/gate-python-glanceclient-python34/739aacb/ : SUCCESS in 4m 49s\n- gate-python-glanceclient-python35-nv http://logs.openstack.org/16/396816/11/check/gate-python-glanceclient-python35-nv/2e0bebb/ : SUCCESS in 3m 59s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial http://logs.openstack.org/16/396816/11/check/gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial/12b0074/ : SUCCESS in 48m 45s\n- gate-glanceclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/16/396816/11/check/gate-glanceclient-dsvm-functional-ubuntu-xenial/2af0307/ : SUCCESS in 17m 03s\n- gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/16/396816/11/check/gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/7931b63/ : FAILURE in 25m 23s (non-voting)","accounts_in_message":[],"_revision_number":11},{"id":"38c438d67cabeecf760f6053a27a07c46dad2cf6","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-12-07 22:29:26.000000000","message":"Patch Set 11: Code-Review+1\n\nFunctional test iteration #1.","accounts_in_message":[],"_revision_number":11},{"id":"eb5ec620872f6a26afb0d6ef220af3be8b8fd6f9","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-12-07 22:35:35.000000000","message":"Patch Set 11: -Code-Review","accounts_in_message":[],"_revision_number":11},{"id":"fe98c0f4a05f6dee890d754cbbfdc4bfb5799d24","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-12-08 00:03:02.000000000","message":"Patch Set 11: Code-Review-1 Workflow-1\n\nJust noticed some superfluous code.","accounts_in_message":[],"_revision_number":11},{"id":"09111c2eceb76fc72816f093ad731a44e13298bc","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-12-08 00:09:05.000000000","message":"Uploaded patch set 12.","accounts_in_message":[],"_revision_number":12},{"id":"06519d2a005dced83a321cc108db5e80816e9e8c","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-12-08 01:13:34.000000000","message":"Patch Set 12: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-glanceclient-docs-ubuntu-xenial http://docs-draft.openstack.org/16/396816/12/check/gate-python-glanceclient-docs-ubuntu-xenial/753158f//doc/build/html/ : SUCCESS in 2m 08s\n- gate-python-glanceclient-pep8-ubuntu-xenial http://logs.openstack.org/16/396816/12/check/gate-python-glanceclient-pep8-ubuntu-xenial/065fd8f/ : SUCCESS in 2m 25s\n- gate-python-glanceclient-python27-ubuntu-xenial http://logs.openstack.org/16/396816/12/check/gate-python-glanceclient-python27-ubuntu-xenial/123d405/ : SUCCESS in 2m 21s\n- gate-python-glanceclient-python34 http://logs.openstack.org/16/396816/12/check/gate-python-glanceclient-python34/53d1fcb/ : SUCCESS in 4m 22s\n- gate-python-glanceclient-python35-nv http://logs.openstack.org/16/396816/12/check/gate-python-glanceclient-python35-nv/378054b/ : SUCCESS in 2m 30s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial http://logs.openstack.org/16/396816/12/check/gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial/262279b/ : SUCCESS in 1h 04m 03s\n- gate-glanceclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/16/396816/12/check/gate-glanceclient-dsvm-functional-ubuntu-xenial/aa592b3/ : SUCCESS in 15m 52s\n- gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/16/396816/12/check/gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/9e970ee/ : FAILURE in 16m 03s (non-voting)","accounts_in_message":[],"_revision_number":12},{"id":"622d4b5c91aeec4db0a64b1662aa11b6b5e2993b","author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"date":"2016-12-16 10:22:12.000000000","message":"Patch Set 12:\n\n(1 comment)\n\nThanks for good fix!\nIn my personal opinion, func test are good but not required for this fix. IMO simple unit test that launches request method under py3 environment should be enough.\nIn this case you just need to check that set_common_request_kwargs didn\u0027t add any additional headers and that\u0027s all. I\u0027ll personally +2 this solution.","accounts_in_message":[],"_revision_number":12},{"id":"dbde340e1a05cd2b40d417959cbb679ca6b8ae8d","author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"date":"2016-12-16 10:22:16.000000000","message":"Patch Set 12: Code-Review-1","accounts_in_message":[],"_revision_number":12},{"id":"fa2a3e14565fb05bc574a7e4f03c5a2e7f863199","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-12-16 14:23:52.000000000","message":"Patch Set 12:\n\n(1 comment)\n\nI had such a test written previously and was then steered in the functional test direction. I know which one I personally prefer, but I won\u0027t weigh in publicly. I only ask that a consensus is reached among those with +2 so I can direct my efforts toward a solution that will be accepted.","accounts_in_message":[],"_revision_number":12},{"id":"c676320dd642f4166ddc1b2a3b8d5dad1be4d70f","author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"date":"2016-12-16 14:29:34.000000000","message":"Patch Set 12:\n\nSo you can stick with func tests also, this is not a reason for -1 from my side. However, it is also not required IMO.","accounts_in_message":[],"_revision_number":12},{"id":"9e3760e8854a02a60a189ff5a9cb3fd4b913f86b","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-12-16 14:33:40.000000000","message":"Patch Set 12:\n\nTBH a unit test is better at catching the problem. The functional test fails only intermittently. It all depends on which of the multiple Content-Type headers actually ends up in the HTTP request, which is rather random. But examining the headers dict is a sure way to spot the problem every time.","accounts_in_message":[],"_revision_number":12},{"id":"9bcbe551ae765bf1b36575dc2a40f3d6bce9d9c5","author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"date":"2016-12-16 14:54:34.000000000","message":"Patch Set 12:\n\nYeah, so as I said I would +2\u0027d the patch with unit test\u003d).","accounts_in_message":[],"_revision_number":12},{"id":"b7da11611a7b8afd6e1afd8d34f39e87ab3e955d","author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"date":"2016-12-16 14:55:04.000000000","message":"Patch Set 12:\n\nSo if any other core will agree on this then your patch might be merged ;\u003d)","accounts_in_message":[],"_revision_number":12},{"id":"388531700cc3d5f38a501a0d4b2698710ccc56e4","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-12-16 15:02:41.000000000","message":"Patch Set 12:\n\nSounds like a deal. I want Steve\u0027s opinion before I do anything.","accounts_in_message":[],"_revision_number":12},{"id":"458c2feae55f39bae8d7dd983c5a54c7bc63c847","author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"date":"2016-12-16 23:20:13.000000000","message":"Patch Set 12:\n\n(6 comments)\n\nThanks for driving the functional testing use here.\n\nI recall you had a unit test back around patch set 4. You can revive that for Kairat\u0027s review.\n\nSome feedback inline. I\u0027ll note that for the note on the Content-Type header in the docstring I suspect that is a variant of the microversion but haven\u0027t looked and am hoping someone will verify or deny so I don\u0027t have to do the hard part of figuring it out myself.","accounts_in_message":[],"_revision_number":12},{"id":"9b7c1f5e0ed4e1effd6ac39cef30ba2f50470c65","author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"date":"2016-12-16 23:20:17.000000000","message":"Patch Set 12: Code-Review-1","accounts_in_message":[],"_revision_number":12},{"id":"176f3675b28e09649217e4fe8f8ec3c9f123bf04","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-12-16 23:34:40.000000000","message":"Patch Set 12:\n\nThanks for the review. I feel like the end is in sight.","accounts_in_message":[],"_revision_number":12},{"id":"a8064a4d78abe5e2473a329503a73ffdd6fc228f","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-12-19 19:53:40.000000000","message":"Uploaded patch set 13.","accounts_in_message":[],"_revision_number":13},{"id":"9cbf25e08627a3514d3be373c1cad210344e4f23","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-12-19 21:10:54.000000000","message":"Patch Set 13: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-glanceclient-docs-ubuntu-xenial http://docs-draft.openstack.org/16/396816/13/check/gate-python-glanceclient-docs-ubuntu-xenial/c40d4f0//doc/build/html/ : SUCCESS in 2m 36s\n- gate-python-glanceclient-pep8-ubuntu-xenial http://logs.openstack.org/16/396816/13/check/gate-python-glanceclient-pep8-ubuntu-xenial/75c7902/ : SUCCESS in 2m 41s\n- gate-python-glanceclient-python27-ubuntu-xenial http://logs.openstack.org/16/396816/13/check/gate-python-glanceclient-python27-ubuntu-xenial/598d169/ : SUCCESS in 2m 41s\n- gate-python-glanceclient-python35 http://logs.openstack.org/16/396816/13/check/gate-python-glanceclient-python35/1b8b326/ : SUCCESS in 3m 55s\n- gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial http://logs.openstack.org/16/396816/13/check/gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial/1af35e7/ : SUCCESS in 1h 16m 07s\n- gate-glanceclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/16/396816/13/check/gate-glanceclient-dsvm-functional-ubuntu-xenial/36d4d10/ : SUCCESS in 19m 02s\n- gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/16/396816/13/check/gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/f5a7329/ : FAILURE in 29m 44s (non-voting)","accounts_in_message":[],"_revision_number":13},{"id":"140c75056c181be775988b94313ff9395479bc0b","author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"date":"2016-12-20 17:02:23.000000000","message":"Patch Set 13:\n\n(1 comment)","accounts_in_message":[],"_revision_number":13},{"id":"c6c1a240b5d8e489581d4920f417b96a4053a664","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-12-20 17:16:15.000000000","message":"Patch Set 13:\n\nI found that unless I reobtained the glanceclient AND added the sleep, it would just keep using the same Content-Type header in all iterations. I guess I don\u0027t understand how it chooses which Content-Type header to use if multiples are provided. This would be somewhere in the requests module I assume. Anyway that\u0027s why the loop encompasses the entire block of code and why there is a sleep.","accounts_in_message":[],"_revision_number":13},{"id":"a8775f9a3e1f01aff0cdb396c223235c46b3c562","author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"date":"2016-12-20 17:49:40.000000000","message":"Patch Set 13: Code-Review-1\n\nInteresting that it works out that way, and really makes me want to understand what is non-deterministic about the request. Perhaps creating a new client in the try block for use with the update command allows a tighter retry?\n\nThis functional test is a small problem in my mind because of the sleep and without the retries it is too non-deterministic to have value because it cannot be relied upon to quickly spot a regression. \n\nI\u0027m inclined to recommend to identify the source of non-determinism because the nature of the fix is such that a regression is a meaningful risk over time. The alternative is to drop the functional test.\n\nEither way, we need to restore the unit test still.","accounts_in_message":[],"_revision_number":13},{"id":"603a910a03ae124a033f13596793990d5204f451","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-12-28 18:47:07.000000000","message":"Patch Set 13:\n\nFound the place where the Content-Type headers are being munged: prepare_headers() in requests/models.py:420. This line:\n\nself.headers[to_native_string(name)] \u003d value\n\nis where it happens. The passed-in headers dict is being copied into a new dict one key/value pair at a time. We have one header named \u0027Content-Type\u0027 and another named b\u0027Content-Type\u0027. Both strings reduce to \u0027Content-Type\u0027 when subjected to_native_string(). So whichever of the two headers is encountered last is the one that survives since it overwrites the first one.\n\nThe apparent randomness of which header survives is still not firmly established. It must be a consequence of how the dict happens to be ordered. The specification states that dicts are unordered, meaning we cannot rely on the ordering.\n\nThis is in the requests library. We have no control over it.","accounts_in_message":[],"_revision_number":13},{"id":"8cf97675736cde3616a706ebe00bc3e05ef86cd3","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-12-28 18:48:28.000000000","message":"Patch Set 13:\n\nI will restore the unit test. It is still an open question whether we keep the functional test. The outcome was dependent on the answer to the question of where the headers are being munged and how.","accounts_in_message":[],"_revision_number":13},{"id":"4a368b323e2e03780c365d725133de7dba512f9b","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-12-28 18:58:46.000000000","message":"Patch Set 13:\n\nI can reproduce the issue with a very simple bit of test code that is completely removed from openstack.","accounts_in_message":[],"_revision_number":13},{"id":"4a5ad62f8bb74213bfed3900a70d9af48051a610","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-12-29 03:59:27.000000000","message":"Uploaded patch set 14.","accounts_in_message":[],"_revision_number":14},{"id":"ddea72072e3a903447c8d200639d3edd36cdc5ea","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-12-29 04:23:48.000000000","message":"Patch Set 14:\n\nThere was no way to write a unit test against the existing request() method in such a way that it could extract information about how it processes the headers. I chose to put some error-checking into the request() method instead. Then the unit test became a very simple matter. It either works or it dies with an exception within request() itself.","accounts_in_message":[],"_revision_number":14},{"id":"1c3a1fa42f99d1400b68564204bd01809ae22aea","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-12-29 04:56:26.000000000","message":"Patch Set 14: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see http://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n- gate-python-glanceclient-docs-ubuntu-xenial http://docs-draft.openstack.org/16/396816/14/check/gate-python-glanceclient-docs-ubuntu-xenial/b13197f//doc/build/html/ : SUCCESS in 2m 09s\n- gate-python-glanceclient-pep8-ubuntu-xenial http://logs.openstack.org/16/396816/14/check/gate-python-glanceclient-pep8-ubuntu-xenial/002b2bc/ : FAILURE in 2m 53s\n- gate-python-glanceclient-python27-ubuntu-xenial http://logs.openstack.org/16/396816/14/check/gate-python-glanceclient-python27-ubuntu-xenial/bbeb169/ : SUCCESS in 4m 10s\n- gate-python-glanceclient-python35 http://logs.openstack.org/16/396816/14/check/gate-python-glanceclient-python35/14805fb/ : SUCCESS in 4m 15s\n- gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial http://logs.openstack.org/16/396816/14/check/gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial/c88013a/ : SUCCESS in 54m 15s\n- gate-glanceclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/16/396816/14/check/gate-glanceclient-dsvm-functional-ubuntu-xenial/202523e/ : FAILURE in 56m 47s\n- gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/16/396816/14/check/gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/fe3b493/ : FAILURE in 29m 34s (non-voting)","accounts_in_message":[],"_revision_number":14},{"id":"0e4fb628c5cbd6111925806584f1732bf9f352cd","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-12-29 15:08:24.000000000","message":"Uploaded patch set 15.","accounts_in_message":[],"_revision_number":15},{"id":"161c1299714bd117747b41da8be16dac2521053e","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-12-29 16:02:11.000000000","message":"Patch Set 15: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see http://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n- gate-python-glanceclient-docs-ubuntu-xenial http://docs-draft.openstack.org/16/396816/15/check/gate-python-glanceclient-docs-ubuntu-xenial/f9373c1//doc/build/html/ : SUCCESS in 2m 18s\n- gate-python-glanceclient-pep8-ubuntu-xenial http://logs.openstack.org/16/396816/15/check/gate-python-glanceclient-pep8-ubuntu-xenial/1178909/ : FAILURE in 2m 21s\n- gate-python-glanceclient-python27-ubuntu-xenial http://logs.openstack.org/16/396816/15/check/gate-python-glanceclient-python27-ubuntu-xenial/b1cfd5c/ : SUCCESS in 2m 23s\n- gate-python-glanceclient-python35 http://logs.openstack.org/16/396816/15/check/gate-python-glanceclient-python35/4b1bbc4/ : SUCCESS in 4m 44s\n- gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial http://logs.openstack.org/16/396816/15/check/gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial/c267125/ : SUCCESS in 53m 06s\n- gate-glanceclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/16/396816/15/check/gate-glanceclient-dsvm-functional-ubuntu-xenial/4d7b6da/ : SUCCESS in 17m 58s\n- gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/16/396816/15/check/gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/7dcf520/ : FAILURE in 17m 25s (non-voting)","accounts_in_message":[],"_revision_number":15},{"id":"1ae9bda608773f03b6b8e0ca5646a52cf8a55133","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-12-29 16:22:41.000000000","message":"Uploaded patch set 16.","accounts_in_message":[],"_revision_number":16},{"id":"ddff19dae57e96186074c651a0fccfe53f7e66ad","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-12-29 17:18:38.000000000","message":"Patch Set 16: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-glanceclient-docs-ubuntu-xenial http://docs-draft.openstack.org/16/396816/16/check/gate-python-glanceclient-docs-ubuntu-xenial/ddc6cd7//doc/build/html/ : SUCCESS in 3m 20s\n- gate-python-glanceclient-pep8-ubuntu-xenial http://logs.openstack.org/16/396816/16/check/gate-python-glanceclient-pep8-ubuntu-xenial/6edc309/ : SUCCESS in 4m 54s\n- gate-python-glanceclient-python27-ubuntu-xenial http://logs.openstack.org/16/396816/16/check/gate-python-glanceclient-python27-ubuntu-xenial/0240601/ : SUCCESS in 2m 19s\n- gate-python-glanceclient-python35 http://logs.openstack.org/16/396816/16/check/gate-python-glanceclient-python35/d41c943/ : SUCCESS in 2m 21s\n- gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial http://logs.openstack.org/16/396816/16/check/gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial/4793048/ : SUCCESS in 55m 04s\n- gate-glanceclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/16/396816/16/check/gate-glanceclient-dsvm-functional-ubuntu-xenial/9c949f2/ : SUCCESS in 17m 38s\n- gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/16/396816/16/check/gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/e39a0a7/ : FAILURE in 17m 56s (non-voting)","accounts_in_message":[],"_revision_number":16},{"id":"d220ad0c99d7f1cd29dc501d260831c90db221b3","author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"date":"2016-12-30 17:55:25.000000000","message":"Patch Set 16: Code-Review-1\n\n(1 comment)\n\nHi Carlos,\nNice change. But I have few concerns. Please see my comments inline.\nAlso, can you please add a unit test that checks that we do not have 2 Content-Types before and after the call to request(), as that is what we actually want to check here?","accounts_in_message":[],"_revision_number":16},{"id":"27a6e8f1dd495bd3ec486c2b83fdf8fc5b038f32","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2016-12-30 18:21:27.000000000","message":"Patch Set 16:\n\n(2 comments)","accounts_in_message":[],"_revision_number":16},{"id":"f65781a3618405f36fb4d45d1e418916603a8b46","author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"date":"2016-12-30 21:13:36.000000000","message":"Patch Set 16:\n\n(1 comment)","accounts_in_message":[],"_revision_number":16},{"id":"291a6d515c69921b1d0d3677bdb4e885a4725186","author":{"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"},"date":"2017-04-03 12:50:44.000000000","message":"Uploaded patch set 17.","accounts_in_message":[],"_revision_number":17},{"id":"83f8967aacc037205c7236c6f85f16b2463be5da","author":{"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"},"date":"2017-04-03 12:53:35.000000000","message":"Patch Set 18: Published edit on patch set 17","accounts_in_message":[],"_revision_number":18},{"id":"2d7531c767375af7d3e3ec971ef5f8801e0f5ce4","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2017-04-03 13:13:52.000000000","message":"Patch Set 18:\n\n(1 comment)\n\nMy efforts to get this review through failed because I did not offer a suitable unit test. The functional test with its random behavior (thanks to the requests module) were deemed insufficient. This review does not move the ball forward. All it does is roll back my attempt at a unit test. Personally I feel that the insistence on a test for this bug fix is a little over the top, so I\u0027m not beating that drum. Just pointing out the historical context.","accounts_in_message":[],"_revision_number":18},{"id":"989d8701f996dcef11acb48797e6a0fe292d6fff","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2017-04-03 13:14:34.000000000","message":"Patch Set 18:\n\nAnd now I see the unit test. My bad. Will review.","accounts_in_message":[],"_revision_number":18},{"id":"c0b6dc9a1e60bda1f0ebe52ad11bb0b2e76d5359","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-04-03 14:05:39.000000000","message":"Patch Set 18: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-glanceclient-docs-ubuntu-xenial http://docs-draft.openstack.org/16/396816/18/check/gate-python-glanceclient-docs-ubuntu-xenial/7a2f5eb//doc/build/html/ : SUCCESS in 2m 53s\n- gate-python-glanceclient-pep8-ubuntu-xenial http://logs.openstack.org/16/396816/18/check/gate-python-glanceclient-pep8-ubuntu-xenial/10d137a/ : SUCCESS in 3m 38s\n- gate-python-glanceclient-python27-ubuntu-xenial http://logs.openstack.org/16/396816/18/check/gate-python-glanceclient-python27-ubuntu-xenial/41d02b9/ : SUCCESS in 2m 15s\n- gate-python-glanceclient-python35 http://logs.openstack.org/16/396816/18/check/gate-python-glanceclient-python35/09a64d1/ : SUCCESS in 2m 13s\n- gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial http://logs.openstack.org/16/396816/18/check/gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial/f83888d/ : SUCCESS in 1h 10m 35s\n- gate-glanceclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/16/396816/18/check/gate-glanceclient-dsvm-functional-ubuntu-xenial/ecf3876/ : SUCCESS in 23m 58s\n- gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/16/396816/18/check/gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/b5506db/ : FAILURE in 25m 08s (non-voting)","accounts_in_message":[],"_revision_number":18},{"id":"b7bd5148d89ad4c68235511e656eb83a0bb9e9fe","author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"date":"2017-04-03 18:50:15.000000000","message":"Patch Set 18:\n\n(1 comment)\n\nAgree with Carlos about line 322.","accounts_in_message":[],"_revision_number":18},{"id":"916f23b3218b0c2ea58a08b2faea00b2df7f9cbf","author":{"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"},"date":"2017-04-05 14:40:02.000000000","message":"Uploaded patch set 19.","accounts_in_message":[],"_revision_number":19},{"id":"74e1249e1a7cf698dc64fb4af2109acacdd3dac1","author":{"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"},"date":"2017-04-05 14:41:18.000000000","message":"Uploaded patch set 20.","accounts_in_message":[],"_revision_number":20},{"id":"956a2b7be67d90f6ea9525d7532eab14b686bbb9","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-04-05 16:00:54.000000000","message":"Patch Set 20: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-glanceclient-docs-ubuntu-xenial http://docs-draft.openstack.org/16/396816/20/check/gate-python-glanceclient-docs-ubuntu-xenial/d123d1e//doc/build/html/ : SUCCESS in 5m 22s\n- gate-python-glanceclient-pep8-ubuntu-xenial http://logs.openstack.org/16/396816/20/check/gate-python-glanceclient-pep8-ubuntu-xenial/168b191/ : SUCCESS in 7m 40s\n- gate-python-glanceclient-python27-ubuntu-xenial http://logs.openstack.org/16/396816/20/check/gate-python-glanceclient-python27-ubuntu-xenial/fe26bdb/ : SUCCESS in 5m 20s\n- gate-python-glanceclient-python35 http://logs.openstack.org/16/396816/20/check/gate-python-glanceclient-python35/0576206/ : SUCCESS in 5m 19s\n- gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial http://logs.openstack.org/16/396816/20/check/gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial/7261339/ : SUCCESS in 1h 11m 00s\n- gate-glanceclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/16/396816/20/check/gate-glanceclient-dsvm-functional-ubuntu-xenial/6d83292/ : SUCCESS in 26m 18s\n- gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/16/396816/20/check/gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/4fb4039/ : FAILURE in 25m 11s (non-voting)","accounts_in_message":[],"_revision_number":20},{"id":"21c587b853eb3db9b53cc311eda4aaf120d654a4","author":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"date":"2017-04-05 16:09:46.000000000","message":"Patch Set 20: Code-Review+1","accounts_in_message":[],"_revision_number":20},{"id":"de5ce2d1e21a13d480b16a45046af5221ee14cd6","author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"date":"2017-04-06 12:54:04.000000000","message":"Patch Set 20: Code-Review+1\n\n(1 comment)\n\nThis mostly looks good.  See my inline comment about the unit test.  I\u0027m open to contrary opinions.  Leaving a positive score so that some other Glance core will take a look.","accounts_in_message":[],"_revision_number":20},{"id":"c89f7092f5e615a70906988daf5e440c1aa3ad2d","author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"date":"2017-04-11 17:16:13.000000000","message":"Patch Set 20: Code-Review-1\n\n(4 comments)\n\nJust some updates to the tests needed for better testing style, to save us potential difficulties later.\n\nthe auth stuff may seem like a nit, but use of **kwargs will insulate us better against potential changes in the keystoneauth1 library in the future.","accounts_in_message":[],"_revision_number":20},{"id":"1921790dde7251c3c827d352a3ee5253a1b6ccf2","author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"date":"2017-05-18 20:50:28.000000000","message":"Patch Set 20:\n\nIs this change still moving?  https://review.openstack.org/#/c/412634/ is waiting on it.","accounts_in_message":[],"_revision_number":20},{"id":"c80e766c3747d36b8b03152454de2abc54f9c7c5","author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"date":"2017-05-18 22:31:29.000000000","message":"Uploaded patch set 21.","accounts_in_message":[],"_revision_number":21},{"id":"e8d9538f1486dce4b6357ac186f68f6b526b2734","author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"date":"2017-05-18 22:33:35.000000000","message":"Patch Set 20:\n\n(4 comments)","accounts_in_message":[],"_revision_number":20},{"id":"82e936e9c08675b4d409a79b5fe7464121ca4c7e","author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"date":"2017-05-18 22:33:45.000000000","message":"Patch Set 21:\n\nAlso includes a rebase","accounts_in_message":[],"_revision_number":21},{"id":"bec5c17753060937b03e217040b6b891534cbf71","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-05-19 00:04:18.000000000","message":"Patch Set 21: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see http://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n- gate-python-glanceclient-docs-ubuntu-xenial http://docs-draft.openstack.org/16/396816/21/check/gate-python-glanceclient-docs-ubuntu-xenial/f808477//doc/build/html/ : SUCCESS in 2m 04s\n- gate-python-glanceclient-pep8-ubuntu-xenial http://logs.openstack.org/16/396816/21/check/gate-python-glanceclient-pep8-ubuntu-xenial/7b3a7bf/ : SUCCESS in 4m 03s\n- gate-python-glanceclient-python27-ubuntu-xenial http://logs.openstack.org/16/396816/21/check/gate-python-glanceclient-python27-ubuntu-xenial/dfa5b38/ : FAILURE in 3m 15s\n- gate-python-glanceclient-python35 http://logs.openstack.org/16/396816/21/check/gate-python-glanceclient-python35/fa55f2e/ : FAILURE in 2m 08s\n- gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial http://logs.openstack.org/16/396816/21/check/gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial/09b12b0/ : SUCCESS in 1h 28m 31s\n- gate-glanceclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/16/396816/21/check/gate-glanceclient-dsvm-functional-ubuntu-xenial/0c5530e/ : SUCCESS in 27m 17s\n- gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/16/396816/21/check/gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/d4681b3/ : FAILURE in 24m 03s (non-voting)","accounts_in_message":[],"_revision_number":21},{"id":"c0ce354d052f8eb2e757f5a41b8b3eee2f426844","author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"date":"2017-05-19 19:02:00.000000000","message":"Patch Set 22: Patch Set 21 was rebased","accounts_in_message":[],"_revision_number":21},{"id":"754f84116efcce220d6ba42ba24317a1ee67d4a3","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-05-19 20:32:37.000000000","message":"Patch Set 22: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-glanceclient-docs-ubuntu-xenial http://docs-draft.openstack.org/16/396816/22/check/gate-python-glanceclient-docs-ubuntu-xenial/476a5d5//doc/build/html/ : SUCCESS in 3m 16s\n- gate-python-glanceclient-pep8-ubuntu-xenial http://logs.openstack.org/16/396816/22/check/gate-python-glanceclient-pep8-ubuntu-xenial/2fe5fbb/ : SUCCESS in 3m 47s\n- gate-python-glanceclient-python27-ubuntu-xenial http://logs.openstack.org/16/396816/22/check/gate-python-glanceclient-python27-ubuntu-xenial/0925ebc/ : SUCCESS in 3m 48s\n- gate-python-glanceclient-python35 http://logs.openstack.org/16/396816/22/check/gate-python-glanceclient-python35/577c90f/ : SUCCESS in 3m 30s\n- gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial http://logs.openstack.org/16/396816/22/check/gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial/e561b30/ : SUCCESS in 1h 25m 36s\n- gate-glanceclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/16/396816/22/check/gate-glanceclient-dsvm-functional-ubuntu-xenial/bd6aacb/ : SUCCESS in 16m 40s\n- gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/16/396816/22/check/gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/062bd97/ : FAILURE in 16m 09s (non-voting)","accounts_in_message":[],"_revision_number":22},{"id":"9914d17b49b6c6324feae3b8a9c8610c61e73237","author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"date":"2017-05-20 00:25:41.000000000","message":"Patch Set 20:\n\n(1 comment)","accounts_in_message":[],"_revision_number":20},{"id":"3ea609d96e81384b30d78a0b5b2f50f6e9d72be2","author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"date":"2017-05-22 12:54:08.000000000","message":"Patch Set 20:\n\n(1 comment)","accounts_in_message":[],"_revision_number":20},{"id":"ae42b7254802ebee9c06c22dd0fabbd853dbbbcc","author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"date":"2017-05-22 13:02:10.000000000","message":"Patch Set 22: Code-Review+2","accounts_in_message":[],"_revision_number":22},{"id":"a8babde0160dcae1e1a991fcd1e6978f02188281","author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"date":"2017-05-24 20:33:22.000000000","message":"Patch Set 22: Code-Review+2 Workflow+1\n\n(1 comment)\n\nwill let the nit pass, thanks for your efforts","accounts_in_message":[],"_revision_number":22},{"id":"4af20871867f73014541a11c5d2961ec18485e5a","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-05-24 20:33:41.000000000","message":"Patch Set 22: -Verified\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":22},{"id":"432a9d4a45ba5bdb78a99eeff3ff7649266726c4","date":"2017-05-24 21:55:26.000000000","message":"Change has been successfully merged into the git repository by Jenkins","accounts_in_message":[],"_revision_number":22},{"id":"4ad7b4331dccb42e6878ecdeaa6034bce1a83636","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-05-24 21:55:26.000000000","message":"Patch Set 22: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- gate-python-glanceclient-docs-ubuntu-xenial http://docs-draft.openstack.org/16/396816/22/gate/gate-python-glanceclient-docs-ubuntu-xenial/f3b825e//doc/build/html/ : SUCCESS in 3m 32s\n- gate-python-glanceclient-pep8-ubuntu-xenial http://logs.openstack.org/16/396816/22/gate/gate-python-glanceclient-pep8-ubuntu-xenial/4f8081c/ : SUCCESS in 4m 19s\n- gate-python-glanceclient-python27-ubuntu-xenial http://logs.openstack.org/16/396816/22/gate/gate-python-glanceclient-python27-ubuntu-xenial/4c0ab40/ : SUCCESS in 3m 50s\n- gate-python-glanceclient-python35 http://logs.openstack.org/16/396816/22/gate/gate-python-glanceclient-python35/bb865da/ : SUCCESS in 3m 33s\n- gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial http://logs.openstack.org/16/396816/22/gate/gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial/dd52d44/ : SUCCESS in 1h 20m 31s\n- gate-glanceclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/16/396816/22/gate/gate-glanceclient-dsvm-functional-ubuntu-xenial/07ad0cf/ : SUCCESS in 16m 15s","accounts_in_message":[],"_revision_number":22}],"current_revision_number":22,"current_revision":"03900522d4816fe5dc2958fa1eb30ab447cc8ee5","revisions":{"b19788c553778cb7cfaeb9e378147c93f1e702cb":{"kind":"REWORK","_number":1,"created":"2016-11-12 01:46:05.000000000","uploader":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"ref":"refs/changes/16/396816/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/16/396816/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/1"}}},"commit":{"parents":[{"commit":"bdf2aebe12aa239badc583712aae195f33e990cf","subject":"Merge \"Updated from global requirements\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/bdf2aebe12aa239badc583712aae195f33e990cf"}]}],"author":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 01:39:34.000000000","tz":-420},"committer":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 01:39:34.000000000","tz":-420},"subject":"v2: Content-Type: application/octet-stream header always added","message":"v2: Content-Type: application/octet-stream header always added\n\nThe bug: any existing Content-Type header cannot be found because the\ncall to headers.get() fails. Therefore we end up with two Content-Type\nheaders because a new one (applicaion/octet-stream) gets added\nunconditionally. The cause: the strings (keys and values) in the headers\ndict are converted from unicode sequences of type \u003cstr\u003e to utf-8\nsequences of type \u003cbytes\u003e. This happens in safe_encode()\n(oslo_utils/encodeutils.py:66). \u003cstr\u003e !\u003d \u003cbytes\u003e even if they appear to\nhave the same characters. The fix: treat all strings in headers as utf-8\nbyte sequences.\n\nChange-Id: Idf6079b32f70bc171f5016467048e917d42f296d\nCloses-bug: #1641239\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/b19788c553778cb7cfaeb9e378147c93f1e702cb"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/b19788c553778cb7cfaeb9e378147c93f1e702cb"}]},"branch":"refs/heads/master"},"630721071a4ebafb03231ed5788185f39c1e24a8":{"kind":"REWORK","_number":2,"created":"2016-11-12 03:16:45.000000000","uploader":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"ref":"refs/changes/16/396816/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/16/396816/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/2"}}},"commit":{"parents":[{"commit":"bdf2aebe12aa239badc583712aae195f33e990cf","subject":"Merge \"Updated from global requirements\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/bdf2aebe12aa239badc583712aae195f33e990cf"}]}],"author":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 01:39:34.000000000","tz":-420},"committer":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 03:16:32.000000000","tz":-420},"subject":"v2: Content-Type: application/octet-stream header always added","message":"v2: Content-Type: application/octet-stream header always added\n\nThe bug: any existing Content-Type header cannot be found because the\ncall to headers.get() fails. Therefore we end up with two Content-Type\nheaders because a new one (applicaion/octet-stream) gets added\nunconditionally. The cause: the strings (keys and values) in the headers\ndict are converted from unicode sequences of type \u003cstr\u003e to utf-8\nsequences of type \u003cbytes\u003e. This happens in safe_encode()\n(oslo_utils/encodeutils.py:66). \u003cstr\u003e !\u003d \u003cbytes\u003e even if they appear to\nhave the same characters. The fix: treat all strings in headers as utf-8\nbyte sequences.\n\nChange-Id: Idf6079b32f70bc171f5016467048e917d42f296d\nCloses-bug: #1641239\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/630721071a4ebafb03231ed5788185f39c1e24a8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/630721071a4ebafb03231ed5788185f39c1e24a8"}]},"branch":"refs/heads/master"},"9e9021260472297654e18c419bbba8917834f590":{"kind":"REWORK","_number":3,"created":"2016-11-19 21:36:51.000000000","uploader":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"ref":"refs/changes/16/396816/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/16/396816/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/3"}}},"commit":{"parents":[{"commit":"bdf2aebe12aa239badc583712aae195f33e990cf","subject":"Merge \"Updated from global requirements\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/bdf2aebe12aa239badc583712aae195f33e990cf"}]}],"author":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 01:39:34.000000000","tz":-420},"committer":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-19 21:36:26.000000000","tz":-420},"subject":"v2: Content-Type: application/octet-stream header always added","message":"v2: Content-Type: application/octet-stream header always added\n\nThe bug: any existing Content-Type header cannot be found because the\ncall to headers.get() fails. Therefore we end up with two Content-Type\nheaders because a new one (applicaion/octet-stream) gets added\nunconditionally. The cause: the strings (keys and values) in the headers\ndict are converted from unicode sequences of type \u003cstr\u003e to utf-8\nsequences of type \u003cbytes\u003e. This happens in safe_encode()\n(oslo_utils/encodeutils.py:66). \u003cstr\u003e !\u003d \u003cbytes\u003e even if they appear to\nhave the same characters. The fix: treat all strings in headers as utf-8\nbyte sequences.\n\nChange-Id: Idf6079b32f70bc171f5016467048e917d42f296d\nCloses-bug: #1641239\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/9e9021260472297654e18c419bbba8917834f590"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/9e9021260472297654e18c419bbba8917834f590"}]},"branch":"refs/heads/master"},"f9ec24c3fdedcddf899bc2e821d53dc1625de285":{"kind":"TRIVIAL_REBASE","_number":4,"created":"2016-11-19 21:42:34.000000000","uploader":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"ref":"refs/changes/16/396816/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/16/396816/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/4"}}},"commit":{"parents":[{"commit":"993d45293c38515279b5bffe02d60e43be0f1c68","subject":"Merge \"Add Apache 2.0 license to source file\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/993d45293c38515279b5bffe02d60e43be0f1c68"}]}],"author":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 01:39:34.000000000","tz":-420},"committer":{"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-19 21:42:34.000000000","tz":0},"subject":"v2: Content-Type: application/octet-stream header always added","message":"v2: Content-Type: application/octet-stream header always added\n\nThe bug: any existing Content-Type header cannot be found because the\ncall to headers.get() fails. Therefore we end up with two Content-Type\nheaders because a new one (applicaion/octet-stream) gets added\nunconditionally. The cause: the strings (keys and values) in the headers\ndict are converted from unicode sequences of type \u003cstr\u003e to utf-8\nsequences of type \u003cbytes\u003e. This happens in safe_encode()\n(oslo_utils/encodeutils.py:66). \u003cstr\u003e !\u003d \u003cbytes\u003e even if they appear to\nhave the same characters. The fix: treat all strings in headers as utf-8\nbyte sequences.\n\nChange-Id: Idf6079b32f70bc171f5016467048e917d42f296d\nCloses-bug: #1641239\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/f9ec24c3fdedcddf899bc2e821d53dc1625de285"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/f9ec24c3fdedcddf899bc2e821d53dc1625de285"}]},"branch":"refs/heads/master"},"7d11ced6e1255a4e5c73ed40fff27c105406a40c":{"kind":"REWORK","_number":5,"created":"2016-11-22 03:55:42.000000000","uploader":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"ref":"refs/changes/16/396816/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/16/396816/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/5"}}},"commit":{"parents":[{"commit":"993d45293c38515279b5bffe02d60e43be0f1c68","subject":"Merge \"Add Apache 2.0 license to source file\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/993d45293c38515279b5bffe02d60e43be0f1c68"}]}],"author":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 01:39:34.000000000","tz":-420},"committer":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-22 03:55:24.000000000","tz":-420},"subject":"v2: Content-Type: application/octet-stream header always added","message":"v2: Content-Type: application/octet-stream header always added\n\nThe bug: any existing Content-Type header cannot be found because the\ncall to headers.get() fails. Therefore we end up with two Content-Type\nheaders because a new one (applicaion/octet-stream) gets added\nunconditionally. The cause: the strings (keys and values) in the headers\ndict are converted from unicode sequences of type \u003cstr\u003e to utf-8\nsequences of type \u003cbytes\u003e. This happens in safe_encode()\n(oslo_utils/encodeutils.py:66). \u003cstr\u003e !\u003d \u003cbytes\u003e even if they appear to\nhave the same characters. The fix: follow the directions in\nencode_headers(). It says to do this just before sending the\nrequest. Honor this principle; do not encode headers and then perform\nmore business logic on them.\n\nChange-Id: Idf6079b32f70bc171f5016467048e917d42f296d\nCloses-bug: #1641239\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/7d11ced6e1255a4e5c73ed40fff27c105406a40c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/7d11ced6e1255a4e5c73ed40fff27c105406a40c"}]},"branch":"refs/heads/master"},"a1dbfd10fcd132c4da1f90798fc96a98f7382c3c":{"kind":"REWORK","_number":6,"created":"2016-11-22 03:58:49.000000000","uploader":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"ref":"refs/changes/16/396816/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/16/396816/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/6"}}},"commit":{"parents":[{"commit":"993d45293c38515279b5bffe02d60e43be0f1c68","subject":"Merge \"Add Apache 2.0 license to source file\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/993d45293c38515279b5bffe02d60e43be0f1c68"}]}],"author":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 01:39:34.000000000","tz":-420},"committer":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-22 03:58:36.000000000","tz":-420},"subject":"v2: Content-Type: application/octet-stream header always added","message":"v2: Content-Type: application/octet-stream header always added\n\nThe bug: any existing Content-Type header cannot be found because the\ncall to headers.get() fails. Therefore we end up with two Content-Type\nheaders because a new one (applicaion/octet-stream) gets added\nunconditionally. The cause: the strings (keys and values) in the headers\ndict are converted from unicode sequences of type \u003cstr\u003e to utf-8\nsequences of type \u003cbytes\u003e. This happens in safe_encode()\n(oslo_utils/encodeutils.py:66). \u003cstr\u003e !\u003d \u003cbytes\u003e even if they appear to\nhave the same characters. The fix: follow the directions in\nencode_headers(). It says to do this just before sending the\nrequest. Honor this principle; do not encode headers and then perform\nmore business logic on them.\n\nChange-Id: Idf6079b32f70bc171f5016467048e917d42f296d\nCloses-bug: #1641239\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/a1dbfd10fcd132c4da1f90798fc96a98f7382c3c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/a1dbfd10fcd132c4da1f90798fc96a98f7382c3c"}]},"branch":"refs/heads/master"},"704326ae417031dac63ec8abbf0aa8a0c6915f74":{"kind":"REWORK","_number":7,"created":"2016-11-22 18:19:22.000000000","uploader":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"ref":"refs/changes/16/396816/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/16/396816/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/7"}}},"commit":{"parents":[{"commit":"993d45293c38515279b5bffe02d60e43be0f1c68","subject":"Merge \"Add Apache 2.0 license to source file\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/993d45293c38515279b5bffe02d60e43be0f1c68"}]}],"author":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 01:39:34.000000000","tz":-420},"committer":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-22 18:19:02.000000000","tz":-420},"subject":"v2: Content-Type: application/octet-stream header always added","message":"v2: Content-Type: application/octet-stream header always added\n\nThe bug: any existing Content-Type header cannot be found because the\ncall to headers.get() fails. Therefore we end up with two Content-Type\nheaders because a new one (applicaion/octet-stream) gets added\nunconditionally. The cause: the strings (keys and values) in the headers\ndict are converted from unicode sequences of type \u003cstr\u003e to utf-8\nsequences of type \u003cbytes\u003e. This happens in safe_encode()\n(oslo_utils/encodeutils.py:66). \u003cstr\u003e !\u003d \u003cbytes\u003e even if they appear to\nhave the same characters. The fix: follow the directions in\nencode_headers(). It says to do this just before sending the\nrequest. Honor this principle; do not encode headers and then perform\nmore business logic on them.\n\nChange-Id: Idf6079b32f70bc171f5016467048e917d42f296d\nCloses-bug: #1641239\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/704326ae417031dac63ec8abbf0aa8a0c6915f74"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/704326ae417031dac63ec8abbf0aa8a0c6915f74"}]},"branch":"refs/heads/master"},"72c69c62e298467f71420dac67974428f49cbfd1":{"kind":"REWORK","_number":8,"created":"2016-11-22 19:36:46.000000000","uploader":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"ref":"refs/changes/16/396816/8","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/16/396816/8","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/8"}}},"commit":{"parents":[{"commit":"993d45293c38515279b5bffe02d60e43be0f1c68","subject":"Merge \"Add Apache 2.0 license to source file\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/993d45293c38515279b5bffe02d60e43be0f1c68"}]}],"author":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 01:39:34.000000000","tz":-420},"committer":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-22 19:36:32.000000000","tz":-420},"subject":"v2: Content-Type: application/octet-stream header always added","message":"v2: Content-Type: application/octet-stream header always added\n\nThe bug: any existing Content-Type header cannot be found because the\ncall to headers.get() fails. Therefore we end up with two Content-Type\nheaders because a new one (applicaion/octet-stream) gets added\nunconditionally. The cause: the strings (keys and values) in the headers\ndict are converted from unicode sequences of type \u003cstr\u003e to utf-8\nsequences of type \u003cbytes\u003e. This happens in safe_encode()\n(oslo_utils/encodeutils.py:66). \u003cstr\u003e !\u003d \u003cbytes\u003e even if they appear to\nhave the same characters. The fix: follow the directions in\nencode_headers(). It says to do this just before sending the\nrequest. Honor this principle; do not encode headers and then perform\nmore business logic on them.\n\nChange-Id: Idf6079b32f70bc171f5016467048e917d42f296d\nCloses-bug: #1641239\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/72c69c62e298467f71420dac67974428f49cbfd1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/72c69c62e298467f71420dac67974428f49cbfd1"}]},"branch":"refs/heads/master"},"266aea64b1dd2a6e5bec1d4ca16b44acefdcb3ca":{"kind":"REWORK","_number":9,"created":"2016-12-06 18:50:09.000000000","uploader":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"ref":"refs/changes/16/396816/9","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/16/396816/9","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/9 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/9 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/9 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/9"}}},"commit":{"parents":[{"commit":"993d45293c38515279b5bffe02d60e43be0f1c68","subject":"Merge \"Add Apache 2.0 license to source file\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/993d45293c38515279b5bffe02d60e43be0f1c68"}]}],"author":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 01:39:34.000000000","tz":-420},"committer":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-12-06 18:49:50.000000000","tz":-420},"subject":"v2: Content-Type: application/octet-stream header always added","message":"v2: Content-Type: application/octet-stream header always added\n\nThe bug: any existing Content-Type header cannot be found because the\ncall to headers.get() fails. Therefore we end up with two Content-Type\nheaders because a new one (applicaion/octet-stream) gets added\nunconditionally. The cause: the strings (keys and values) in the headers\ndict are converted from unicode sequences of type \u003cstr\u003e to utf-8\nsequences of type \u003cbytes\u003e. This happens in safe_encode()\n(oslo_utils/encodeutils.py:66). \u003cstr\u003e !\u003d \u003cbytes\u003e even if they appear to\nhave the same characters. The fix: follow the directions in\nencode_headers(). It says to do this just before sending the\nrequest. Honor this principle; do not encode headers and then perform\nmore business logic on them.\n\nChange-Id: Idf6079b32f70bc171f5016467048e917d42f296d\nCloses-bug: #1641239\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/266aea64b1dd2a6e5bec1d4ca16b44acefdcb3ca"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/266aea64b1dd2a6e5bec1d4ca16b44acefdcb3ca"}]},"branch":"refs/heads/master"},"77b9382c1686aa89a7c4071b60d16a6e72c06cb3":{"kind":"REWORK","_number":10,"created":"2016-12-07 21:26:27.000000000","uploader":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"ref":"refs/changes/16/396816/10","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/16/396816/10","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/10 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/10 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/10 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/10"}}},"commit":{"parents":[{"commit":"611401d229c38ac2dc5e24d6498678f10910972f","subject":"Updated from global requirements","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/611401d229c38ac2dc5e24d6498678f10910972f"}]}],"author":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 01:39:34.000000000","tz":-420},"committer":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-12-07 21:25:48.000000000","tz":-420},"subject":"v2: Content-Type: application/octet-stream header always added","message":"v2: Content-Type: application/octet-stream header always added\n\nThe bug: any existing Content-Type header cannot be found because the\ncall to headers.get() fails. Therefore we end up with two Content-Type\nheaders because a new one (applicaion/octet-stream) gets added\nunconditionally. The cause: the strings (keys and values) in the headers\ndict are converted from unicode sequences of type \u003cstr\u003e to utf-8\nsequences of type \u003cbytes\u003e. This happens in safe_encode()\n(oslo_utils/encodeutils.py:66). \u003cstr\u003e !\u003d \u003cbytes\u003e even if they appear to\nhave the same characters. The fix: follow the directions in\nencode_headers(). It says to do this just before sending the\nrequest. Honor this principle; do not encode headers and then perform\nmore business logic on them.\n\nChange-Id: Idf6079b32f70bc171f5016467048e917d42f296d\nCloses-bug: #1641239\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/77b9382c1686aa89a7c4071b60d16a6e72c06cb3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/77b9382c1686aa89a7c4071b60d16a6e72c06cb3"}]},"branch":"refs/heads/master"},"fe227d3771d270043e96dae8e4ed3805de358295":{"kind":"REWORK","_number":11,"created":"2016-12-07 21:34:44.000000000","uploader":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"ref":"refs/changes/16/396816/11","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/16/396816/11","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/11 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/11 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/11 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/11"}}},"commit":{"parents":[{"commit":"611401d229c38ac2dc5e24d6498678f10910972f","subject":"Updated from global requirements","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/611401d229c38ac2dc5e24d6498678f10910972f"}]}],"author":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 01:39:34.000000000","tz":-420},"committer":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-12-07 21:34:27.000000000","tz":-420},"subject":"v2: Content-Type: application/octet-stream header always added","message":"v2: Content-Type: application/octet-stream header always added\n\nThe bug: any existing Content-Type header cannot be found because the\ncall to headers.get() fails. Therefore we end up with two Content-Type\nheaders because a new one (applicaion/octet-stream) gets added\nunconditionally. The cause: the strings (keys and values) in the headers\ndict are converted from unicode sequences of type \u003cstr\u003e to utf-8\nsequences of type \u003cbytes\u003e. This happens in safe_encode()\n(oslo_utils/encodeutils.py:66). \u003cstr\u003e !\u003d \u003cbytes\u003e even if they appear to\nhave the same characters. The fix: follow the directions in\nencode_headers(). It says to do this just before sending the\nrequest. Honor this principle; do not encode headers and then perform\nmore business logic on them.\n\nChange-Id: Idf6079b32f70bc171f5016467048e917d42f296d\nCloses-bug: #1641239\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/fe227d3771d270043e96dae8e4ed3805de358295"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/fe227d3771d270043e96dae8e4ed3805de358295"}]},"branch":"refs/heads/master"},"ad261fdf6c5c00282c8fbea3edc3564716405ede":{"kind":"REWORK","_number":12,"created":"2016-12-08 00:09:05.000000000","uploader":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"ref":"refs/changes/16/396816/12","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/16/396816/12","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/12 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/12 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/12 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/12"}}},"commit":{"parents":[{"commit":"611401d229c38ac2dc5e24d6498678f10910972f","subject":"Updated from global requirements","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/611401d229c38ac2dc5e24d6498678f10910972f"}]}],"author":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 01:39:34.000000000","tz":-420},"committer":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-12-08 00:08:50.000000000","tz":-420},"subject":"v2: Content-Type: application/octet-stream header always added","message":"v2: Content-Type: application/octet-stream header always added\n\nThe bug: any existing Content-Type header cannot be found because the\ncall to headers.get() fails. Therefore we end up with two Content-Type\nheaders because a new one (applicaion/octet-stream) gets added\nunconditionally. The cause: the strings (keys and values) in the headers\ndict are converted from unicode sequences of type \u003cstr\u003e to utf-8\nsequences of type \u003cbytes\u003e. This happens in safe_encode()\n(oslo_utils/encodeutils.py:66). \u003cstr\u003e !\u003d \u003cbytes\u003e even if they appear to\nhave the same characters. The fix: follow the directions in\nencode_headers(). It says to do this just before sending the\nrequest. Honor this principle; do not encode headers and then perform\nmore business logic on them.\n\nChange-Id: Idf6079b32f70bc171f5016467048e917d42f296d\nCloses-bug: #1641239\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/ad261fdf6c5c00282c8fbea3edc3564716405ede"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/ad261fdf6c5c00282c8fbea3edc3564716405ede"}]},"branch":"refs/heads/master"},"d17d9617e0c324683e2eb149d318584b5b65234d":{"kind":"REWORK","_number":13,"created":"2016-12-19 19:53:40.000000000","uploader":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"ref":"refs/changes/16/396816/13","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/16/396816/13","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/13 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/13 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/13 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/13"}}},"commit":{"parents":[{"commit":"fa11427af53595532124c74991ddcee6a89624ff","subject":"Merge \"Use import_versioned_module from oslo.utils\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/fa11427af53595532124c74991ddcee6a89624ff"}]}],"author":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 01:39:34.000000000","tz":-420},"committer":{"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-12-19 19:53:09.000000000","tz":-420},"subject":"v2: Content-Type: application/octet-stream header always added","message":"v2: Content-Type: application/octet-stream header always added\n\nThe bug: any existing Content-Type header cannot be found because the\ncall to headers.get() fails. Therefore we end up with two Content-Type\nheaders because a new one (applicaion/octet-stream) gets added\nunconditionally. The cause: the strings (keys and values) in the headers\ndict are converted from unicode sequences of type \u003cstr\u003e to utf-8\nsequences of type \u003cbytes\u003e. This happens in safe_encode()\n(oslo_utils/encodeutils.py:66). \u003cstr\u003e !\u003d \u003cbytes\u003e even if they appear to\nhave the same characters. The fix: follow the directions in\nencode_headers(). It says to do this just before sending the\nrequest. Honor this principle; do not encode headers and then perform\nmore business logic on them.\n\nChange-Id: Idf6079b32f70bc171f5016467048e917d42f296d\nCloses-bug: #1641239\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/d17d9617e0c324683e2eb149d318584b5b65234d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/d17d9617e0c324683e2eb149d318584b5b65234d"}]},"branch":"refs/heads/master"},"a221d392fe1fc474378d5207bcb49b0e7aea234b":{"kind":"REWORK","_number":14,"created":"2016-12-29 03:59:27.000000000","uploader":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"ref":"refs/changes/16/396816/14","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/16/396816/14","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/14 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/14 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/14 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/14"}}},"commit":{"parents":[{"commit":"fa11427af53595532124c74991ddcee6a89624ff","subject":"Merge \"Use import_versioned_module from oslo.utils\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/fa11427af53595532124c74991ddcee6a89624ff"}]}],"author":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 01:39:34.000000000","tz":-420},"committer":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-12-29 02:18:34.000000000","tz":-420},"subject":"v2: Content-Type: application/octet-stream header always added","message":"v2: Content-Type: application/octet-stream header always added\n\nThe bug: any existing Content-Type header cannot be found because the\ncall to headers.get() fails. Therefore we end up with two Content-Type\nheaders because a new one (applicaion/octet-stream) gets added\nunconditionally. The cause: the strings (keys and values) in the headers\ndict are converted from unicode sequences of type \u003cstr\u003e to utf-8\nsequences of type \u003cbytes\u003e. This happens in safe_encode()\n(oslo_utils/encodeutils.py:66). \u003cstr\u003e !\u003d \u003cbytes\u003e even if they appear to\nhave the same characters. The fix: follow the directions in\nencode_headers(). It says to do this just before sending the\nrequest. Honor this principle; do not encode headers and then perform\nmore business logic on them.\n\nChange-Id: Idf6079b32f70bc171f5016467048e917d42f296d\nCloses-bug: #1641239\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/a221d392fe1fc474378d5207bcb49b0e7aea234b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/a221d392fe1fc474378d5207bcb49b0e7aea234b"}]},"branch":"refs/heads/master"},"12422cc91471d113e9e5027e7a9f50a1662d546c":{"kind":"REWORK","_number":15,"created":"2016-12-29 15:08:24.000000000","uploader":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"ref":"refs/changes/16/396816/15","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/16/396816/15","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/15 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/15 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/15 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/15"}}},"commit":{"parents":[{"commit":"fa11427af53595532124c74991ddcee6a89624ff","subject":"Merge \"Use import_versioned_module from oslo.utils\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/fa11427af53595532124c74991ddcee6a89624ff"}]}],"author":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 01:39:34.000000000","tz":-420},"committer":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-12-29 15:08:06.000000000","tz":-420},"subject":"v2: Content-Type: application/octet-stream header always added","message":"v2: Content-Type: application/octet-stream header always added\n\nThe bug: any existing Content-Type header cannot be found because the\ncall to headers.get() fails. Therefore we end up with two Content-Type\nheaders because a new one (applicaion/octet-stream) gets added\nunconditionally. The cause: the strings (keys and values) in the headers\ndict are converted from unicode sequences of type \u003cstr\u003e to utf-8\nsequences of type \u003cbytes\u003e. This happens in safe_encode()\n(oslo_utils/encodeutils.py:66). \u003cstr\u003e !\u003d \u003cbytes\u003e even if they appear to\nhave the same characters. The fix: follow the directions in\nencode_headers(). It says to do this just before sending the\nrequest. Honor this principle; do not encode headers and then perform\nmore business logic on them.\n\nChange-Id: Idf6079b32f70bc171f5016467048e917d42f296d\nCloses-bug: #1641239\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/12422cc91471d113e9e5027e7a9f50a1662d546c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/12422cc91471d113e9e5027e7a9f50a1662d546c"}]},"branch":"refs/heads/master"},"8f45aee129e83868e5677931aae92f7bb57fe222":{"kind":"REWORK","_number":16,"created":"2016-12-29 16:22:41.000000000","uploader":{"_account_id":23636,"name":"Carlos Konstanski","email":"ckonstanski@pippiandcarlos.com","username":"ckonstanski"},"ref":"refs/changes/16/396816/16","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/16/396816/16","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/16 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/16 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/16 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/16"}}},"commit":{"parents":[{"commit":"fa11427af53595532124c74991ddcee6a89624ff","subject":"Merge \"Use import_versioned_module from oslo.utils\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/fa11427af53595532124c74991ddcee6a89624ff"}]}],"author":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 01:39:34.000000000","tz":-420},"committer":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-12-29 16:22:25.000000000","tz":-420},"subject":"v2: Content-Type: application/octet-stream header always added","message":"v2: Content-Type: application/octet-stream header always added\n\nThe bug: any existing Content-Type header cannot be found because the\ncall to headers.get() fails. Therefore we end up with two Content-Type\nheaders because a new one (applicaion/octet-stream) gets added\nunconditionally. The cause: the strings (keys and values) in the headers\ndict are converted from unicode sequences of type \u003cstr\u003e to utf-8\nsequences of type \u003cbytes\u003e. This happens in safe_encode()\n(oslo_utils/encodeutils.py:66). \u003cstr\u003e !\u003d \u003cbytes\u003e even if they appear to\nhave the same characters. The fix: follow the directions in\nencode_headers(). It says to do this just before sending the\nrequest. Honor this principle; do not encode headers and then perform\nmore business logic on them.\n\nChange-Id: Idf6079b32f70bc171f5016467048e917d42f296d\nCloses-bug: #1641239\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/8f45aee129e83868e5677931aae92f7bb57fe222"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/8f45aee129e83868e5677931aae92f7bb57fe222"}]},"branch":"refs/heads/master"},"5784cbe4ab70e26cdf395ed8e1f1fb42c3a1c162":{"kind":"REWORK","_number":17,"created":"2017-04-03 12:50:44.000000000","uploader":{"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"},"ref":"refs/changes/16/396816/17","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/16/396816/17","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/17 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/17 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/17 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/17"}}},"commit":{"parents":[{"commit":"fa11427af53595532124c74991ddcee6a89624ff","subject":"Merge \"Use import_versioned_module from oslo.utils\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/fa11427af53595532124c74991ddcee6a89624ff"}]}],"author":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 01:39:34.000000000","tz":-420},"committer":{"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","date":"2017-04-03 12:49:08.000000000","tz":0},"subject":"v2: Content-Type: application/octet-stream header always added","message":"v2: Content-Type: application/octet-stream header always added\n\nThe bug: any existing Content-Type header cannot be found because the\ncall to headers.get() fails. Therefore we end up with two Content-Type\nheaders because a new one (applicaion/octet-stream) gets added\nunconditionally. The cause: the strings (keys and values) in the headers\ndict are converted from unicode sequences of type \u003cstr\u003e to utf-8\nsequences of type \u003cbytes\u003e. This happens in safe_encode()\n(oslo_utils/encodeutils.py:66). \u003cstr\u003e !\u003d \u003cbytes\u003e even if they appear to\nhave the same characters.\n\nHence, for python 3.x, _set_common_request_kwargs() adds content-type\nto header even if custom content-type is set in the request.\n\nThis results in unsupported media type exception when glance client\nis used with keystoneauth and python 3.x\n\nThe fix: follow the directions in encode_headers().\nIt says to do this just before sending the request. Honor this principle;\ndo not encode headers and then perform more business logic on them.\n\nChange-Id: Idf6079b32f70bc171f5016467048e917d42f296d\nCloses-bug: #1641239\nCo-Authored-By: ckonstanski \u003cckonstanski@pippiandcarlos.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/5784cbe4ab70e26cdf395ed8e1f1fb42c3a1c162"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/5784cbe4ab70e26cdf395ed8e1f1fb42c3a1c162"}]},"branch":"refs/heads/master"},"e1b79156d5f1cfdede981272b1f73d0603dc42d9":{"kind":"NO_CODE_CHANGE","_number":18,"created":"2017-04-03 12:53:35.000000000","uploader":{"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"},"ref":"refs/changes/16/396816/18","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/16/396816/18","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/18 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/18 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/18 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/18"}}},"commit":{"parents":[{"commit":"fa11427af53595532124c74991ddcee6a89624ff","subject":"Merge \"Use import_versioned_module from oslo.utils\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/fa11427af53595532124c74991ddcee6a89624ff"}]}],"author":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 01:39:34.000000000","tz":-420},"committer":{"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","date":"2017-04-03 12:53:31.000000000","tz":0},"subject":"v2: Content-Type: application/octet-stream header always added","message":"v2: Content-Type: application/octet-stream header always added\n\nThe bug: any existing Content-Type header cannot be found because the\ncall to headers.get() fails. Therefore we end up with two Content-Type\nheaders because a new one (applicaion/octet-stream) gets added\nunconditionally. The cause: the strings (keys and values) in the headers\ndict are converted from unicode sequences of type \u003cstr\u003e to utf-8\nsequences of type \u003cbytes\u003e. This happens in safe_encode()\n(oslo_utils/encodeutils.py:66). \u003cstr\u003e !\u003d \u003cbytes\u003e even if they appear to\nhave the same characters.\n\nHence, for python 3.x, _set_common_request_kwargs() adds content-type\nto header even if custom content-type is set in the request.\n\nThis results in unsupported media type exception when glance client\nis used with keystoneauth and python 3.x\n\nThe fix: follow the directions in encode_headers().\nIt says to do this just before sending the request. Honor this principle;\ndo not encode headers and then perform more business logic on them.\n\nChange-Id: Idf6079b32f70bc171f5016467048e917d42f296d\nCloses-bug: #1641239\nCo-Authored-By: Pushkar Umaranikar \u003cpushkar.umaranikar@intel.com\u003e","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/e1b79156d5f1cfdede981272b1f73d0603dc42d9"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/e1b79156d5f1cfdede981272b1f73d0603dc42d9"}]},"branch":"refs/heads/master"},"c74c0701270457887ecb272361e1013006a69de2":{"kind":"REWORK","_number":19,"created":"2017-04-05 14:40:02.000000000","uploader":{"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"},"ref":"refs/changes/16/396816/19","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/16/396816/19","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/19 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/19 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/19 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/19"}}},"commit":{"parents":[{"commit":"fa11427af53595532124c74991ddcee6a89624ff","subject":"Merge \"Use import_versioned_module from oslo.utils\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/fa11427af53595532124c74991ddcee6a89624ff"}]}],"author":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 01:39:34.000000000","tz":-420},"committer":{"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","date":"2017-04-05 14:39:03.000000000","tz":0},"subject":"v2: Content-Type: application/octet-stream header always added","message":"v2: Content-Type: application/octet-stream header always added\n\nThe bug: any existing Content-Type header cannot be found because the\ncall to headers.get() fails. Therefore we end up with two Content-Type\nheaders because a new one (applicaion/octet-stream) gets added\nunconditionally. The cause: the strings (keys and values) in the headers\ndict are converted from unicode sequences of type \u003cstr\u003e to utf-8\nsequences of type \u003cbytes\u003e. This happens in safe_encode()\n(oslo_utils/encodeutils.py:66). \u003cstr\u003e !\u003d \u003cbytes\u003e even if they appear to\nhave the same characters.\n\nHence, for python 3.x, _set_common_request_kwargs() adds content-type\nto header even if custom content-type is set in the request.\n\nThis results in unsupported media type exception when glance client\nis used with keystoneauth and python 3.x\n\nThe fix: follow the directions in encode_headers().\nIt says to do this just before sending the request. Honor this principle;\ndo not encode headers and then perform more business logic on them.\n\nChange-Id: Idf6079b32f70bc171f5016467048e917d42f296d\nCloses-bug: #1641239\nCo-Authored-By: Pushkar Umaranikar \u003cpushkar.umaranikar@intel.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/c74c0701270457887ecb272361e1013006a69de2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/c74c0701270457887ecb272361e1013006a69de2"}]},"branch":"refs/heads/master"},"52c26fa6e5e249bf2d1626c9cbd725e4d249f564":{"kind":"REWORK","_number":20,"created":"2017-04-05 14:41:18.000000000","uploader":{"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"},"ref":"refs/changes/16/396816/20","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/16/396816/20","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/20 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/20 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/20 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/20"}}},"commit":{"parents":[{"commit":"fa11427af53595532124c74991ddcee6a89624ff","subject":"Merge \"Use import_versioned_module from oslo.utils\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/fa11427af53595532124c74991ddcee6a89624ff"}]}],"author":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 01:39:34.000000000","tz":-420},"committer":{"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","date":"2017-04-05 14:41:02.000000000","tz":0},"subject":"v2: Content-Type: application/octet-stream header always added","message":"v2: Content-Type: application/octet-stream header always added\n\nThe bug: any existing Content-Type header cannot be found because the\ncall to headers.get() fails. Therefore we end up with two Content-Type\nheaders because a new one (applicaion/octet-stream) gets added\nunconditionally. The cause: the strings (keys and values) in the headers\ndict are converted from unicode sequences of type \u003cstr\u003e to utf-8\nsequences of type \u003cbytes\u003e. This happens in safe_encode()\n(oslo_utils/encodeutils.py:66). \u003cstr\u003e !\u003d \u003cbytes\u003e even if they appear to\nhave the same characters.\n\nHence, for python 3.x, _set_common_request_kwargs() adds content-type\nto header even if custom content-type is set in the request.\n\nThis results in unsupported media type exception when glance client\nis used with keystoneauth and python 3.x\n\nThe fix: follow the directions in encode_headers().\nIt says to do this just before sending the request. Honor this principle;\ndo not encode headers and then perform more business logic on them.\n\nChange-Id: Idf6079b32f70bc171f5016467048e917d42f296d\nCloses-bug: #1641239\nCo-Authored-By: Pushkar Umaranikar \u003cpushkar.umaranikar@intel.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/52c26fa6e5e249bf2d1626c9cbd725e4d249f564"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/52c26fa6e5e249bf2d1626c9cbd725e4d249f564"}]},"branch":"refs/heads/master"},"54a9bc622106b8c1081424a836e68e817f2362bc":{"kind":"REWORK","_number":21,"created":"2017-05-18 22:31:29.000000000","uploader":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"ref":"refs/changes/16/396816/21","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/16/396816/21","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/21 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/21 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/21 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/21"}}},"commit":{"parents":[{"commit":"a0edf0c2bfb7bcc8253aaf46f6a67607e9b09048","subject":"Updated from global requirements","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/a0edf0c2bfb7bcc8253aaf46f6a67607e9b09048"}]}],"author":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 01:39:34.000000000","tz":-420},"committer":{"name":"Eric Fried","email":"efried@us.ibm.com","date":"2017-05-18 22:31:28.000000000","tz":-300},"subject":"v2: Content-Type: application/octet-stream header always added","message":"v2: Content-Type: application/octet-stream header always added\n\nThe bug: any existing Content-Type header cannot be found because the\ncall to headers.get() fails. Therefore we end up with two Content-Type\nheaders because a new one (applicaion/octet-stream) gets added\nunconditionally. The cause: the strings (keys and values) in the headers\ndict are converted from unicode sequences of type \u003cstr\u003e to utf-8\nsequences of type \u003cbytes\u003e. This happens in safe_encode()\n(oslo_utils/encodeutils.py:66). \u003cstr\u003e !\u003d \u003cbytes\u003e even if they appear to\nhave the same characters.\n\nHence, for python 3.x, _set_common_request_kwargs() adds content-type\nto header even if custom content-type is set in the request.\n\nThis results in unsupported media type exception when glance client\nis used with keystoneauth and python 3.x\n\nThe fix: follow the directions in encode_headers().\nIt says to do this just before sending the request. Honor this principle;\ndo not encode headers and then perform more business logic on them.\n\nChange-Id: Idf6079b32f70bc171f5016467048e917d42f296d\nCloses-bug: #1641239\nCo-Authored-By: Pushkar Umaranikar \u003cpushkar.umaranikar@intel.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/54a9bc622106b8c1081424a836e68e817f2362bc"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/54a9bc622106b8c1081424a836e68e817f2362bc"}]},"branch":"refs/heads/master"},"03900522d4816fe5dc2958fa1eb30ab447cc8ee5":{"kind":"TRIVIAL_REBASE","_number":22,"created":"2017-05-19 19:02:00.000000000","uploader":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"ref":"refs/changes/16/396816/22","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/16/396816/22","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/22 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/22 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/22 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/16/396816/22"}}},"commit":{"parents":[{"commit":"7df87fd4a26ebee3899fbc42d21757bf880a10d4","subject":"Convert IOError from requests","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/7df87fd4a26ebee3899fbc42d21757bf880a10d4"}]}],"author":{"name":"ckonstanski","email":"ckonstanski@pippiandcarlos.com","date":"2016-11-12 01:39:34.000000000","tz":-420},"committer":{"name":"Eric Fried","email":"efried@us.ibm.com","date":"2017-05-19 19:02:00.000000000","tz":0},"subject":"v2: Content-Type: application/octet-stream header always added","message":"v2: Content-Type: application/octet-stream header always added\n\nThe bug: any existing Content-Type header cannot be found because the\ncall to headers.get() fails. Therefore we end up with two Content-Type\nheaders because a new one (applicaion/octet-stream) gets added\nunconditionally. The cause: the strings (keys and values) in the headers\ndict are converted from unicode sequences of type \u003cstr\u003e to utf-8\nsequences of type \u003cbytes\u003e. This happens in safe_encode()\n(oslo_utils/encodeutils.py:66). \u003cstr\u003e !\u003d \u003cbytes\u003e even if they appear to\nhave the same characters.\n\nHence, for python 3.x, _set_common_request_kwargs() adds content-type\nto header even if custom content-type is set in the request.\n\nThis results in unsupported media type exception when glance client\nis used with keystoneauth and python 3.x\n\nThe fix: follow the directions in encode_headers().\nIt says to do this just before sending the request. Honor this principle;\ndo not encode headers and then perform more business logic on them.\n\nChange-Id: Idf6079b32f70bc171f5016467048e917d42f296d\nCloses-bug: #1641239\nCo-Authored-By: Pushkar Umaranikar \u003cpushkar.umaranikar@intel.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/03900522d4816fe5dc2958fa1eb30ab447cc8ee5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/03900522d4816fe5dc2958fa1eb30ab447cc8ee5"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
