)]}'
{"id":"openstack%2Fpython-neutronclient~27270","triplet_id":"openstack%2Fpython-neutronclient~master~Ib168fadc67568d5d6247f7addbe731e8832a39de","project":"openstack/python-neutronclient","branch":"master","topic":"bp/quantum-client-ssl","hashtags":[],"change_id":"Ib168fadc67568d5d6247f7addbe731e8832a39de","subject":"Don\u0027t convert httplib2 exceptions to status codes","status":"MERGED","created":"2013-07-06 16:06:52.000000000","updated":"2013-07-11 14:32:53.000000000","submitted":"2013-07-11 14:32:53.000000000","submitter":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"total_comment_count":2,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"4e1bd9531c301629a097fd1987012116a13a1108","_number":27270,"virtual_id_number":27270,"owner":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":0,"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},{"value":0,"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},{"value":2,"date":"2013-07-11 14:32:53.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},{"value":0,"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},{"value":0,"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},{"value":0,"_account_id":5950,"name":"Ilya Shakhat","email":"shakhat@gmail.com","username":"shakhat"}],"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":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"all":[{"value":0,"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},{"value":0,"date":"2013-07-11 12:19:27.000000000","permitted_voting_range":{"min":0,"max":1},"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},{"value":2,"date":"2013-07-11 02:13:31.000000000","_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},{"value":2,"date":"2013-07-09 03:10:31.000000000","_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},{"value":1,"date":"2013-07-09 09:14:46.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":5950,"name":"Ilya Shakhat","email":"shakhat@gmail.com","username":"shakhat"}],"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":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"all":[{"value":0,"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},{"value":0,"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},{"value":1,"date":"2013-07-11 02:13:31.000000000","_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},{"value":0,"date":"2013-07-09 03:10:31.000000000","_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},{"value":0,"_account_id":5950,"name":"Ilya Shakhat","email":"shakhat@gmail.com","username":"shakhat"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},{"_account_id":5950,"name":"Ilya Shakhat","email":"shakhat@gmail.com","username":"shakhat"},{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2013-07-06 16:06:52.000000000","updated_by":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"reviewer":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"state":"REVIEWER"},{"updated":"2013-07-06 16:06:52.000000000","updated_by":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"reviewer":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"state":"REVIEWER"},{"updated":"2013-07-09 03:10:31.000000000","updated_by":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"reviewer":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"state":"REVIEWER"},{"updated":"2013-07-09 09:14:46.000000000","updated_by":{"_account_id":5950,"name":"Ilya Shakhat","email":"shakhat@gmail.com","username":"shakhat"},"reviewer":{"_account_id":5950,"name":"Ilya Shakhat","email":"shakhat@gmail.com","username":"shakhat"},"state":"REVIEWER"},{"updated":"2013-07-11 02:13:31.000000000","updated_by":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"reviewer":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"state":"REVIEWER"},{"updated":"2013-07-11 14:32:53.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"329d27ea3533441cc16f9ee864886fad82069583","author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 1:\n\nPreviously, status other than 401 and 403 would not raise exceptions.  This patch ensures that all httplib exceptions are now raised rather than being converted into a response.  That is probably a good thing for a python library such as quantumclient, but the change will break any dependents.  Can someone else chime in as to whether that is acceptable?","accounts_in_message":[],"_revision_number":1},{"id":"e959b1dc10635e47e0b5e4be56e65c8cfc4537e9","author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 1:\n\nIs it possible to use other http lib to solve this problem?","accounts_in_message":[],"_revision_number":1},{"id":"711897b3c241b7219151f7935222756c3768592d","author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 1: I would prefer that you didn\u0027t merge this\n\nwhat bug in httplib2? I am just worrying about the back comparability.","accounts_in_message":[],"_revision_number":1},{"id":"52ba609c985653548496f6c291ae6af8e0f1bd0f","author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 1:\n\nGong, I believe httplib2 with exceptions turned on works just fine, although some other projects (python-novaclient, python-cinderclient, etc) have switched to using of python-requests library. \n\nAccording to what is stated here https://blueprints.launchpad.net/python-novaclient/+spec/tls-verify they\u0027ve rejected httplib2 because it doesn\u0027t support checking of SSL certificates host names, but in fact it does.\n\nThe only thing that worries me is that there is a bug in httplib2, which was reported a few weeks ago, but hasn\u0027t been fixed yet (I mean httplib2 looks like a half-dead project).","accounts_in_message":[],"_revision_number":1},{"id":"94cc58188b194942b324046b3ad93db6bfe3a8ba","author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 1:\n\nMy fault, I forgot to add a url https://code.google.com/p/httplib2/issues/detail?id\u003d282\u0026q\u003dssl.\n\nThis change does almost the same as original httplib2 code with \u0027force_exceptions_to_status_code\u0027 set to True except it allows one to handle SSL exceptions separately if needed. So I believe there should be no problems with backward compatibility.","accounts_in_message":[],"_revision_number":1},{"id":"ef7206cf5631b65e78e78f6e47b195a3ff9b3b4d","author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 1: Rebased","accounts_in_message":[],"_revision_number":1},{"id":"dcc61d70f937938af4fe7ae9af78af17b5b4644c","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 2: Works for me\n\nBuild succeeded.\n\n- http://logs.openstack.org/27270/2/check/gate-python-quantumclient-pep8/697 : SUCCESS in 00:00:45\n- http://docs-draft.openstack.org/27270/2/check/gate-python-quantumclient-docs/597/doc/build/html/ : SUCCESS in 00:01:00\n- http://logs.openstack.org/27270/2/check/gate-python-quantumclient-python26/657 : SUCCESS in 00:00:55\n- http://logs.openstack.org/27270/2/check/gate-python-quantumclient-python27/656 : SUCCESS in 00:00:51\n- http://logs.openstack.org/27270/2/check/gate-tempest-devstack-vm-full/15666 : SUCCESS in 00:40:56\n- http://logs.openstack.org/27270/2/check/gate-tempest-devstack-vm-postgres-full/15382 : FAILURE in 00:42:05 (non-voting)\n- http://logs.openstack.org/27270/2/check/gate-tempest-devstack-vm-quantum/22068 : SUCCESS in 00:20:46\n- http://logs.openstack.org/27270/2/check/gate-grenade-devstack-vm/3345 : FAILURE in 00:09:58 (non-voting)\n","accounts_in_message":[],"_revision_number":2},{"id":"6635c5f6b776c1540d2bd6847bf19c3dfcd3e840","author":{"_account_id":9,"name":"LaunchpadSync","username":"launchpadsync"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 2:\n\ncode review expired after 1 week of no activity after a negative review, it can be restored using the `Restore Change` button under the Patch Set on the web interface","accounts_in_message":[],"_revision_number":2},{"id":"953dd916a744cbc4be8e4173cdea93eb9799708f","author":{"_account_id":9,"name":"LaunchpadSync","username":"launchpadsync"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 2: Abandoned\n\ncode review expired after 1 week of no activity after a negative review, it can be restored using the `Restore Change` button under the Patch Set on the web interface","accounts_in_message":[],"_revision_number":2},{"id":"b669af13f56d266fbb78b3cc6c4574bba3ccb98f","author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 2: I would prefer that you didn\u0027t merge this\n\nAutomatically re-added by Gerrit trivial rebase detection script.","accounts_in_message":[],"_revision_number":2},{"id":"dae705b085d2697ec5f79d57f3eac4536879c3af","author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 2: Rebased","accounts_in_message":[],"_revision_number":2},{"id":"0b34950f99619c6da8839098cfd36a0dac29dbfc","author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 2: Restored","accounts_in_message":[],"_revision_number":2},{"id":"8d4d4770efc1bee1259f61e735109ebd6d697826","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 3: Works for me\n\nBuild succeeded.\n\n- http://logs.openstack.org/27270/3/check/gate-python-quantumclient-pep8/738 : SUCCESS in 36s\n- http://docs-draft.openstack.org/27270/3/check/gate-python-quantumclient-docs/638/doc/build/html/ : SUCCESS in 50s\n- http://logs.openstack.org/27270/3/check/gate-python-quantumclient-python26/698 : SUCCESS in 47s\n- http://logs.openstack.org/27270/3/check/gate-python-quantumclient-python27/697 : SUCCESS in 51s\n- http://logs.openstack.org/27270/3/check/gate-tempest-devstack-vm-full/17224 : SUCCESS in 49m 34s\n- http://logs.openstack.org/27270/3/check/gate-tempest-devstack-vm-postgres-full/16934 : FAILURE in 50m 16s (non-voting)\n- http://logs.openstack.org/27270/3/check/gate-tempest-devstack-vm-quantum/23878 : SUCCESS in 19m 49s\n- http://logs.openstack.org/27270/3/check/gate-grenade-devstack-vm/4771 : FAILURE in 10m 13s (non-voting)\n","accounts_in_message":[],"_revision_number":3},{"id":"500bdd3e7adfed6d6110527e03caaa7f799d7740","author":{"_account_id":9,"name":"LaunchpadSync","username":"launchpadsync"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 3:\n\ncode review expired after 1 week of no activity after a negative review, it can be restored using the `Restore Change` button under the Patch Set on the web interface","accounts_in_message":[],"_revision_number":3},{"id":"dd380c7a32d3d9a5a02ef64667682e529214d13f","author":{"_account_id":9,"name":"LaunchpadSync","username":"launchpadsync"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 3:\n\ncode review expired after 1 week of no activity after a negative review, it can be restored using the `Restore Change` button under the Patch Set on the web interface","accounts_in_message":[],"_revision_number":3},{"id":"939a150261d99f49042231bf81e11dba12e0f612","author":{"_account_id":9,"name":"LaunchpadSync","username":"launchpadsync"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 3: Abandoned\n\ncode review expired after 1 week of no activity after a negative review, it can be restored using the `Restore Change` button under the Patch Set on the web interface","accounts_in_message":[],"_revision_number":3},{"id":"7d4ba26f6c8c0edc3376258a21cf632c08331c7f","author":{"_account_id":9,"name":"LaunchpadSync","username":"launchpadsync"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 3: Abandoned\n\ncode review expired after 1 week of no activity after a negative review, it can be restored using the `Restore Change` button under the Patch Set on the web interface","accounts_in_message":[],"_revision_number":3},{"id":"5fdaadc0b221d73f8dca1e772475b26a27a314f7","author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 3:\n\ngongysh: Can you please revisit this review and remove the -1 if Roman\u0027s changes have satisfied you?","accounts_in_message":[],"_revision_number":3},{"id":"da3241080b1f7fef6d65548b01a1a8acd085cb81","author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 3: I would prefer that you didn\u0027t merge this\n\nAutomatically re-added by Gerrit trivial rebase detection script.","accounts_in_message":[],"_revision_number":3},{"id":"d0b5124c808f46ed79d1fdda47d0b244be503ac4","author":{"_account_id":5950,"name":"Ilya Shakhat","email":"shakhat@gmail.com","username":"shakhat"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 3: (1 inline comment)\n\nThe overall change is good. Previously the code hid the original reason of error, for example it threw Unauthorized error even if the connection was failed due to network connectivity failure.","accounts_in_message":[],"_revision_number":3},{"id":"c095844eba76ccdc52c79b9c33a5094677a2e53c","author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 3: (1 inline comment)\n\n","accounts_in_message":[],"_revision_number":3},{"id":"6b1f08e5489fbbef934a9d9d13f86f3961f10772","author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 3: Restored","accounts_in_message":[],"_revision_number":3},{"id":"ba56f5bbfce090ea4778aaca01b754f34a357b44","author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 3: Restored","accounts_in_message":[],"_revision_number":3},{"id":"b7cc2116fc94113a91f5b79701280844f72d0d58","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 4: Works for me\n\nBuild succeeded.\n\n- http://logs.openstack.org/27270/4/check/gate-python-quantumclient-pep8/819 : SUCCESS in 1m 02s\n- http://docs-draft.openstack.org/27270/4/check/gate-python-quantumclient-docs/719/doc/build/html/ : SUCCESS in 58s\n- http://logs.openstack.org/27270/4/check/gate-python-quantumclient-python26/778 : SUCCESS in 1m 20s\n- http://logs.openstack.org/27270/4/check/gate-python-quantumclient-python27/777 : SUCCESS in 1m 00s\n- http://logs.openstack.org/27270/4/check/gate-tempest-devstack-vm-full/24217 : SUCCESS in 49m 19s\n- http://logs.openstack.org/27270/4/check/gate-tempest-devstack-vm-postgres-full/23923 : SUCCESS in 41m 24s\n- http://logs.openstack.org/27270/4/check/gate-tempest-devstack-vm-quantum/31668 : SUCCESS in 28m 54s\n- http://logs.openstack.org/27270/4/check/gate-grenade-devstack-vm/11116 : FAILURE in 38m 22s (non-voting)\n","accounts_in_message":[],"_revision_number":4},{"id":"d56b6f9f2c5901fd2a1fe4f9b64ed8fc48dcad2d","author":{"_account_id":5950,"name":"Ilya Shakhat","email":"shakhat@gmail.com","username":"shakhat"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 4: Looks good to me, but someone else must approve\n\n","accounts_in_message":[],"_revision_number":4},{"id":"e4d91a133fc1697b010e99dac97a24d98a15d3a2","author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"date":"2013-07-06 16:06:52.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"87bdab9373e44242574adc7ce52b29523a6a67f5","author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 4: Rebased","accounts_in_message":[],"_revision_number":4},{"id":"eb81a506346ec8527cb9c9eef0cfbaff30d715c4","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 5: Works for me\n\nBuild succeeded.\n\n- http://logs.openstack.org/27270/5/check/gate-python-quantumclient-pep8/864 : SUCCESS in 49s\n- http://docs-draft.openstack.org/27270/5/check/gate-python-quantumclient-docs/764/doc/build/html/ : SUCCESS in 52s\n- http://logs.openstack.org/27270/5/check/gate-python-quantumclient-python26/823 : SUCCESS in 1m 10s\n- http://logs.openstack.org/27270/5/check/gate-python-quantumclient-python27/822 : SUCCESS in 52s\n- http://logs.openstack.org/27270/5/check/gate-tempest-devstack-vm-full/27463 : SUCCESS in 42m 41s\n- http://logs.openstack.org/27270/5/check/gate-tempest-devstack-vm-postgres-full/27169 : SUCCESS in 43m 20s\n- http://logs.openstack.org/27270/5/check/gate-tempest-devstack-vm-quantum/35260 : SUCCESS in 17m 59s\n- http://logs.openstack.org/27270/5/check/gate-grenade-devstack-vm/13916 : FAILURE in 26m 02s (non-voting)\n","accounts_in_message":[],"_revision_number":5},{"id":"b7d8b7795816a8c6e7cf9a934167d1d056b76088","author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 5:\n\nMaru Newby,\nall **bad status will raise exceptions.\n\n        resp, replybody \u003d self.httpclient.do_request(action, method, body\u003dbody)\n        status_code \u003d self.get_status_code(resp)\n        if status_code in (httplib.OK,\n                           httplib.CREATED,\n                           httplib.ACCEPTED,\n                           httplib.NO_CONTENT):\n            return self.deserialize(replybody, status_code)\n        else:\n            self._handle_fault_response(status_code, replybody)","accounts_in_message":[],"_revision_number":5},{"id":"64e7947bf313b30e88561cc3ab5adb6c0dfd7ca7","author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 5: Looks good to me (core reviewer)\n\n","accounts_in_message":[],"_revision_number":5},{"id":"b0987a99d523956d1405aee5053ab8929a0aa319","author":{"_account_id":5950,"name":"Ilya Shakhat","email":"shakhat@gmail.com","username":"shakhat"},"date":"2013-07-06 16:06:52.000000000","message":"Patch Set 5: Looks good to me, but someone else must approve\n\nAutomatically re-added by Gerrit trivial rebase detection script.","accounts_in_message":[],"_revision_number":5},{"id":"986a5d633ebf28d61eff6feeb9408cb6e0df5b68","author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"date":"2013-07-08 08:27:49.000000000","message":"Uploaded patch set 6.","accounts_in_message":[],"_revision_number":6},{"id":"37392e80281b9092a2708bcd4fcaf984458ca70c","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-07-08 09:11:38.000000000","message":"Patch Set 6: Works for me\n\nBuild succeeded.\n\n- http://logs.openstack.org/27270/6/check/gate-python-neutronclient-pep8/11 : SUCCESS in 43s\n- http://docs-draft.openstack.org/27270/6/check/gate-python-neutronclient-docs/11/doc/build/html/ : SUCCESS in 1m 15s\n- http://logs.openstack.org/27270/6/check/gate-python-neutronclient-python26/11 : SUCCESS in 1m 28s\n- http://logs.openstack.org/27270/6/check/gate-python-neutronclient-python27/11 : SUCCESS in 47s\n- http://logs.openstack.org/27270/6/check/gate-tempest-devstack-vm-full/29165 : SUCCESS in 42m 00s\n- http://logs.openstack.org/27270/6/check/gate-tempest-devstack-vm-postgres-full/28871 : SUCCESS in 43m 26s\n- http://logs.openstack.org/27270/6/check/gate-tempest-devstack-vm-neutron/225 : SUCCESS in 19m 53s\n- http://logs.openstack.org/27270/6/check/gate-grenade-devstack-vm/15416 : FAILURE in 10m 37s (non-voting)\n","accounts_in_message":[],"_revision_number":6},{"id":"a6a3f2626c61deee81c0cbf5f3661234e29ed071","author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"date":"2013-07-09 03:10:31.000000000","message":"Patch Set 6: Looks good to me (core reviewer)\n\n","accounts_in_message":[],"_revision_number":6},{"id":"ead0699c5c2fbdf2a8a156410b2f3deeadac4165","author":{"_account_id":5950,"name":"Ilya Shakhat","email":"shakhat@gmail.com","username":"shakhat"},"date":"2013-07-09 09:14:46.000000000","message":"Patch Set 6: Looks good to me, but someone else must approve\n\n","accounts_in_message":[],"_revision_number":6},{"id":"216d3e0406a8c2add9ffe64eff60d820427f2611","author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"date":"2013-07-11 02:13:31.000000000","message":"Patch Set 6: Looks good to me (core reviewer); Approved\n\n","accounts_in_message":[],"_revision_number":6},{"id":"c294d7dff2790a0a5fd06c2345c6a19450323f88","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-07-11 02:23:21.000000000","message":"Patch Set 6: No score\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":6},{"id":"470fb0d08d6a4af86b38ff09c9b448344245b75b","author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"date":"2013-07-11 05:29:27.000000000","message":"Patch Set 6:\n\nreverify no bug","accounts_in_message":[],"_revision_number":6},{"id":"376255604e5da760978d7af5be7423275650663d","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-07-11 05:33:18.000000000","message":"Patch Set 6:\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":6},{"id":"1d09ff6715984f8cc384b7cb7b090bb48b1e500d","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-07-11 08:29:48.000000000","message":"Patch Set 6: Fails\n\nBuild failed.  For information on how to proceed, see https://wiki.openstack.org/wiki/GerritJenkinsGithub#Test_Failures\n\n- http://docs-draft.openstack.org/27270/6/gate/gate-python-neutronclient-docs/46/doc/build/html/ : SUCCESS in 59s\n- http://logs.openstack.org/27270/6/gate/gate-python-neutronclient-pep8/46 : SUCCESS in 50s\n- http://logs.openstack.org/27270/6/gate/gate-python-neutronclient-python26/43 : SUCCESS in 1m 35s\n- http://logs.openstack.org/27270/6/gate/gate-python-neutronclient-python27/46 : SUCCESS in 54s\n- http://logs.openstack.org/27270/6/gate/gate-tempest-devstack-vm-full/30940 : FAILURE in 4s\n- http://logs.openstack.org/27270/6/gate/gate-tempest-devstack-vm-postgres-full/30639 : FAILURE in 13m 59s\n- http://logs.openstack.org/27270/6/gate/gate-tempest-devstack-vm-neutron/2218 : FAILURE in 17m 20s\n- http://logs.openstack.org/27270/6/gate/gate-grenade-devstack-vm/17049 : FAILURE in 26m 19s (non-voting)\n","accounts_in_message":[],"_revision_number":6},{"id":"ea2ba19be323fe3039c2acca8c2a9bb6853d649f","author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"date":"2013-07-11 12:19:27.000000000","message":"Patch Set 6:\n\nreverify no bug","accounts_in_message":[],"_revision_number":6},{"id":"24b151e40c725c8b3fc78665a1711540cc92590f","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-07-11 12:19:29.000000000","message":"Patch Set 6: No score\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":6},{"id":"26980081320da792977d22cc6de0386b3b6a93f0","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-07-11 14:32:53.000000000","message":"Change has been successfully merged into the git repository.","accounts_in_message":[],"_revision_number":6},{"id":"8be82fccf34f7c2938ebad2f64e5019093c3ce8b","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-07-11 14:32:53.000000000","message":"Patch Set 6: Verified\n\nBuild succeeded.\n\n- http://docs-draft.openstack.org/27270/6/gate/gate-python-neutronclient-docs/49/doc/build/html/ : SUCCESS in 1m 13s\n- http://logs.openstack.org/27270/6/gate/gate-python-neutronclient-pep8/49 : SUCCESS in 50s\n- http://logs.openstack.org/27270/6/gate/gate-python-neutronclient-python26/44 : SUCCESS in 1m 46s\n- http://logs.openstack.org/27270/6/gate/gate-python-neutronclient-python27/49 : SUCCESS in 55s\n- http://logs.openstack.org/27270/6/gate/gate-tempest-devstack-vm-full/31130 : SUCCESS in 1h 00m 44s\n- http://logs.openstack.org/27270/6/gate/gate-tempest-devstack-vm-postgres-full/30823 : SUCCESS in 51m 28s\n- http://logs.openstack.org/27270/6/gate/gate-tempest-devstack-vm-neutron/2426 : SUCCESS in 23m 51s\n- http://logs.openstack.org/27270/6/gate/gate-grenade-devstack-vm/17203 : FAILURE in 31m 46s (non-voting)\n","accounts_in_message":[],"_revision_number":6}],"current_revision_number":6,"current_revision":"86a56d3cfdfa2ae769c75855dedb6a50e422bec1","revisions":{"3f67128e89d42cf9ce51ffff118e576f7a2412e5":{"kind":"REWORK","_number":1,"created":"2013-07-06 16:06:52.000000000","uploader":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"ref":"refs/changes/70/27270/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-neutronclient","ref":"refs/changes/70/27270/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/1"}}},"commit":{"parents":[{"commit":"b971ef0e3b3a757846667f66b4c96d54bb66d568","subject":"Fix a comment formatting to make pep8 test pass","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-neutronclient/commit/b971ef0e3b3a757846667f66b4c96d54bb66d568"}]}],"author":{"name":"Roman Podolyaka","email":"rpodolyaka@mirantis.com","date":"2013-04-19 13:15:20.000000000","tz":180},"committer":{"name":"Roman Podolyaka","email":"rpodolyaka@mirantis.com","date":"2013-04-19 13:22:02.000000000","tz":180},"subject":"Don\u0027t convert httplib2 exceptions to status codes","message":"Don\u0027t convert httplib2 exceptions to status codes\n\nCurrently HTTPClient class sets the \u0027force_exception_to_status_code\u0027\ninstance variable to True. This actually leads to the next problem:\nthere is no way to distinguish between errors which have the same\nstatus code. E. g. both SSL handshake error and a general Bad Request\nerror have status code 400, and the only way to distinguish between them\nis to analyze the error message content, that is both error-prone and ugly.\n\nThe proposed solution:\n  - leaves the \u0027force_exception_to_status_code\u0027 set to False\n  - adds a try/except wrapper for the request() call to handle\n    httplib2 exceptions (e. g. host not found, socket timeout, etc)\n\nChange-Id: Ib168fadc67568d5d6247f7addbe731e8832a39de\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-neutronclient/commit/3f67128e89d42cf9ce51ffff118e576f7a2412e5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-neutronclient/commit/3f67128e89d42cf9ce51ffff118e576f7a2412e5"}]},"branch":"refs/heads/master"},"d990fd69319950ed9a67147c81b9837bd2789853":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2013-07-06 16:06:52.000000000","uploader":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"ref":"refs/changes/70/27270/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-neutronclient","ref":"refs/changes/70/27270/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/2"}}},"commit":{"parents":[{"commit":"d4773466277884d62908351e8d02a9d42d1e26ab","subject":"Merge \"Improve unit tests for python-quantumclient\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-neutronclient/commit/d4773466277884d62908351e8d02a9d42d1e26ab"}]}],"author":{"name":"Roman Podolyaka","email":"rpodolyaka@mirantis.com","date":"2013-04-19 13:15:20.000000000","tz":180},"committer":{"name":"Gerrit Code Review","email":"review@openstack.org","date":"2013-05-13 12:59:42.000000000","tz":0},"subject":"Don\u0027t convert httplib2 exceptions to status codes","message":"Don\u0027t convert httplib2 exceptions to status codes\n\nCurrently HTTPClient class sets the \u0027force_exception_to_status_code\u0027\ninstance variable to True. This actually leads to the next problem:\nthere is no way to distinguish between errors which have the same\nstatus code. E. g. both SSL handshake error and a general Bad Request\nerror have status code 400, and the only way to distinguish between them\nis to analyze the error message content, that is both error-prone and ugly.\n\nThe proposed solution:\n  - leaves the \u0027force_exception_to_status_code\u0027 set to False\n  - adds a try/except wrapper for the request() call to handle\n    httplib2 exceptions (e. g. host not found, socket timeout, etc)\n\nChange-Id: Ib168fadc67568d5d6247f7addbe731e8832a39de\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-neutronclient/commit/d990fd69319950ed9a67147c81b9837bd2789853"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-neutronclient/commit/d990fd69319950ed9a67147c81b9837bd2789853"}]},"branch":"refs/heads/master"},"bf78c59eef741cff630c46d61190c29cb094fbc9":{"kind":"TRIVIAL_REBASE","_number":3,"created":"2013-07-06 16:06:52.000000000","uploader":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"ref":"refs/changes/70/27270/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-neutronclient","ref":"refs/changes/70/27270/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/3"}}},"commit":{"parents":[{"commit":"104276566abe58a46522266bab216aea059212c3","subject":"Merge \"Allow the HTTPClient consumer to pass endpoint_type.\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-neutronclient/commit/104276566abe58a46522266bab216aea059212c3"}]}],"author":{"name":"Roman Podolyaka","email":"rpodolyaka@mirantis.com","date":"2013-04-19 13:15:20.000000000","tz":180},"committer":{"name":"Gerrit Code Review","email":"review@openstack.org","date":"2013-05-21 06:50:20.000000000","tz":0},"subject":"Don\u0027t convert httplib2 exceptions to status codes","message":"Don\u0027t convert httplib2 exceptions to status codes\n\nCurrently HTTPClient class sets the \u0027force_exception_to_status_code\u0027\ninstance variable to True. This actually leads to the next problem:\nthere is no way to distinguish between errors which have the same\nstatus code. E. g. both SSL handshake error and a general Bad Request\nerror have status code 400, and the only way to distinguish between them\nis to analyze the error message content, that is both error-prone and ugly.\n\nThe proposed solution:\n  - leaves the \u0027force_exception_to_status_code\u0027 set to False\n  - adds a try/except wrapper for the request() call to handle\n    httplib2 exceptions (e. g. host not found, socket timeout, etc)\n\nChange-Id: Ib168fadc67568d5d6247f7addbe731e8832a39de\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-neutronclient/commit/bf78c59eef741cff630c46d61190c29cb094fbc9"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-neutronclient/commit/bf78c59eef741cff630c46d61190c29cb094fbc9"}]},"branch":"refs/heads/master"},"6e901a6def28afc8db2cd2417d00cfd191c9fe7a":{"kind":"REWORK","_number":4,"created":"2013-07-06 16:06:52.000000000","uploader":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"ref":"refs/changes/70/27270/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-neutronclient","ref":"refs/changes/70/27270/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/4"}}},"commit":{"parents":[{"commit":"e7593e1a8401de7b8d9e3dc3f67533cb2455132f","subject":"Fix mocking of HTTPClient.request() method.","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-neutronclient/commit/e7593e1a8401de7b8d9e3dc3f67533cb2455132f"}]}],"author":{"name":"Roman Podolyaka","email":"rpodolyaka@mirantis.com","date":"2013-04-19 13:15:20.000000000","tz":180},"committer":{"name":"Roman Podolyaka","email":"rpodolyaka@mirantis.com","date":"2013-06-18 15:40:13.000000000","tz":180},"subject":"Don\u0027t convert httplib2 exceptions to status codes","message":"Don\u0027t convert httplib2 exceptions to status codes\n\nCurrently HTTPClient class sets the \u0027force_exception_to_status_code\u0027\ninstance variable to True. This actually leads to the next problem:\nthere is no way to distinguish between errors which have the same\nstatus code. E. g. both SSL handshake error and a general Bad Request\nerror have status code 400, and the only way to distinguish between them\nis to analyze the error message content, that is both error-prone and ugly.\n\nThe proposed solution:\n  - leaves the \u0027force_exception_to_status_code\u0027 set to False\n  - adds a try/except wrapper for the request() call to handle\n    httplib2 exceptions (e. g. host not found, socket timeout, etc)\n\nBlueprint: quantum-client-ssl\n\nChange-Id: Ib168fadc67568d5d6247f7addbe731e8832a39de\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-neutronclient/commit/6e901a6def28afc8db2cd2417d00cfd191c9fe7a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-neutronclient/commit/6e901a6def28afc8db2cd2417d00cfd191c9fe7a"}]},"branch":"refs/heads/master"},"5dc4343cf9f181763c664c42610f44e2a2817c2f":{"kind":"TRIVIAL_REBASE","_number":5,"created":"2013-07-06 16:06:52.000000000","uploader":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"ref":"refs/changes/70/27270/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-neutronclient","ref":"refs/changes/70/27270/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/5"}}},"commit":{"parents":[{"commit":"8218cd1f26a9d1f95cb42ec8a093e84b866d1976","subject":"Merge \"Allow subnet name in lb-vip-create and lb-pool-create\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-neutronclient/commit/8218cd1f26a9d1f95cb42ec8a093e84b866d1976"}]}],"author":{"name":"Roman Podolyaka","email":"rpodolyaka@mirantis.com","date":"2013-04-19 13:15:20.000000000","tz":180},"committer":{"name":"Gerrit Code Review","email":"review@openstack.org","date":"2013-07-01 08:09:43.000000000","tz":0},"subject":"Don\u0027t convert httplib2 exceptions to status codes","message":"Don\u0027t convert httplib2 exceptions to status codes\n\nCurrently HTTPClient class sets the \u0027force_exception_to_status_code\u0027\ninstance variable to True. This actually leads to the next problem:\nthere is no way to distinguish between errors which have the same\nstatus code. E. g. both SSL handshake error and a general Bad Request\nerror have status code 400, and the only way to distinguish between them\nis to analyze the error message content, that is both error-prone and ugly.\n\nThe proposed solution:\n  - leaves the \u0027force_exception_to_status_code\u0027 set to False\n  - adds a try/except wrapper for the request() call to handle\n    httplib2 exceptions (e. g. host not found, socket timeout, etc)\n\nBlueprint: quantum-client-ssl\n\nChange-Id: Ib168fadc67568d5d6247f7addbe731e8832a39de\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-neutronclient/commit/5dc4343cf9f181763c664c42610f44e2a2817c2f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-neutronclient/commit/5dc4343cf9f181763c664c42610f44e2a2817c2f"}]},"branch":"refs/heads/master"},"86a56d3cfdfa2ae769c75855dedb6a50e422bec1":{"kind":"REWORK","_number":6,"created":"2013-07-08 08:27:49.000000000","uploader":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"ref":"refs/changes/70/27270/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-neutronclient","ref":"refs/changes/70/27270/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-neutronclient refs/changes/70/27270/6"}}},"commit":{"parents":[{"commit":"4e3be8d3426e619bdbb266d475a4d025e0446759","subject":"Renamed quantum to neutron in .gitreview","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-neutronclient/commit/4e3be8d3426e619bdbb266d475a4d025e0446759"}]}],"author":{"name":"Roman Podolyaka","email":"rpodolyaka@mirantis.com","date":"2013-04-19 13:15:20.000000000","tz":180},"committer":{"name":"Roman Podolyaka","email":"rpodolyaka@mirantis.com","date":"2013-07-08 08:04:57.000000000","tz":180},"subject":"Don\u0027t convert httplib2 exceptions to status codes","message":"Don\u0027t convert httplib2 exceptions to status codes\n\nCurrently HTTPClient class sets the \u0027force_exception_to_status_code\u0027\ninstance variable to True. This actually leads to the next problem:\nthere is no way to distinguish between errors which have the same\nstatus code. E. g. both SSL handshake error and a general Bad Request\nerror have status code 400, and the only way to distinguish between them\nis to analyze the error message content, that is both error-prone and ugly.\n\nThe proposed solution:\n  - leaves the \u0027force_exception_to_status_code\u0027 set to False\n  - adds a try/except wrapper for the request() call to handle\n    httplib2 exceptions (e. g. host not found, socket timeout, etc)\n\nBlueprint: quantum-client-ssl\n\nChange-Id: Ib168fadc67568d5d6247f7addbe731e8832a39de\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-neutronclient/commit/86a56d3cfdfa2ae769c75855dedb6a50e422bec1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-neutronclient/commit/86a56d3cfdfa2ae769c75855dedb6a50e422bec1"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
