)]}'
{"id":"openstack%2Fpython-novaclient~83041","triplet_id":"openstack%2Fpython-novaclient~master~Id59e48f61bb3f3c6223302355c849e1e99673410","project":"openstack/python-novaclient","branch":"master","topic":"fix_session_handling_squash","hashtags":[],"change_id":"Id59e48f61bb3f3c6223302355c849e1e99673410","subject":"Fix session handling in novaclient","status":"MERGED","created":"2014-03-26 11:29:10.000000000","updated":"2014-04-08 01:54:52.000000000","submitted":"2014-04-08 01:54:52.000000000","submitter":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"total_comment_count":31,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"6279ce6aae4172c410e212d9df2531b59242a6a1","_number":83041,"virtual_id_number":83041,"owner":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":2,"date":"2014-04-08 01:54:52.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},{"value":0,"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},{"value":0,"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},{"value":0,"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},{"value":0,"_account_id":4978,"name":"Julie Pichon","email":"jpichon@redhat.com","username":"jpichon"},{"value":0,"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"value":0,"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},{"value":0,"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},{"value":0,"_account_id":2455,"name":"Tihomir Trifonov","email":"t.trifonov@gmail.com","username":"ttrifonov"},{"value":0,"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"value":0,"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},{"value":0,"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"}],"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":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"all":[{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":2,"date":"2014-04-07 17:48:05.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},{"value":0,"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},{"value":0,"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},{"value":0,"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},{"value":0,"_account_id":4978,"name":"Julie Pichon","email":"jpichon@redhat.com","username":"jpichon"},{"value":0,"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"value":0,"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},{"value":0,"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},{"value":0,"_account_id":2455,"name":"Tihomir Trifonov","email":"t.trifonov@gmail.com","username":"ttrifonov"},{"value":2,"date":"2014-04-07 17:41:47.000000000","_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"value":1,"date":"2014-04-07 20:33:48.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},{"value":0,"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"}],"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":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"all":[{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":1,"date":"2014-04-07 17:48:05.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},{"value":0,"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},{"value":0,"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},{"value":0,"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},{"value":0,"_account_id":4978,"name":"Julie Pichon","email":"jpichon@redhat.com","username":"jpichon"},{"value":0,"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"value":0,"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},{"value":0,"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},{"value":0,"_account_id":2455,"name":"Tihomir Trifonov","email":"t.trifonov@gmail.com","username":"ttrifonov"},{"value":0,"date":"2014-04-07 17:41:47.000000000","_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"value":0,"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},{"value":0,"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},{"value":0,"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},{"value":0,"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},{"value":0,"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},{"value":0,"_account_id":4978,"name":"Julie Pichon","email":"jpichon@redhat.com","username":"jpichon"},{"value":0,"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"value":0,"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},{"value":0,"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},{"value":0,"_account_id":2455,"name":"Tihomir Trifonov","email":"t.trifonov@gmail.com","username":"ttrifonov"},{"value":0,"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"value":0,"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},{"value":0,"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"_account_id":2455,"name":"Tihomir Trifonov","email":"t.trifonov@gmail.com","username":"ttrifonov"},{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},{"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"_account_id":4978,"name":"Julie Pichon","email":"jpichon@redhat.com","username":"jpichon"},{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2014-03-26 11:54:52.000000000","updated_by":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"reviewer":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"state":"REVIEWER"},{"updated":"2014-03-26 13:00:59.000000000","updated_by":{"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},"reviewer":{"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},"state":"REVIEWER"},{"updated":"2014-03-26 15:22:49.000000000","updated_by":{"_account_id":4978,"name":"Julie Pichon","email":"jpichon@redhat.com","username":"jpichon"},"reviewer":{"_account_id":4978,"name":"Julie Pichon","email":"jpichon@redhat.com","username":"jpichon"},"state":"REVIEWER"},{"updated":"2014-03-28 17:36:26.000000000","updated_by":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"reviewer":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"state":"REVIEWER"},{"updated":"2014-04-02 08:23:37.000000000","updated_by":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"reviewer":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"state":"REVIEWER"},{"updated":"2014-04-03 16:49:20.000000000","updated_by":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"reviewer":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"state":"REVIEWER"},{"updated":"2014-04-03 18:32:17.000000000","updated_by":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"reviewer":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"state":"REVIEWER"},{"updated":"2014-04-03 21:22:24.000000000","updated_by":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"reviewer":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"state":"REVIEWER"},{"updated":"2014-04-04 10:01:05.000000000","updated_by":{"_account_id":2455,"name":"Tihomir Trifonov","email":"t.trifonov@gmail.com","username":"ttrifonov"},"reviewer":{"_account_id":2455,"name":"Tihomir Trifonov","email":"t.trifonov@gmail.com","username":"ttrifonov"},"state":"REVIEWER"},{"updated":"2014-04-07 17:41:47.000000000","updated_by":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"reviewer":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"state":"REVIEWER"},{"updated":"2014-04-07 17:48:05.000000000","updated_by":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"reviewer":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"state":"REVIEWER"},{"updated":"2014-04-08 01:54:52.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"e911b3bc25d61381b6d074b36d2ed73177e1250f","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-26 11:29:11.000000000","message":"Patch Set 1:\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":1},{"id":"9bfb95f85f2eabeaf85a14cd36773cddf07ab1b4","author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"date":"2014-03-26 11:39:10.000000000","message":"Patch Set 1: I would prefer that you didn\u0027t merge this\n\n(2 inline comments)\n\n2 typos in the commit message.\n\nOtherwise this looks correct.  Thanks for the fix.","accounts_in_message":[],"_revision_number":1},{"id":"e0d21a24c4117fbf507b1e786628e471169ce264","author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"date":"2014-03-26 11:42:57.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"1353f4258f9c83584d909489b39d9645bfc52982","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-26 11:42:58.000000000","message":"Patch Set 2:\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":2},{"id":"58502621dc8be8d76fa30f8e91885da9a9c08529","author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"date":"2014-03-26 11:43:01.000000000","message":"Patch Set 1: (2 inline comments)\n\n","accounts_in_message":[],"_revision_number":1},{"id":"d1f75fe8650fe894869e1efe3d6c8982e68f555f","author":{"_account_id":5494,"name":"Trivial Rebase","email":"trivial-rebase@review.openstack.org","username":"trivial-rebase"},"date":"2014-03-26 11:43:06.000000000","message":"Patch Set 2:\n\nNew patchset patch-id matches previous patchset, but commit message has changed.","accounts_in_message":[],"_revision_number":2},{"id":"40cd012f274157fd1080e658da0982e7d4e7a522","author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"date":"2014-03-26 11:54:52.000000000","message":"Patch Set 2: I would prefer that you didn\u0027t merge this\n\n(1 inline comment)\n\nIMHO this should also be adding a test case to novaclient/tests which exercises the problem using  multiprocessing.Pool, so we can be sure we don\u0027t regress again in the future. The lack of testing in the original commit which introduced this problem is not great either.","accounts_in_message":[],"_revision_number":2},{"id":"5e2cc39beebb7a089837540c1a4cf64ab489a7a4","author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"date":"2014-03-26 12:45:26.000000000","message":"Patch Set 2: I would prefer that you didn\u0027t merge this\n\nAs discussed on IRC - Horizon really needs this to be a global cache (usually per web worker), so we need to change this in such a way so that we can pass a global object where to store these as well so as not to undo the benefits of the fix that caused this.","accounts_in_message":[],"_revision_number":2},{"id":"638f4f61533f90d5da09f3522ab295621673e495","author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"date":"2014-03-26 12:49:48.000000000","message":"Patch Set 2: (1 inline comment)\n\n","accounts_in_message":[],"_revision_number":2},{"id":"aba22083092a4dfefe651897256b3075911804c9","author":{"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},"date":"2014-03-26 13:00:59.000000000","message":"Patch Set 2: I would prefer that you didn\u0027t merge this\n\nAs far as I can see, you\u0027ll introduce a regression to re-open bug https://bugs.launchpad.net/horizon/+bug/1247056","accounts_in_message":[],"_revision_number":2},{"id":"6d75b0d56e1101a42923c3dee8502bb014292220","author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"date":"2014-03-26 13:11:39.000000000","message":"Patch Set 2:\n\nMatthias, \n\nwe already discussed with Nikola in IRC and we will provide the way to use \"global\" cache in clients. But this \"global\" cache should be created inside project that would like to use it","accounts_in_message":[],"_revision_number":2},{"id":"c30126fd84a8adfab772745afbcb2699e72ae9d6","author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"date":"2014-03-26 13:27:48.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"0f94ec53de05155edfc0ec2dfa21c3e081ca7e60","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-26 13:27:52.000000000","message":"Patch Set 3:\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":3},{"id":"52861e588b2ff4f45410c5d430e569a4f86e0184","author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"date":"2014-03-26 14:05:35.000000000","message":"Patch Set 3: I would prefer that you didn\u0027t merge this\n\n(1 inline comment)\n\nA small naming nit - otherwise vnice. I will propose a WIP to horizon.","accounts_in_message":[],"_revision_number":3},{"id":"7da5c0c5248bd36a761f39c1b5e30bff6a8b4cf3","author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"date":"2014-03-26 14:29:56.000000000","message":"Patch Set 3: (1 inline comment)\n\ngoing to write unit tests and rename class + variables","accounts_in_message":[],"_revision_number":3},{"id":"35c5c3909eb9e178f16ed3b1702e8829d819640e","author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"date":"2014-03-26 14:31:55.000000000","message":"Patch Set 3:\n\nOne more thing - we need to expose this on version clients so Horizon can use this... see v1.1/client.py and v3/client.py","accounts_in_message":[],"_revision_number":3},{"id":"ffefb9ec1b06380b1b557c62f28a3af638fbbf3f","author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"date":"2014-03-26 14:34:23.000000000","message":"Patch Set 3: (1 inline comment)\n\n","accounts_in_message":[],"_revision_number":3},{"id":"7cb72fce2659e43d28c2f37350c4c650f0341563","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-26 15:20:57.000000000","message":"Patch Set 3: Works for me\n\nBuild succeeded.\n\n- gate-python-novaclient-pep8 http://logs.openstack.org/41/83041/3/check/gate-python-novaclient-pep8/1ff7984 : SUCCESS in 1m 11s\n- gate-python-novaclient-docs http://docs-draft.openstack.org/41/83041/3/check/gate-python-novaclient-docs/d2bf68f/doc/build/html/ : SUCCESS in 1m 35s\n- gate-python-novaclient-python26 http://logs.openstack.org/41/83041/3/check/gate-python-novaclient-python26/834288a : SUCCESS in 46s\n- gate-python-novaclient-python27 http://logs.openstack.org/41/83041/3/check/gate-python-novaclient-python27/f95926d : SUCCESS in 1m 23s\n- check-grenade-dsvm http://logs.openstack.org/41/83041/3/check/check-grenade-dsvm/9793fca : SUCCESS in 35m 08s\n- check-tempest-dsvm-full http://logs.openstack.org/41/83041/3/check/check-tempest-dsvm-full/a123d5a : SUCCESS in 54m 04s\n- check-tempest-dsvm-neutron http://logs.openstack.org/41/83041/3/check/check-tempest-dsvm-neutron/25d8194 : SUCCESS in 44m 49s\n- check-tempest-dsvm-neutron-heat-slow http://logs.openstack.org/41/83041/3/check/check-tempest-dsvm-neutron-heat-slow/5dd370d : SUCCESS in 25m 26s\n- gate-python-novaclient-python33 http://logs.openstack.org/41/83041/3/check/gate-python-novaclient-python33/c8be7ff : SUCCESS in 3m 21s\n- gate-python-novaclient-pypy http://logs.openstack.org/41/83041/3/check/gate-python-novaclient-pypy/1bff6ec : SUCCESS in 1m 53s (non-voting)\n- check-devstack-dsvm-cells http://logs.openstack.org/41/83041/3/check/check-devstack-dsvm-cells/5e6d077 : SUCCESS in 14m 24s\n- check-tempest-dsvm-postgres-full http://logs.openstack.org/41/83041/3/check/check-tempest-dsvm-postgres-full/b663da9 : SUCCESS in 51m 59s\n- gate-tempest-dsvm-large-ops http://logs.openstack.org/41/83041/3/check/gate-tempest-dsvm-large-ops/daaca59 : SUCCESS in 14m 57s\n- gate-tempest-dsvm-neutron-large-ops http://logs.openstack.org/41/83041/3/check/gate-tempest-dsvm-neutron-large-ops/db4b66b : SUCCESS in 20m 51s\n\n","accounts_in_message":[],"_revision_number":3},{"id":"bb552d0d2ba0d5725f08cd1b1e4d320c8b208664","author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"date":"2014-03-26 17:25:25.000000000","message":"Patch Set 3: (3 inline comments)\n\n","accounts_in_message":[],"_revision_number":3},{"id":"ce7c8fe077b303342e2505ff4a44896083178b6c","author":{"_account_id":2455,"name":"Tihomir Trifonov","email":"t.trifonov@gmail.com","username":"ttrifonov"},"date":"2014-03-26 19:23:47.000000000","message":"Patch Set 3:\n\nHey, in the commit that introduced the static adapter pool, I was unaware that it might be used within process pools. So pity it wasn\u0027t reviewed by more people to overcome the issue then than re-fixing it now.\n\nI have a couple of suggestions on the topic. \n\nFirst - the problem here comes from requests.Session(). It uses a connection pool. So it might be better to use a requests.Session() only if the calling module(project) explicitly requires it, otherwise - stick to one-time requests(using requests.request() as it is in python-swiftclient). This could be combined with the proposed logic for passing some kind of adapter pool(e.g. use Session if adapter_pool is present). But trying to fake the Session() with some fake adapter pool will actually hit the bug that the previous change tried to fix - creating an HTTPAdapter as instance variable will keep the connections open for a long time and will not reuse them(the original bug description). I see that you provided a patch for Horizon to use it\u0027s own global cache, but all other projects might continue use the buggy version with local adapter pool. At least it is not obvious to users that not passing an adapter_pool might cause them problems.\n\nSecond - the current code could be fixed if taken into account the os.getpid() when looking up into the static adapter pool, this way it won\u0027t use other processes\u0027 adapters. Not sure if this would work, just a suggestion.","accounts_in_message":[],"_revision_number":3},{"id":"45440cf1044c75e14707b40f7b94b195ab33f96b","author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"date":"2014-03-27 20:40:06.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"089871eeab89ad65b4ba5dade275ba9978624c19","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-27 20:40:07.000000000","message":"Patch Set 4:\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":4},{"id":"db92baa48a1eaef9532a0f629d40ea0864ccb022","author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"date":"2014-03-27 20:49:15.000000000","message":"Patch Set 4: (3 inline comments)\n\nSo, I don\u0027t see any substantive code changes here, just some name changes.  Could you comment on the points raised by Tihomir Trifonov?","accounts_in_message":[],"_revision_number":4},{"id":"f4def896bfd2622323a118ec3e608ea3ec5ca371","author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"date":"2014-03-27 21:31:54.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"767f6c728fc7f647f433b116b93d32797a7bd9c3","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-27 21:31:55.000000000","message":"Patch Set 5:\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":5},{"id":"98395b80ecaf58ac25d1d8dcce57c7a4ae83c321","author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"date":"2014-03-27 21:44:46.000000000","message":"Patch Set 5:\n\n@Kevin,\n\nMy answer will be short. \nThe problem is in code here: \nhttps://github.com/openstack/python-novaclient/commit/36db3b95f556d5f57a2bf49303b24a0b25b4b7e8\n\nNot in request library. \n\nThere are couple of anti patterns here: \n1) Don\u0027t use singletons in libraries \n2) Don\u0027t use global variables in libraries \n3) If you are using global variables, don\u0027t store open sockets inside them!","accounts_in_message":[],"_revision_number":5},{"id":"4e0d6039ee6178a8439f781b03fff9cc8f07a708","author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"date":"2014-03-27 22:32:07.000000000","message":"Uploaded patch set 6.","accounts_in_message":[],"_revision_number":6},{"id":"558bae40602c793c61ac2d1529a9b208bc1ae4db","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-27 22:32:08.000000000","message":"Patch Set 6:\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":6},{"id":"8ec70d22b53a9926ce4d5b2f370271933d1c78b4","author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"date":"2014-03-27 22:35:04.000000000","message":"Uploaded patch set 7.","accounts_in_message":[],"_revision_number":7},{"id":"78aa92e5d55549c30c91c7ab2817b3ca255a0a3e","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-27 22:35:05.000000000","message":"Patch Set 7:\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":7},{"id":"8c7e6d3528e26220c677f0bf0ea09a6125ea800f","author":{"_account_id":5494,"name":"Trivial Rebase","email":"trivial-rebase@review.openstack.org","username":"trivial-rebase"},"date":"2014-03-27 22:35:12.000000000","message":"Patch Set 7:\n\nNew patchset patch-id matches previous patchset, but commit message has changed.","accounts_in_message":[],"_revision_number":7},{"id":"cfea4f55f126e0b51a00d3e9979aaa72220dfec0","author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"date":"2014-03-27 22:35:22.000000000","message":"Patch Set 4: (2 inline comments)\n\n","accounts_in_message":[],"_revision_number":4},{"id":"7b475fc00ed0c6b0ab76cf2fb08f5aaf5ba86cf3","author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"date":"2014-03-27 23:08:41.000000000","message":"Patch Set 7: Looks good to me (core reviewer)\n\nHrm, I may have misidentified the commenter I was thinking about.  What I\u0027m most interested in is that we don\u0027t reintroduce the problem that the broken code was introduced to correct :)  Anyway, it looks good to me, so…","accounts_in_message":[],"_revision_number":7},{"id":"18198257c70c6e833a061849f859ac09caa7922d","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-27 23:44:57.000000000","message":"Patch Set 7: Works for me\n\nBuild succeeded.\n\n- gate-python-novaclient-pep8 http://logs.openstack.org/41/83041/7/check/gate-python-novaclient-pep8/3c19e6f : SUCCESS in 41s\n- gate-python-novaclient-docs http://docs-draft.openstack.org/41/83041/7/check/gate-python-novaclient-docs/ea7d3f4/doc/build/html/ : SUCCESS in 1m 52s\n- gate-python-novaclient-python26 http://logs.openstack.org/41/83041/7/check/gate-python-novaclient-python26/d23609e : SUCCESS in 1m 17s\n- gate-python-novaclient-python27 http://logs.openstack.org/41/83041/7/check/gate-python-novaclient-python27/58c53d1 : SUCCESS in 1m 14s\n- check-grenade-dsvm http://logs.openstack.org/41/83041/7/check/check-grenade-dsvm/001aead : SUCCESS in 34m 49s\n- check-tempest-dsvm-full http://logs.openstack.org/41/83041/7/check/check-tempest-dsvm-full/9b41c6d : SUCCESS in 46m 17s\n- check-tempest-dsvm-neutron http://logs.openstack.org/41/83041/7/check/check-tempest-dsvm-neutron/7fb02e1 : SUCCESS in 45m 49s\n- check-tempest-dsvm-neutron-heat-slow http://logs.openstack.org/41/83041/7/check/check-tempest-dsvm-neutron-heat-slow/7e8f176 : SUCCESS in 22m 23s\n- gate-python-novaclient-python33 http://logs.openstack.org/41/83041/7/check/gate-python-novaclient-python33/c322bf4 : SUCCESS in 3m 56s\n- gate-python-novaclient-pypy http://logs.openstack.org/41/83041/7/check/gate-python-novaclient-pypy/25aecf5 : SUCCESS in 2m 21s (non-voting)\n- check-devstack-dsvm-cells http://logs.openstack.org/41/83041/7/check/check-devstack-dsvm-cells/7ebe5de : SUCCESS in 12m 52s\n- check-tempest-dsvm-postgres-full http://logs.openstack.org/41/83041/7/check/check-tempest-dsvm-postgres-full/a9166d5 : SUCCESS in 45m 13s\n- gate-tempest-dsvm-large-ops http://logs.openstack.org/41/83041/7/check/gate-tempest-dsvm-large-ops/6bbddbf : SUCCESS in 16m 03s\n- gate-tempest-dsvm-neutron-large-ops http://logs.openstack.org/41/83041/7/check/gate-tempest-dsvm-neutron-large-ops/45c10d6 : SUCCESS in 15m 01s\n\n","accounts_in_message":[],"_revision_number":7},{"id":"e15c80af24d44dca93e0f83a7d5d0cff8ba84a97","author":{"_account_id":2455,"name":"Tihomir Trifonov","email":"t.trifonov@gmail.com","username":"ttrifonov"},"date":"2014-03-28 08:54:34.000000000","message":"Patch Set 7:\n\nOk, it seems my comment was not understood correctly. I jist wanted to explain that the problem is with this code using requests.Session() and not in the requests.Session code itself. \n\nrequests.Session() creates two HTTPAdapter() and assigns them to (http://* and https://*). Each HTTPAdapter creates its own ConnectionPool. The connections in the Pool are not closed automatically(they use keep-alive), as the idea of a Pool is to keep them open for upcoming requests. The undesired behavior appear when using the python-novaclient within projects that run into re-entrant persistent processes, as they will create new novaclients, which themselves will instantiate new pools, and the connections from the pools will remain open for a long time, unless some timeout expires. The idea behind requests.Session is to keep the connection pool open as long as possible for reuse. requests.Session is efficient if is used for enough long time. This way - instantiating a new adapter inside the instance will probably introduce the original bug within some projects.\n\nAlso - I do not argue against the anti-patterns - you\u0027re right about them. I just say that ideally, requests.Session() should be used only if a connection pool is provided, otherwise - keeping to the requests.request() method, which has the same syntax as Session() and could be easily added into the code without refactoring. Using requests.Session with pool as instance variable is dangerous(this is actually the original bug being fixed by me). And it is dangerous, because the session object is not closed anywhere, hence the connections in it are not explicitly closed, and remain open unless they hit a timeout.\n\nPlease spend some time examining the requests.Session code to see what I want to explain here. I believe this was the right way to fix the original bug, and I\u0027m sorry that I introduced the aforementioned anti-patterns into the library.","accounts_in_message":[],"_revision_number":7},{"id":"aab1e43c6a6f0fb72a2b531acc4c77a6d2a41dbc","author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"date":"2014-03-28 11:26:10.000000000","message":"Patch Set 7: I would prefer that you didn\u0027t merge this\n\nI think this generally goes in the right direction, however it would be good to figure out how to demonstrate that we don\u0027t reintroduce the horizon problem.\n\nWhat\u0027s the test scenario we could gate on for something like this? Because right now in the gate we don\u0027t do enough horizon activity to trigger the exhaustion that was seen.","accounts_in_message":[],"_revision_number":7},{"id":"3a11dc583bbbe81ec2fd473dfc49ced7d0e67d0b","author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"date":"2014-03-28 12:37:23.000000000","message":"Patch Set 7: Looks good to me (core reviewer)\n\nI agree with Tihomir.\n\nWhoever added the Session as the default behaviour of the client introduced this problem. IMHO we should have the clients work in 3 modes:\n\n1) Default - since connection without poolong\n2) As a context manager with a context-long requests.Session\n3) With a possibility to pass in a global pool like this patch introduces\n\nI don\u0027t think that making the client thread or process safe is something that we should ever do. You should instantiate a client per process if you want that.\n\nI plan to post a patch for 1) and 2) as soon as the RC madness clears up.\n\nSean - We should not demonstrate anything as we are not claiming that we are making the client thread safe or otherwise, we should just document what we do and have sane defaults that make it difficult to shoot yourself in the foot.\n\nAgain - the bug is that we used Session without closing it. We should fix that, but since another project is having issues that this patch fixes and is inline with the direction of how we should fix it we should accept it first.\n\nNo +A until cores agree tho","accounts_in_message":[],"_revision_number":7},{"id":"21533421d1a9ff3055b3c2d35542a97cda186cf8","author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"date":"2014-03-28 12:42:39.000000000","message":"Patch Set 7:\n\nSean, \n\nAbout testing. I can make test that checks that nova python library is partially thread safe.  It could be done in next way (in tempest): \n\n1) Create one VM\n2) Create pool with 5-6 process and run nova.servers.get(by_uuid) for 10-15 times if any of this calls fails \u003d\u003e it\u0027s not thread safe. (And this is relative small load to the cloud) \n\nNikola,\n\nabsolutely agree that Clients shouldn\u0027t be thread/process safe. (if you are sharing clients through process you should think about what the hell are you doing and refactor code\u003d)","accounts_in_message":[],"_revision_number":7},{"id":"c69add190264298f9e2416d3f611b1446a23db59","author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"date":"2014-03-28 12:46:34.000000000","message":"Patch Set 7:\n\nmy concern for this change is mostly breaking horizon right at release. If we are convinced that horizon has a sufficiently different work around, cool. And I\u0027ll +A.\n\nIf not, can we get a bug registered with Horizon to give them a heads up this is coming. And preferably wait post release so we don\u0027t cause them a firedrill.","accounts_in_message":[],"_revision_number":7},{"id":"cea1aee582d5a085e59d69dff000501caebe0e45","author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"date":"2014-03-28 12:50:29.000000000","message":"Patch Set 7:\n\nSean, \n\nSo the idea is that they can make simple patch, that will create global object in horizon (not in python nova client) and pass it to nova client.  And they will get absolutely the same behavior.","accounts_in_message":[],"_revision_number":7},{"id":"502bac074c2221b670540632184fb74863cde262","author":{"_account_id":2455,"name":"Tihomir Trifonov","email":"t.trifonov@gmail.com","username":"ttrifonov"},"date":"2014-03-28 14:26:26.000000000","message":"Patch Set 7: Looks good to me, but someone else must approve\n\nIn my previous comment I was wrong a bit - actually requests.request() creates a single Session() object and uses it. So using requests.request() instead of session.request() is actually the same(it will use only 1 adapter per client instance, but that\u0027s not a big win though).\n\nThe problem here comes that if a project works as a proxy and executes multiple requests into a single process(any wsgi service?), using requests library is a problem if the connections are not closed after each execution.\n\n@Nikola Dipanov already started a quick patch that will fix the bug in Horizon. But I guess a code overview should be done for other projects as well, maybe in later stage.","accounts_in_message":[],"_revision_number":7},{"id":"ed4969b9fb4e489e473b02f7c2d6793a1dc32e03","author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"date":"2014-03-28 17:36:26.000000000","message":"Patch Set 7: (2 inline comments)\n\nA few changes that would be nice.","accounts_in_message":[],"_revision_number":7},{"id":"97e050e8449014b48a50f9025f6e297fd28dc7a7","author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"date":"2014-03-28 17:42:19.000000000","message":"Patch Set 7: (1 inline comment)\n\n","accounts_in_message":[],"_revision_number":7},{"id":"2b3efe9059af5efeb29c8cd16efe81739eaf020f","author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"date":"2014-04-02 08:23:24.000000000","message":"Uploaded patch set 8.","accounts_in_message":[],"_revision_number":8},{"id":"a4104ff080eb79e0951aee8a68edce14c865198b","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-04-02 08:23:26.000000000","message":"Patch Set 8:\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":8},{"id":"a727e7f65d88ed5c651961f24bbb651ec7729373","author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"date":"2014-04-02 08:23:37.000000000","message":"Patch Set 8: Looks good to me (core reviewer)\n\nAutomatically re-added by Gerrit trivial rebase detection script.","accounts_in_message":[],"_revision_number":8},{"id":"99a5e3db66ea22fca821f971393070b7b3620f98","author":{"_account_id":2455,"name":"Tihomir Trifonov","email":"t.trifonov@gmail.com","username":"ttrifonov"},"date":"2014-04-02 08:23:37.000000000","message":"Patch Set 8: Looks good to me, but someone else must approve\n\nAutomatically re-added by Gerrit trivial rebase detection script.","accounts_in_message":[],"_revision_number":8},{"id":"55f694bdc6ba255387d6f0c17e7eaa3323aadd85","author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"date":"2014-04-02 08:23:37.000000000","message":"Patch Set 8: I would prefer that you didn\u0027t merge this\n\nAutomatically re-added by Gerrit trivial rebase detection script.","accounts_in_message":[],"_revision_number":8},{"id":"fbc237762a6d4e5e40f45fd5ef39e3f877098d0a","author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"date":"2014-04-02 08:23:38.000000000","message":"Patch Set 8: Looks good to me (core reviewer)\n\nAutomatically re-added by Gerrit trivial rebase detection script.","accounts_in_message":[],"_revision_number":8},{"id":"3410e260add650d459a57c5882a630bd5f6d7bc0","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-04-02 09:21:04.000000000","message":"Patch Set 8: Works for me\n\nBuild succeeded.\n\n- gate-python-novaclient-pep8 http://logs.openstack.org/41/83041/8/check/gate-python-novaclient-pep8/7ec4b75 : SUCCESS in 53s\n- gate-python-novaclient-docs http://docs-draft.openstack.org/41/83041/8/check/gate-python-novaclient-docs/6b05c13/doc/build/html/ : SUCCESS in 1m 35s\n- gate-python-novaclient-python26 http://logs.openstack.org/41/83041/8/check/gate-python-novaclient-python26/25ce1d3 : SUCCESS in 1m 12s\n- gate-python-novaclient-python27 http://logs.openstack.org/41/83041/8/check/gate-python-novaclient-python27/ca2b296 : SUCCESS in 1m 14s\n- check-grenade-dsvm http://logs.openstack.org/41/83041/8/check/check-grenade-dsvm/f95b38c : SUCCESS in 42m 49s\n- check-tempest-dsvm-full http://logs.openstack.org/41/83041/8/check/check-tempest-dsvm-full/b2ba628 : SUCCESS in 53m 50s\n- check-tempest-dsvm-neutron http://logs.openstack.org/41/83041/8/check/check-tempest-dsvm-neutron/8f1e56b : SUCCESS in 57m 34s\n- check-tempest-dsvm-neutron-heat-slow http://logs.openstack.org/41/83041/8/check/check-tempest-dsvm-neutron-heat-slow/aaceb8e : SUCCESS in 21m 26s\n- gate-python-novaclient-python33 http://logs.openstack.org/41/83041/8/check/gate-python-novaclient-python33/179a311 : SUCCESS in 4m 18s\n- gate-python-novaclient-pypy http://logs.openstack.org/41/83041/8/check/gate-python-novaclient-pypy/8880c33 : SUCCESS in 2m 19s (non-voting)\n- check-devstack-dsvm-cells http://logs.openstack.org/41/83041/8/check/check-devstack-dsvm-cells/7082d2b : SUCCESS in 10m 42s\n- check-tempest-dsvm-postgres-full http://logs.openstack.org/41/83041/8/check/check-tempest-dsvm-postgres-full/67266a4 : SUCCESS in 51m 00s\n- gate-tempest-dsvm-large-ops http://logs.openstack.org/41/83041/8/check/gate-tempest-dsvm-large-ops/d4bd754 : SUCCESS in 14m 46s\n- gate-tempest-dsvm-neutron-large-ops http://logs.openstack.org/41/83041/8/check/gate-tempest-dsvm-neutron-large-ops/40db2b3 : SUCCESS in 17m 19s\n\n","accounts_in_message":[],"_revision_number":8},{"id":"6f2e167bac1a5db40050a92e20c852fc2789981d","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-04-02 13:59:11.000000000","message":"Patch Set 9:\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":9},{"id":"2b785f5692e09618a35cd4a3687fa05fcd51363d","author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"date":"2014-04-02 13:59:11.000000000","message":"Uploaded patch set 9.","accounts_in_message":[],"_revision_number":9},{"id":"6bf5369910bf1433f232fbaabfa24dc63f9e58ee","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-04-02 15:29:31.000000000","message":"Patch Set 9: Doesn\u0027t seem to work\n\nBuild failed.  For information on how to proceed, see https://wiki.openstack.org/wiki/GerritJenkinsGit#Test_Failures\n\n- gate-python-novaclient-pep8 http://logs.openstack.org/41/83041/9/check/gate-python-novaclient-pep8/c19c190 : SUCCESS in 1m 16s\n- gate-python-novaclient-docs http://docs-draft.openstack.org/41/83041/9/check/gate-python-novaclient-docs/d414f0b/doc/build/html/ : SUCCESS in 1m 42s\n- gate-python-novaclient-python26 http://logs.openstack.org/41/83041/9/check/gate-python-novaclient-python26/b5bab64 : SUCCESS in 1m 27s\n- gate-python-novaclient-python27 http://logs.openstack.org/41/83041/9/check/gate-python-novaclient-python27/96e56e2 : SUCCESS in 1m 20s\n- check-grenade-dsvm http://logs.openstack.org/41/83041/9/check/check-grenade-dsvm/d6ef184 : SUCCESS in 36m 04s\n- check-tempest-dsvm-full http://logs.openstack.org/41/83041/9/check/check-tempest-dsvm-full/8ced345 : SUCCESS in 57m 52s\n- check-tempest-dsvm-neutron http://logs.openstack.org/41/83041/9/check/check-tempest-dsvm-neutron/ba55b85 : SUCCESS in 49m 04s\n- check-tempest-dsvm-neutron-heat-slow http://logs.openstack.org/41/83041/9/check/check-tempest-dsvm-neutron-heat-slow/0693680 : SUCCESS in 23m 05s\n- gate-python-novaclient-python33 http://logs.openstack.org/41/83041/9/check/gate-python-novaclient-python33/315d4b7 : SUCCESS in 4m 38s\n- gate-python-novaclient-pypy http://logs.openstack.org/41/83041/9/check/gate-python-novaclient-pypy/6cc53c7 : SUCCESS in 2m 27s (non-voting)\n- check-devstack-dsvm-cells http://logs.openstack.org/41/83041/9/check/check-devstack-dsvm-cells/4b4b40d : SUCCESS in 11m 19s\n- check-tempest-dsvm-postgres-full http://logs.openstack.org/41/83041/9/check/check-tempest-dsvm-postgres-full/6348689 : FAILURE in 1h 14m 02s\n- gate-tempest-dsvm-large-ops http://logs.openstack.org/41/83041/9/check/gate-tempest-dsvm-large-ops/dffb675 : SUCCESS in 14m 35s\n- gate-tempest-dsvm-neutron-large-ops http://logs.openstack.org/41/83041/9/check/gate-tempest-dsvm-neutron-large-ops/dcce919 : SUCCESS in 16m 45s\n\n","accounts_in_message":[],"_revision_number":9},{"id":"ec890c6370d09c8369be8ea1ed65516718020a7b","author":{"_account_id":8871,"name":"Elastic Recheck","username":"elasticrecheck"},"date":"2014-04-02 15:31:12.000000000","message":"Patch Set 9:\n\nI noticed jenkins failed, I think you hit bug(s):\n\n- check-tempest-dsvm-postgres-full: https://bugs.launchpad.net/bugs/1273292\n\nWe don\u0027t automatically recheck or reverify, so please consider\ndoing that manually if someone hasn\u0027t already. For a code review\nwhich is not yet approved, you can recheck by leaving a code\nreview comment with just the text:\n\n    recheck bug 1273292\nFor bug details see: http://status.openstack.org/elastic-recheck/","accounts_in_message":[],"_revision_number":9},{"id":"3aa046686ff47b3712e8e6e769b5c10404697ae7","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-04-02 15:47:26.000000000","message":"Patch Set 9: No score\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":9},{"id":"8bfe2ffaa9deaf575e4f589a19dcfa0fce17f5f2","author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"date":"2014-04-02 15:47:26.000000000","message":"Patch Set 9: Looks good to me (core reviewer)\n\n(3 inline comments)\n\nrecheck bug 1273292","accounts_in_message":[],"_revision_number":9},{"id":"56c6fa4c006e470f2dc3cc4e818cf937de53866f","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-04-02 16:53:18.000000000","message":"Patch Set 9: Works for me\n\nBuild succeeded.\n\n- gate-python-novaclient-pep8 http://logs.openstack.org/41/83041/9/check/gate-python-novaclient-pep8/8bd29e3 : SUCCESS in 1m 20s\n- gate-python-novaclient-docs http://docs-draft.openstack.org/41/83041/9/check/gate-python-novaclient-docs/84e4ffb/doc/build/html/ : SUCCESS in 1m 45s\n- gate-python-novaclient-python26 http://logs.openstack.org/41/83041/9/check/gate-python-novaclient-python26/bc8e0fc : SUCCESS in 1m 17s\n- gate-python-novaclient-python27 http://logs.openstack.org/41/83041/9/check/gate-python-novaclient-python27/fc9dc64 : SUCCESS in 1m 21s\n- check-grenade-dsvm http://logs.openstack.org/41/83041/9/check/check-grenade-dsvm/00c70cd : SUCCESS in 36m 08s\n- check-tempest-dsvm-full http://logs.openstack.org/41/83041/9/check/check-tempest-dsvm-full/39cd433 : SUCCESS in 48m 59s\n- check-tempest-dsvm-neutron http://logs.openstack.org/41/83041/9/check/check-tempest-dsvm-neutron/8f82bc6 : SUCCESS in 54m 24s\n- check-tempest-dsvm-neutron-heat-slow http://logs.openstack.org/41/83041/9/check/check-tempest-dsvm-neutron-heat-slow/efa0a9c : SUCCESS in 26m 45s\n- gate-python-novaclient-python33 http://logs.openstack.org/41/83041/9/check/gate-python-novaclient-python33/6fef077 : SUCCESS in 3m 40s\n- gate-python-novaclient-pypy http://logs.openstack.org/41/83041/9/check/gate-python-novaclient-pypy/3351b0e : SUCCESS in 2m 25s (non-voting)\n- check-devstack-dsvm-cells http://logs.openstack.org/41/83041/9/check/check-devstack-dsvm-cells/e00726c : SUCCESS in 13m 41s\n- check-tempest-dsvm-postgres-full http://logs.openstack.org/41/83041/9/check/check-tempest-dsvm-postgres-full/0cb78ac : SUCCESS in 40m 40s\n- gate-tempest-dsvm-large-ops http://logs.openstack.org/41/83041/9/check/gate-tempest-dsvm-large-ops/d9b8220 : SUCCESS in 15m 19s\n- gate-tempest-dsvm-neutron-large-ops http://logs.openstack.org/41/83041/9/check/gate-tempest-dsvm-neutron-large-ops/238305e : SUCCESS in 19m 03s\n\n","accounts_in_message":[],"_revision_number":9},{"id":"77078c6d0b377294caa12fbcb772595d0972031b","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2014-04-02 22:50:49.000000000","message":"Patch Set 9: Looks good to me, but someone else must approve\n\n(1 inline comment)\n\n","accounts_in_message":[],"_revision_number":9},{"id":"c1c164b76d38a3a6194626373b5f6c4b31997bdd","author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"date":"2014-04-03 10:30:38.000000000","message":"Patch Set 9: (3 inline comments)\n\n","accounts_in_message":[],"_revision_number":9},{"id":"88620657a5c27a1dbeaead30fda7b102e3ec64c8","author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"date":"2014-04-03 10:33:26.000000000","message":"Uploaded patch set 10.","accounts_in_message":[],"_revision_number":10},{"id":"5421b33717076b72d25c86f5155f80fb61d4d942","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-04-03 10:33:27.000000000","message":"Patch Set 10:\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":10},{"id":"c47c08a86d948f40be10567f4112cd35c12bd68d","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-04-03 11:30:25.000000000","message":"Patch Set 10: Doesn\u0027t seem to work\n\nBuild failed.  For information on how to proceed, see https://wiki.openstack.org/wiki/GerritJenkinsGit#Test_Failures\n\n- gate-python-novaclient-pep8 http://logs.openstack.org/41/83041/10/check/gate-python-novaclient-pep8/4e20ed3 : SUCCESS in 50s\n- gate-python-novaclient-docs http://logs.openstack.org/41/83041/10/check/gate-python-novaclient-docs/40e5a86 : FAILURE in 52s\n- gate-python-novaclient-python26 http://logs.openstack.org/41/83041/10/check/gate-python-novaclient-python26/8805dc8 : SUCCESS in 1m 15s\n- gate-python-novaclient-python27 http://logs.openstack.org/41/83041/10/check/gate-python-novaclient-python27/da31792 : SUCCESS in 1m 21s\n- check-grenade-dsvm http://logs.openstack.org/41/83041/10/check/check-grenade-dsvm/257b5fa : SUCCESS in 35m 58s\n- check-tempest-dsvm-full http://logs.openstack.org/41/83041/10/check/check-tempest-dsvm-full/07b1d99 : SUCCESS in 39m 59s\n- check-tempest-dsvm-neutron http://logs.openstack.org/41/83041/10/check/check-tempest-dsvm-neutron/9916730 : SUCCESS in 51m 18s\n- check-tempest-dsvm-neutron-heat-slow http://logs.openstack.org/41/83041/10/check/check-tempest-dsvm-neutron-heat-slow/e7cae6a : SUCCESS in 21m 07s\n- gate-python-novaclient-python33 http://logs.openstack.org/41/83041/10/check/gate-python-novaclient-python33/87f7b15 : SUCCESS in 3m 47s\n- gate-python-novaclient-pypy http://logs.openstack.org/41/83041/10/check/gate-python-novaclient-pypy/dde12ee : SUCCESS in 2m 03s (non-voting)\n- check-devstack-dsvm-cells http://logs.openstack.org/41/83041/10/check/check-devstack-dsvm-cells/14df734 : SUCCESS in 10m 50s\n- check-tempest-dsvm-postgres-full http://logs.openstack.org/41/83041/10/check/check-tempest-dsvm-postgres-full/a9aca3b : SUCCESS in 54m 51s\n- gate-tempest-dsvm-large-ops http://logs.openstack.org/41/83041/10/check/gate-tempest-dsvm-large-ops/77a58cb : SUCCESS in 17m 29s\n- gate-tempest-dsvm-neutron-large-ops http://logs.openstack.org/41/83041/10/check/gate-tempest-dsvm-neutron-large-ops/48c2c1d : SUCCESS in 15m 59s\n\n","accounts_in_message":[],"_revision_number":10},{"id":"cb031f5ee7ced3054e71cd42f335a347a751669b","author":{"_account_id":8871,"name":"Elastic Recheck","username":"elasticrecheck"},"date":"2014-04-03 11:30:42.000000000","message":"Patch Set 10:\n\nI noticed jenkins failed, I think you hit bug(s):\n\n- gate-python-novaclient-docs: https://bugs.launchpad.net/bugs/1270382\n\nWe don\u0027t automatically recheck or reverify, so please consider\ndoing that manually if someone hasn\u0027t already. For a code review\nwhich is not yet approved, you can recheck by leaving a code\nreview comment with just the text:\n\n    recheck bug 1270382\nFor bug details see: http://status.openstack.org/elastic-recheck/","accounts_in_message":[],"_revision_number":10},{"id":"aadce94339e82af288f692a82cefc861ea98a2bd","author":{"_account_id":2455,"name":"Tihomir Trifonov","email":"t.trifonov@gmail.com","username":"ttrifonov"},"date":"2014-04-03 11:52:10.000000000","message":"Patch Set 10: (3 inline comments)\n\n","accounts_in_message":[],"_revision_number":10},{"id":"4b627eec4461a0618e0da3a96d23e4c03f255d51","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-04-03 12:26:17.000000000","message":"Patch Set 10: No score\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":10},{"id":"6467d37f04debdc9ebfd136b9dd6f25bcd428d66","author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"date":"2014-04-03 12:26:17.000000000","message":"Patch Set 10:\n\nrecheck bug 1270382","accounts_in_message":[],"_revision_number":10},{"id":"70a8d73cbbf1a5a86d5f03c30a4ae3538c0ad716","author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"date":"2014-04-03 12:53:40.000000000","message":"Uploaded patch set 11.","accounts_in_message":[],"_revision_number":11},{"id":"308dd2404513672273a620d412bd22243bc482bc","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-04-03 12:53:42.000000000","message":"Patch Set 11:\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":11},{"id":"33e1694a465ca01cd6bd197955b9424428b808ce","author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"date":"2014-04-03 13:30:33.000000000","message":"Patch Set 10: (1 inline comment)\n\n","accounts_in_message":[],"_revision_number":10},{"id":"2a8b2e64072b0cd78cc0884dbef60bdd9cc9a3f4","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-04-03 13:50:42.000000000","message":"Patch Set 11: Works for me\n\nBuild succeeded.\n\n- gate-python-novaclient-pep8 http://logs.openstack.org/41/83041/11/check/gate-python-novaclient-pep8/10aed5e : SUCCESS in 1m 10s\n- gate-python-novaclient-docs http://docs-draft.openstack.org/41/83041/11/check/gate-python-novaclient-docs/2e3161c/doc/build/html/ : SUCCESS in 1m 42s\n- gate-python-novaclient-python26 http://logs.openstack.org/41/83041/11/check/gate-python-novaclient-python26/7b66133 : SUCCESS in 1m 10s\n- gate-python-novaclient-python27 http://logs.openstack.org/41/83041/11/check/gate-python-novaclient-python27/be3a38b : SUCCESS in 1m 26s\n- check-grenade-dsvm http://logs.openstack.org/41/83041/11/check/check-grenade-dsvm/649e923 : SUCCESS in 40m 02s\n- check-tempest-dsvm-full http://logs.openstack.org/41/83041/11/check/check-tempest-dsvm-full/d452fcc : SUCCESS in 56m 00s\n- check-tempest-dsvm-neutron http://logs.openstack.org/41/83041/11/check/check-tempest-dsvm-neutron/73dd80f : SUCCESS in 55m 39s\n- check-tempest-dsvm-neutron-heat-slow http://logs.openstack.org/41/83041/11/check/check-tempest-dsvm-neutron-heat-slow/2341881 : SUCCESS in 21m 55s\n- gate-python-novaclient-python33 http://logs.openstack.org/41/83041/11/check/gate-python-novaclient-python33/5adf9e7 : SUCCESS in 4m 16s\n- gate-python-novaclient-pypy http://logs.openstack.org/41/83041/11/check/gate-python-novaclient-pypy/bd0a82f : SUCCESS in 1m 46s (non-voting)\n- check-devstack-dsvm-cells http://logs.openstack.org/41/83041/11/check/check-devstack-dsvm-cells/90a7c5f : SUCCESS in 11m 37s\n- check-tempest-dsvm-postgres-full http://logs.openstack.org/41/83041/11/check/check-tempest-dsvm-postgres-full/4adf1b5 : SUCCESS in 50m 43s\n- gate-tempest-dsvm-large-ops http://logs.openstack.org/41/83041/11/check/gate-tempest-dsvm-large-ops/cb23b2a : SUCCESS in 14m 03s\n- gate-tempest-dsvm-neutron-large-ops http://logs.openstack.org/41/83041/11/check/gate-tempest-dsvm-neutron-large-ops/c173438 : SUCCESS in 15m 45s\n\n","accounts_in_message":[],"_revision_number":11},{"id":"5b9a7ca6573a8a4e13dc46a26aea2fd06a78afba","author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"date":"2014-04-03 16:21:19.000000000","message":"Patch Set 11: Looks good to me (core reviewer)\n\n","accounts_in_message":[],"_revision_number":11},{"id":"a64b784d30aa261fd3f615ae508827b965f15d8c","author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"date":"2014-04-03 16:49:20.000000000","message":"Patch Set 11: Looks good to me, but someone else must approve\n\n","accounts_in_message":[],"_revision_number":11},{"id":"8ce68c1704649f27d96bef9948f6d134144b46f8","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2014-04-03 18:32:17.000000000","message":"Patch Set 11: Looks good to me, but someone else must approve\n\nNice","accounts_in_message":[],"_revision_number":11},{"id":"3c118427145f9eed9dcf48d7ce0e3ac5eb262883","author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"date":"2014-04-03 20:32:23.000000000","message":"Patch Set 11: I would prefer that you didn\u0027t merge this\n\nSo based on the linked bugs this patch will require some changes in horizon to work. I am not very keen on yet another change to the default behavior for this. I would rather keep the current behavior and make this the optional behavior.\n\nThat being said I would like to get some horizon folks feedback on this.  So -1 until get more horizon feedback.","accounts_in_message":[],"_revision_number":11},{"id":"8dfef845a17f6008e1ccc34b9ac1adf2f4401d5f","author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"date":"2014-04-03 20:50:14.000000000","message":"Patch Set 11: Looks good to me, but someone else must approve\n\nJoe, \n\nnot sure what you mean? \n\nPrevious patch (that changed behavior) Produce big issue (non thread safe library) \u003d\u003e broke all Rally Nova benchmarks \u003d\u003e my sadness\n\nHorizon guys agree that this should be fixed. And together with Nikola we found the way to handle everybody cases (Horizon and Rally) + make nova python client thread safe.\n\nBut yep it requires small changes in Horizon (cause there is no more global variable in python client, and \"it\" should be moved to Horizon code)","accounts_in_message":[],"_revision_number":11},{"id":"b8831f2afd94d7513701b89be53f77473131c29f","author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"date":"2014-04-03 20:53:58.000000000","message":"Patch Set 11:\n\nso two issues:\n\n* I would like to see a +1 from horizon folks on this\n* I am hesitant to change the default behavior yet again. I agree that this is a nasty bug that should be fixed, just not convinced we need to turn this on by default and risk breaking people who are using the current default behavior.","accounts_in_message":[],"_revision_number":11},{"id":"a8bee057590afacc8d074a55a572a85d6c222827","author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"date":"2014-04-03 21:22:24.000000000","message":"Patch Set 11:\n\nJoe,\n\nNo it wouldn\u0027t require changes - that\u0027s why I rewrote the original patch by Boris. Plus I\u0027ve been testing it all day with Horizon folks - and this works for them. I\u0027ll get them to +1 it tomorrow.\n\nThe issue (that I\u0027ve been able to narrow down so far) is actually likely in Django/Horizon since it seems that stuff just does not get GCed when it really should, meaning there is some nasty global state in Django/Horizon (or the way we deploy it for testing).\n\nI will look into this more when I get a chance. On a side note - no one should design libraries APIs on premises of GC closing connections (I\u0027m looking at both novaclient and requests - but they started it :))","accounts_in_message":[],"_revision_number":11},{"id":"12d2d077172c3b37f29a79ef7356383306dcc5be","author":{"_account_id":2455,"name":"Tihomir Trifonov","email":"t.trifonov@gmail.com","username":"ttrifonov"},"date":"2014-04-04 10:01:05.000000000","message":"Patch Set 11: Looks good to me, but someone else must approve\n\nWe\u0027ve discussed with Nikola Dipanov the problem. Currently the patch works fine in Horizon. There is an issue with setting requests.Session() as instance variable, which causes problems with Horizon, which we couldn\u0027t find why happens, but the patch however works fine with and without connection pool. The root cause of the problem still needs to be revealed, but it is not introduced in that patch.","accounts_in_message":[],"_revision_number":11},{"id":"0d2777a90aaf78a9b4abd57f6033010d3344bd55","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-04-07 17:17:10.000000000","message":"Patch Set 11: No score\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":11},{"id":"480a8db3b10ef92aa5b040eae33906d1c4c495bb","author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"date":"2014-04-07 17:17:10.000000000","message":"Patch Set 11:\n\nLGTM, but this needs a docimpact flag, then +2","accounts_in_message":[],"_revision_number":11},{"id":"93f2db2a4574d7441a79e9c226aee6dacc3240d0","author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"date":"2014-04-07 17:39:10.000000000","message":"Uploaded patch set 12.","accounts_in_message":[],"_revision_number":12},{"id":"6dbc977dfafb40f4b149786317886fa6f0d784a7","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-04-07 17:39:11.000000000","message":"Patch Set 12:\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":12},{"id":"acac1627b67928cb9a1bca81eaee92949d975ec0","author":{"_account_id":5494,"name":"Trivial Rebase","email":"trivial-rebase@review.openstack.org","username":"trivial-rebase"},"date":"2014-04-07 17:39:19.000000000","message":"Patch Set 12:\n\nNew patchset patch-id matches previous patchset, but commit message has changed.","accounts_in_message":[],"_revision_number":12},{"id":"a7b49b4009d56039f8c734b6d791d8ab1c021ad7","author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"date":"2014-04-07 17:41:47.000000000","message":"Patch Set 12: Looks good to me (core reviewer)\n\nLGTM, just a rebase with DocImpact","accounts_in_message":[],"_revision_number":12},{"id":"c262961e0060c5862539f4b6b80d41af3ed63fea","author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"date":"2014-04-07 17:48:05.000000000","message":"Patch Set 12: Looks good to me (core reviewer); Approved\n\n","accounts_in_message":[],"_revision_number":12},{"id":"19aaa042cf3d48ea73b6af206630e7452ce78304","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-04-07 18:49:41.000000000","message":"Patch Set 12: Works for me\n\nBuild succeeded.\n\n- gate-python-novaclient-pep8 http://logs.openstack.org/41/83041/12/check/gate-python-novaclient-pep8/d36a963 : SUCCESS in 50s\n- gate-python-novaclient-docs http://docs-draft.openstack.org/41/83041/12/check/gate-python-novaclient-docs/f9b8a84/doc/build/html/ : SUCCESS in 1m 45s\n- gate-python-novaclient-python26 http://logs.openstack.org/41/83041/12/check/gate-python-novaclient-python26/497516f : SUCCESS in 1m 27s\n- gate-python-novaclient-python27 http://logs.openstack.org/41/83041/12/check/gate-python-novaclient-python27/8f839c0 : SUCCESS in 1m 40s\n- check-grenade-dsvm http://logs.openstack.org/41/83041/12/check/check-grenade-dsvm/59b4e1a : SUCCESS in 39m 53s\n- check-tempest-dsvm-full http://logs.openstack.org/41/83041/12/check/check-tempest-dsvm-full/964669c : SUCCESS in 1h 07m 34s\n- check-tempest-dsvm-neutron http://logs.openstack.org/41/83041/12/check/check-tempest-dsvm-neutron/fa6c1fb : SUCCESS in 51m 45s\n- check-tempest-dsvm-neutron-heat-slow http://logs.openstack.org/41/83041/12/check/check-tempest-dsvm-neutron-heat-slow/4960b32 : SUCCESS in 22m 19s\n- gate-python-novaclient-python33 http://logs.openstack.org/41/83041/12/check/gate-python-novaclient-python33/20c99de : SUCCESS in 4m 23s\n- gate-python-novaclient-pypy http://logs.openstack.org/41/83041/12/check/gate-python-novaclient-pypy/c7ea580 : SUCCESS in 2m 10s (non-voting)\n- check-devstack-dsvm-cells http://logs.openstack.org/41/83041/12/check/check-devstack-dsvm-cells/3ec4047 : SUCCESS in 14m 01s\n- check-tempest-dsvm-postgres-full http://logs.openstack.org/41/83041/12/check/check-tempest-dsvm-postgres-full/741bdcc : SUCCESS in 53m 56s\n- gate-tempest-dsvm-large-ops http://logs.openstack.org/41/83041/12/check/gate-tempest-dsvm-large-ops/bef9eb4 : SUCCESS in 14m 26s\n- gate-tempest-dsvm-neutron-large-ops http://logs.openstack.org/41/83041/12/check/gate-tempest-dsvm-neutron-large-ops/381a6c1 : SUCCESS in 16m 55s\n\n","accounts_in_message":[],"_revision_number":12},{"id":"4852682400d2da9280ebdeaffa21d6013d01cc96","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-04-07 18:49:42.000000000","message":"Patch Set 12: No score\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":12},{"id":"cd3f8e13d930e5e2427d9c28d51401e68e1c836a","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-04-07 20:03:13.000000000","message":"Patch Set 12: Fails\n\nBuild failed.  For information on how to proceed, see https://wiki.openstack.org/wiki/GerritJenkinsGit#Test_Failures\n\n- gate-python-novaclient-docs http://docs-draft.openstack.org/41/83041/12/gate/gate-python-novaclient-docs/345d713/doc/build/html/ : SUCCESS in 1m 37s\n- gate-python-novaclient-pep8 http://logs.openstack.org/41/83041/12/gate/gate-python-novaclient-pep8/7ec4a92 : SUCCESS in 1m 06s\n- gate-python-novaclient-python26 http://logs.openstack.org/41/83041/12/gate/gate-python-novaclient-python26/138dc0d : SUCCESS in 1m 10s\n- gate-python-novaclient-python27 http://logs.openstack.org/41/83041/12/gate/gate-python-novaclient-python27/78c7826 : SUCCESS in 1m 25s\n- gate-grenade-dsvm http://logs.openstack.org/41/83041/12/gate/gate-grenade-dsvm/0a4273c : SUCCESS in 38m 29s\n- gate-tempest-dsvm-full http://logs.openstack.org/41/83041/12/gate/gate-tempest-dsvm-full/14a968e : SUCCESS in 1h 12m 40s\n- gate-tempest-dsvm-neutron http://logs.openstack.org/41/83041/12/gate/gate-tempest-dsvm-neutron/dc53c94 : SUCCESS in 48m 18s\n- gate-tempest-dsvm-neutron-heat-slow http://logs.openstack.org/41/83041/12/gate/gate-tempest-dsvm-neutron-heat-slow/bd1f359 : SUCCESS in 23m 31s\n- gate-python-novaclient-python33 http://logs.openstack.org/41/83041/12/gate/gate-python-novaclient-python33/f3ad05b : SUCCESS in 4m 13s\n- gate-python-novaclient-pypy http://logs.openstack.org/41/83041/12/gate/gate-python-novaclient-pypy/799779b : SUCCESS in 2m 21s (non-voting)\n- gate-devstack-dsvm-cells http://logs.openstack.org/41/83041/12/gate/gate-devstack-dsvm-cells/588c1d5 : SUCCESS in 11m 54s\n- gate-tempest-dsvm-postgres-full http://logs.openstack.org/41/83041/12/gate/gate-tempest-dsvm-postgres-full/54229ee : FAILURE in 51m 25s\n- gate-tempest-dsvm-large-ops http://logs.openstack.org/41/83041/12/gate/gate-tempest-dsvm-large-ops/50a6d1e : SUCCESS in 16m 50s\n- gate-tempest-dsvm-neutron-large-ops http://logs.openstack.org/41/83041/12/gate/gate-tempest-dsvm-neutron-large-ops/2514afd : SUCCESS in 17m 46s\n\n","accounts_in_message":[],"_revision_number":12},{"id":"ab7b0afdd172e80edcf46c7de0dfe3f1ba2c5ac3","author":{"_account_id":8871,"name":"Elastic Recheck","username":"elasticrecheck"},"date":"2014-04-07 20:03:29.000000000","message":"Patch Set 12:\n\nI noticed jenkins failed, I think you hit bug(s):\n\n- gate-tempest-dsvm-postgres-full: https://bugs.launchpad.net/bugs/1280532 https://bugs.launchpad.net/bugs/1302774\n\nWe don\u0027t automatically recheck or reverify, so please consider\ndoing that manually if someone hasn\u0027t already. For a code review\nwhich is not yet approved, you can recheck by leaving a code\nreview comment with just the text:\n\n    recheck bug 1280532\nFor bug details see: http://status.openstack.org/elastic-recheck/","accounts_in_message":[],"_revision_number":12},{"id":"0cc6b3d582bc925909bab15d21a9b0370b051d06","author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"date":"2014-04-07 20:33:48.000000000","message":"Patch Set 12: Looks good to me, but someone else must approve\n\nrecheck bug 1280532","accounts_in_message":[],"_revision_number":12},{"id":"e28eb0183da8ae89847115a15acadaa2bdb3681a","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-04-07 20:33:49.000000000","message":"Patch Set 12: No score\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":12},{"id":"2aaf03298e66118ef214577fd81fc439305a7d0c","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-04-07 21:38:23.000000000","message":"Patch Set 12: Works for me\n\nBuild succeeded.\n\n- gate-python-novaclient-pep8 http://logs.openstack.org/41/83041/12/check/gate-python-novaclient-pep8/d88993a : SUCCESS in 1m 12s\n- gate-python-novaclient-docs http://docs-draft.openstack.org/41/83041/12/check/gate-python-novaclient-docs/718e42d/doc/build/html/ : SUCCESS in 1m 56s\n- gate-python-novaclient-python26 http://logs.openstack.org/41/83041/12/check/gate-python-novaclient-python26/9c6beb5 : SUCCESS in 1m 10s\n- gate-python-novaclient-python27 http://logs.openstack.org/41/83041/12/check/gate-python-novaclient-python27/5ccbb2e : SUCCESS in 1m 19s\n- check-grenade-dsvm http://logs.openstack.org/41/83041/12/check/check-grenade-dsvm/11d0977 : SUCCESS in 40m 03s\n- check-tempest-dsvm-full http://logs.openstack.org/41/83041/12/check/check-tempest-dsvm-full/d16d635 : SUCCESS in 53m 39s\n- check-tempest-dsvm-neutron http://logs.openstack.org/41/83041/12/check/check-tempest-dsvm-neutron/661a497 : SUCCESS in 48m 33s\n- check-tempest-dsvm-neutron-heat-slow http://logs.openstack.org/41/83041/12/check/check-tempest-dsvm-neutron-heat-slow/cb904bc : SUCCESS in 24m 05s\n- gate-python-novaclient-python33 http://logs.openstack.org/41/83041/12/check/gate-python-novaclient-python33/d4a198b : SUCCESS in 3m 57s\n- gate-python-novaclient-pypy http://logs.openstack.org/41/83041/12/check/gate-python-novaclient-pypy/9ed88f7 : SUCCESS in 2m 04s (non-voting)\n- check-devstack-dsvm-cells http://logs.openstack.org/41/83041/12/check/check-devstack-dsvm-cells/1909dd6 : SUCCESS in 11m 28s\n- check-tempest-dsvm-postgres-full http://logs.openstack.org/41/83041/12/check/check-tempest-dsvm-postgres-full/d7578b2 : SUCCESS in 1h 04m 31s\n- gate-tempest-dsvm-large-ops http://logs.openstack.org/41/83041/12/check/gate-tempest-dsvm-large-ops/5742642 : SUCCESS in 15m 02s\n- gate-tempest-dsvm-neutron-large-ops http://logs.openstack.org/41/83041/12/check/gate-tempest-dsvm-neutron-large-ops/c34ecc6 : SUCCESS in 15m 47s\n\n","accounts_in_message":[],"_revision_number":12},{"id":"40ae7e6f4b0f16888830f636d4ef2d922a9cae4f","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-04-07 21:38:24.000000000","message":"Patch Set 12: No score\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":12},{"id":"62816e7f38caa1722d1d43807dc5aed5a2c14534","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-04-08 00:39:36.000000000","message":"Patch Set 12:\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":12},{"id":"793ecc988b4f4bcbb78f67d45866b41879d64b77","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-04-08 01:54:52.000000000","message":"Change has been successfully merged into the git repository.","accounts_in_message":[],"_revision_number":12},{"id":"44c49c5625e4a8ffc43647a1e073f51289a199ef","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-04-08 01:54:52.000000000","message":"Patch Set 12: Verified\n\nBuild succeeded.\n\n- gate-python-novaclient-docs http://docs-draft.openstack.org/41/83041/12/gate/gate-python-novaclient-docs/57929b9/doc/build/html/ : SUCCESS in 49s\n- gate-python-novaclient-pep8 http://logs.openstack.org/41/83041/12/gate/gate-python-novaclient-pep8/b9ec600 : SUCCESS in 35s\n- gate-python-novaclient-python26 http://logs.openstack.org/41/83041/12/gate/gate-python-novaclient-python26/be988a4 : SUCCESS in 1m 09s\n- gate-python-novaclient-python27 http://logs.openstack.org/41/83041/12/gate/gate-python-novaclient-python27/6c2eb36 : SUCCESS in 42s\n- gate-grenade-dsvm http://logs.openstack.org/41/83041/12/gate/gate-grenade-dsvm/cc43fc9 : SUCCESS in 44m 41s\n- gate-tempest-dsvm-full http://logs.openstack.org/41/83041/12/gate/gate-tempest-dsvm-full/14ce066 : SUCCESS in 57m 58s\n- gate-tempest-dsvm-neutron http://logs.openstack.org/41/83041/12/gate/gate-tempest-dsvm-neutron/301b6b1 : SUCCESS in 53m 38s\n- gate-tempest-dsvm-neutron-heat-slow http://logs.openstack.org/41/83041/12/gate/gate-tempest-dsvm-neutron-heat-slow/bf0c077 : SUCCESS in 21m 22s\n- gate-python-novaclient-python33 http://logs.openstack.org/41/83041/12/gate/gate-python-novaclient-python33/b0bca9e : SUCCESS in 3m 49s\n- gate-python-novaclient-pypy http://logs.openstack.org/41/83041/12/gate/gate-python-novaclient-pypy/12459b2 : SUCCESS in 2m 02s (non-voting)\n- gate-devstack-dsvm-cells http://logs.openstack.org/41/83041/12/gate/gate-devstack-dsvm-cells/97edf80 : SUCCESS in 10m 46s\n- gate-tempest-dsvm-postgres-full http://logs.openstack.org/41/83041/12/gate/gate-tempest-dsvm-postgres-full/7c4d8af : SUCCESS in 1h 03m 12s\n- gate-tempest-dsvm-large-ops http://logs.openstack.org/41/83041/12/gate/gate-tempest-dsvm-large-ops/147180d : SUCCESS in 16m 20s\n- gate-tempest-dsvm-neutron-large-ops http://logs.openstack.org/41/83041/12/gate/gate-tempest-dsvm-neutron-large-ops/ba50b89 : SUCCESS in 16m 05s\n","accounts_in_message":[],"_revision_number":12}],"current_revision_number":12,"current_revision":"98934d7bf1464afe0f7fe98efd2a591d95ac9c41","revisions":{"badb0ac8379dfad0ae9d55fbc7bcf774368ccfbc":{"kind":"REWORK","_number":1,"created":"2014-03-26 11:29:10.000000000","uploader":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"ref":"refs/changes/41/83041/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-novaclient","ref":"refs/changes/41/83041/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/1"}}},"commit":{"parents":[{"commit":"733f1e58d86b1af7d0a013bf8056e1598890e998","subject":"Merge \"Fix authentication bug when booting an server in V3\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/733f1e58d86b1af7d0a013bf8056e1598890e998"}]}],"author":{"name":"Boris Pavlovic","email":"boris@pavlovic.me","date":"2014-03-26 11:22:03.000000000","tz":240},"committer":{"name":"Boris Pavlovic","email":"boris@pavlovic.me","date":"2014-03-26 11:29:14.000000000","tz":240},"subject":"Do not share sockets cross process","message":"Do not share sockets cross process\n\nIf you try to use nova python client with multiprocessing.Pool\nit won\u0027t work.\n\nReason is that all global variables automaticaly becomes shared objects\nbetween processes. And shared instances of socket actually doesn\u0027t work properly.\n\nThe better way to \"cache\" sockets is to \"cache\" them inside Client\ninsntace. So if you don\u0027t share Client instances, everything will work well.\n\nThis fix is really important for such projects like Rally, that uses\npython clients in multiply processes to produce load on the cloud.\n\nChange-Id: Id59e48f61bb3f3c6223302355c849e1e99673410\nCloses-Bug: #1297796\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/badb0ac8379dfad0ae9d55fbc7bcf774368ccfbc"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/badb0ac8379dfad0ae9d55fbc7bcf774368ccfbc"}]},"branch":"refs/heads/master"},"2e34255394c89a5cfb8122422564cc0d79653c07":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2014-03-26 11:42:57.000000000","uploader":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"ref":"refs/changes/41/83041/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-novaclient","ref":"refs/changes/41/83041/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/2"}}},"commit":{"parents":[{"commit":"733f1e58d86b1af7d0a013bf8056e1598890e998","subject":"Merge \"Fix authentication bug when booting an server in V3\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/733f1e58d86b1af7d0a013bf8056e1598890e998"}]}],"author":{"name":"Boris Pavlovic","email":"boris@pavlovic.me","date":"2014-03-26 11:22:03.000000000","tz":240},"committer":{"name":"Boris Pavlovic","email":"boris@pavlovic.me","date":"2014-03-26 11:40:48.000000000","tz":240},"subject":"Do not share sockets cross process","message":"Do not share sockets cross process\n\nIf you try to use nova python client with multiprocessing.Pool\nit won\u0027t work.\n\nReason is that all global variables automatically become shared objects\nbetween processes. And shared instances of socket actually doesn\u0027t work properly.\n\nThe better way to \"cache\" sockets is to \"cache\" them inside Client\ninstance. So if you don\u0027t share Client instances, everything will work well.\n\nThis fix is really important for such projects like Rally, that uses\npython clients in multiply processes to produce load on the cloud.\n\nChange-Id: Id59e48f61bb3f3c6223302355c849e1e99673410\nCloses-Bug: #1297796\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/2e34255394c89a5cfb8122422564cc0d79653c07"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/2e34255394c89a5cfb8122422564cc0d79653c07"}]},"branch":"refs/heads/master"},"b85b5b38251a3df9d39483f5e9312dce05e5c13d":{"kind":"REWORK","_number":3,"created":"2014-03-26 13:27:48.000000000","uploader":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"ref":"refs/changes/41/83041/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-novaclient","ref":"refs/changes/41/83041/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/3"}}},"commit":{"parents":[{"commit":"733f1e58d86b1af7d0a013bf8056e1598890e998","subject":"Merge \"Fix authentication bug when booting an server in V3\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/733f1e58d86b1af7d0a013bf8056e1598890e998"}]}],"author":{"name":"Boris Pavlovic","email":"boris@pavlovic.me","date":"2014-03-26 11:22:03.000000000","tz":240},"committer":{"name":"Boris Pavlovic","email":"boris@pavlovic.me","date":"2014-03-26 13:19:49.000000000","tz":240},"subject":"Do not share sockets cross process","message":"Do not share sockets cross process\n\nIn some cases like in Rally project we would like to use nova python\nclient \u0026 multiprocessing.Pool together.\n\nSo we are not allowed to store sockets in global variable, cause global\nvariables are (copy pasted / partially shared) between processes.\nAnd sockets won\u0027t work properly in such case.\n\nIn other case in project like Horizon, we would like to avoid tons of new\nconnections, and have global cache for storing sockets.\n\nSo to pass to both projects. We may do next things:\n\n*) Build a class for Pool of sockets, that simplify creation of it in other projects (e.g. Horizon)\n*) Add new parameter to __init__ of Client class to set pool of sockets:\nif pool is not setted \u003d\u003e create new Pool of sockets (and store it inside instance of client)\nIf pool is setted \u003d\u003e use it\n*) Create in Horizon global pool and create all nova Clinets instances with it\n\nChange-Id: Id59e48f61bb3f3c6223302355c849e1e99673410\nCloses-Bug: #1297796\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/b85b5b38251a3df9d39483f5e9312dce05e5c13d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/b85b5b38251a3df9d39483f5e9312dce05e5c13d"}]},"branch":"refs/heads/master"},"1a6362c707f3e864af5098a077a5619a7d770570":{"kind":"REWORK","_number":4,"created":"2014-03-27 20:40:06.000000000","uploader":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"ref":"refs/changes/41/83041/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-novaclient","ref":"refs/changes/41/83041/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/4"}}},"commit":{"parents":[{"commit":"21f166b623415ba136e8ea0a95635d545db9aeed","subject":"Start using oslosphinx theme for docs","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/21f166b623415ba136e8ea0a95635d545db9aeed"}]}],"author":{"name":"Boris Pavlovic","email":"boris@pavlovic.me","date":"2014-03-26 11:22:03.000000000","tz":240},"committer":{"name":"Boris Pavlovic","email":"boris@pavlovic.me","date":"2014-03-27 20:39:26.000000000","tz":240},"subject":"Do not share sockets cross process","message":"Do not share sockets cross process\n\nIn some cases like in Rally project we would like to use nova python\nclient \u0026 multiprocessing.Pool together.\n\nSo we are not allowed to store sockets in global variable, cause global\nvariables are (copy pasted / partially shared) between processes.\nAnd sockets won\u0027t work properly in such case.\n\nIn other case in project like Horizon, we would like to avoid tons of new\nconnections, and have global cache for storing sockets.\n\nSo to pass to both projects. We may do next things:\n\n*) Build a class for Pool of sockets, that simplify creation of it in other projects (e.g. Horizon)\n*) Add new parameter to __init__ of Client class to set pool of sockets:\nif pool is not setted \u003d\u003e create new Pool of sockets (and store it inside instance of client)\nIf pool is setted \u003d\u003e use it\n*) Create in Horizon global pool and create all nova Clinets instances with it\n\nChange-Id: Id59e48f61bb3f3c6223302355c849e1e99673410\nCloses-Bug: #1297796\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/1a6362c707f3e864af5098a077a5619a7d770570"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/1a6362c707f3e864af5098a077a5619a7d770570"}]},"branch":"refs/heads/master"},"39d789a89da25b5d03cf42fa7d44e43b496642be":{"kind":"REWORK","_number":5,"created":"2014-03-27 21:31:54.000000000","uploader":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"ref":"refs/changes/41/83041/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-novaclient","ref":"refs/changes/41/83041/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/5"}}},"commit":{"parents":[{"commit":"21f166b623415ba136e8ea0a95635d545db9aeed","subject":"Start using oslosphinx theme for docs","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/21f166b623415ba136e8ea0a95635d545db9aeed"}]}],"author":{"name":"Boris Pavlovic","email":"boris@pavlovic.me","date":"2014-03-26 11:22:03.000000000","tz":240},"committer":{"name":"Boris Pavlovic","email":"boris@pavlovic.me","date":"2014-03-27 21:31:49.000000000","tz":240},"subject":"Do not share sockets cross process","message":"Do not share sockets cross process\n\nIn some cases like in Rally project we would like to use nova python\nclient \u0026 multiprocessing.Pool together.\n\nSo we are not allowed to store sockets in global variable, cause global\nvariables are (copy pasted / partially shared) between processes.\nAnd sockets won\u0027t work properly in such case.\n\nIn other case in project like Horizon, we would like to avoid tons of new\nconnections, and have global cache for storing sockets.\n\nSo to pass to both projects. We may do next things:\n\n*) Build a class for Pool of sockets, that simplify creation of it in other projects (e.g. Horizon)\n*) Add new parameter to __init__ of Client class to set pool of sockets:\nif pool is not setted \u003d\u003e create new Pool of sockets (and store it inside instance of client)\nIf pool is setted \u003d\u003e use it\n*) Create in Horizon global pool and create all nova Clinets instances with it\n\nChange-Id: Id59e48f61bb3f3c6223302355c849e1e99673410\nCloses-Bug: #1297796\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/39d789a89da25b5d03cf42fa7d44e43b496642be"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/39d789a89da25b5d03cf42fa7d44e43b496642be"}]},"branch":"refs/heads/master"},"11fcbdebf537ba3265b49ab9da4f864a25ac6cf5":{"kind":"REWORK","_number":6,"created":"2014-03-27 22:32:07.000000000","uploader":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"ref":"refs/changes/41/83041/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-novaclient","ref":"refs/changes/41/83041/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/6"}}},"commit":{"parents":[{"commit":"21f166b623415ba136e8ea0a95635d545db9aeed","subject":"Start using oslosphinx theme for docs","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/21f166b623415ba136e8ea0a95635d545db9aeed"}]}],"author":{"name":"Boris Pavlovic","email":"boris@pavlovic.me","date":"2014-03-26 11:22:03.000000000","tz":240},"committer":{"name":"Boris Pavlovic","email":"boris@pavlovic.me","date":"2014-03-27 22:30:57.000000000","tz":240},"subject":"Do not share sockets cross process","message":"Do not share sockets cross process\n\nIn some cases like in Rally project we would like to use nova python\nclient \u0026 multiprocessing.Pool together.\n\nSo we are not allowed to store sockets in global variable, cause global\nvariables are (copy pasted / partially shared) between processes.\nAnd sockets won\u0027t work properly in such case.\n\nIn other case in project like Horizon, we would like to avoid tons of new\nconnections, and have global cache for storing sockets.\n\nSo to pass to both projects. We may do next things:\n\n*) Build a class for Pool of sockets, that simplify creation of it in other projects (e.g. Horizon)\n*) Add new parameter to __init__ of Client class to set pool of sockets:\nif pool is not setted \u003d\u003e create new Pool of sockets (and store it inside instance of client)\nIf pool is setted \u003d\u003e use it\n*) Create in Horizon global pool and create all nova Clinets instances with it\n\nChange-Id: Id59e48f61bb3f3c6223302355c849e1e99673410\nCloses-Bug: #1297796\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/11fcbdebf537ba3265b49ab9da4f864a25ac6cf5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/11fcbdebf537ba3265b49ab9da4f864a25ac6cf5"}]},"branch":"refs/heads/master"},"4cf513756e3be1e143508b5fd21a88a475bc9615":{"kind":"NO_CODE_CHANGE","_number":7,"created":"2014-03-27 22:35:04.000000000","uploader":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"ref":"refs/changes/41/83041/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-novaclient","ref":"refs/changes/41/83041/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/7"}}},"commit":{"parents":[{"commit":"21f166b623415ba136e8ea0a95635d545db9aeed","subject":"Start using oslosphinx theme for docs","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/21f166b623415ba136e8ea0a95635d545db9aeed"}]}],"author":{"name":"Boris Pavlovic","email":"boris@pavlovic.me","date":"2014-03-26 11:22:03.000000000","tz":240},"committer":{"name":"Boris Pavlovic","email":"boris@pavlovic.me","date":"2014-03-27 22:34:28.000000000","tz":240},"subject":"Do not share sockets cross process","message":"Do not share sockets cross process\n\nIn some cases like in Rally project we would like to use nova python\nclient \u0026 multiprocessing.Pool together.\n\nSo we are not allowed to store sockets in global variable, cause global\nvariables are (copy pasted / partially shared) between processes.\nAnd sockets won\u0027t work properly in such case.\n\nIn other case in project like Horizon, we would like to avoid tons of new\nconnections, and have global cache for storing sockets.\n\nSo to pass to both projects. We may do next things:\n\n*) Build a class for Pool of sockets, that simplify creation of it in other projects (e.g. Horizon)\n*) Add new parameter to __init__ of Client class to set pool of sockets:\nif pool is not set \u003d\u003e create new Pool of sockets (and store it inside instance of client)\nIf pool is set \u003d\u003e use it\n*) Create in Horizon global pool and create all nova Clients instances with it\n\nChange-Id: Id59e48f61bb3f3c6223302355c849e1e99673410\nCloses-Bug: #1297796\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/4cf513756e3be1e143508b5fd21a88a475bc9615"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/4cf513756e3be1e143508b5fd21a88a475bc9615"}]},"branch":"refs/heads/master"},"7b1e53d5b021e42255137422a7f5649154060ec1":{"kind":"TRIVIAL_REBASE","_number":8,"created":"2014-04-02 08:23:24.000000000","uploader":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"ref":"refs/changes/41/83041/8","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-novaclient","ref":"refs/changes/41/83041/8","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/8"}}},"commit":{"parents":[{"commit":"05862604075434862606e124fb1dbdfbe73f40bb","subject":"Merge \"Avoid AttributeError in servers.Server.__repr__\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/05862604075434862606e124fb1dbdfbe73f40bb"}]}],"author":{"name":"Boris Pavlovic","email":"boris@pavlovic.me","date":"2014-03-26 11:22:03.000000000","tz":240},"committer":{"name":"Nikola Dipanov","email":"ndipanov@redhat.com","date":"2014-04-01 15:47:49.000000000","tz":120},"subject":"Do not share sockets cross process","message":"Do not share sockets cross process\n\nIn some cases like in Rally project we would like to use nova python\nclient \u0026 multiprocessing.Pool together.\n\nSo we are not allowed to store sockets in global variable, cause global\nvariables are (copy pasted / partially shared) between processes.\nAnd sockets won\u0027t work properly in such case.\n\nIn other case in project like Horizon, we would like to avoid tons of new\nconnections, and have global cache for storing sockets.\n\nSo to pass to both projects. We may do next things:\n\n*) Build a class for Pool of sockets, that simplify creation of it in other projects (e.g. Horizon)\n*) Add new parameter to __init__ of Client class to set pool of sockets:\nif pool is not set \u003d\u003e create new Pool of sockets (and store it inside instance of client)\nIf pool is set \u003d\u003e use it\n*) Create in Horizon global pool and create all nova Clients instances with it\n\nChange-Id: Id59e48f61bb3f3c6223302355c849e1e99673410\nCloses-Bug: #1297796\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/7b1e53d5b021e42255137422a7f5649154060ec1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/7b1e53d5b021e42255137422a7f5649154060ec1"}]},"branch":"refs/heads/master"},"d35a1d951376d2dbd76993210b4b23906eaad10c":{"kind":"REWORK","_number":9,"created":"2014-04-02 13:59:11.000000000","uploader":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"ref":"refs/changes/41/83041/9","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-novaclient","ref":"refs/changes/41/83041/9","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/9 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/9 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/9 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/9"}}},"commit":{"parents":[{"commit":"05862604075434862606e124fb1dbdfbe73f40bb","subject":"Merge \"Avoid AttributeError in servers.Server.__repr__\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/05862604075434862606e124fb1dbdfbe73f40bb"}]}],"author":{"name":"Boris Pavlovic","email":"boris@pavlovic.me","date":"2014-03-26 11:22:03.000000000","tz":240},"committer":{"name":"Nikola Dipanov","email":"ndipanov@redhat.com","date":"2014-04-02 13:57:53.000000000","tz":120},"subject":"Fix session handling in novaclient","message":"Fix session handling in novaclient\n\nPrior to this patch, novaclient was handling sessions in an inconsistent\nmanner.\n\nEvery time we created a client instance, it would use a global\nconnection pool, which made it difficult to use in a process that is\nmeant to be forked.\n\nObviously sessions like the ones provided by the requests library that\nwill automatically cause connections to be kept alive should not be\nimplicit. This patch moves the novaclient back to the age of a single\nsession-less request call by default, but also adds two more\nresource-reuse friendly options that a user needs to be explicit about.\n\nThe first one is that both v1_1 and v3 clients can now be used as\ncontext managers,. where the session will be kept open (and thus the\nconnection kept-alive) for the duration of the with block. This is far\nmore ideal for a web worker use-case as the session can be made\nrequest-long.\n\nThe second one is the per-instance session. This is very similar to what\nwe had up until now, except it is not a global object so forking is\npossible as long as each child instantiates it\u0027s own client. The session\nonce created will be kept open for the duration of the interpreter\nprocess.\n\nPlease note: client instances are not thread safe. As can be seen from\nabove forking example - if you wish to use threading/multiprocessing,\nyou *must not* share client instances.\n\nRelated-bug: #1247056\nCloses-Bug: #1297796\nCo-authored-by: Nikola Dipanov \u003cndipanov@redhat.com\u003e\nChange-Id: Id59e48f61bb3f3c6223302355c849e1e99673410\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/d35a1d951376d2dbd76993210b4b23906eaad10c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/d35a1d951376d2dbd76993210b4b23906eaad10c"}]},"branch":"refs/heads/master"},"dce0ffa644ee48c004a534d6ecd1ffbcfd59076e":{"kind":"REWORK","_number":10,"created":"2014-04-03 10:33:26.000000000","uploader":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"ref":"refs/changes/41/83041/10","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-novaclient","ref":"refs/changes/41/83041/10","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/10 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/10 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/10 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/10"}}},"commit":{"parents":[{"commit":"05862604075434862606e124fb1dbdfbe73f40bb","subject":"Merge \"Avoid AttributeError in servers.Server.__repr__\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/05862604075434862606e124fb1dbdfbe73f40bb"}]}],"author":{"name":"Boris Pavlovic","email":"boris@pavlovic.me","date":"2014-03-26 11:22:03.000000000","tz":240},"committer":{"name":"Nikola Dipanov","email":"ndipanov@redhat.com","date":"2014-04-03 10:32:33.000000000","tz":120},"subject":"Fix session handling in novaclient","message":"Fix session handling in novaclient\n\nPrior to this patch, novaclient was handling sessions in an inconsistent\nmanner.\n\nEvery time we created a client instance, it would use a global\nconnection pool, which made it difficult to use in a process that is\nmeant to be forked.\n\nObviously sessions like the ones provided by the requests library that\nwill automatically cause connections to be kept alive should not be\nimplicit. This patch moves the novaclient back to the age of a single\nsession-less request call by default, but also adds two more\nresource-reuse friendly options that a user needs to be explicit about.\n\nThe first one is that both v1_1 and v3 clients can now be used as\ncontext managers,. where the session will be kept open (and thus the\nconnection kept-alive) for the duration of the with block. This is far\nmore ideal for a web worker use-case as the session can be made\nrequest-long.\n\nThe second one is the per-instance session. This is very similar to what\nwe had up until now, except it is not a global object so forking is\npossible as long as each child instantiates it\u0027s own client. The session\nonce created will be kept open for the duration of the client object\nlifetime.\n\nPlease note: client instances are not thread safe. As can be seen from\nabove forking example - if you wish to use threading/multiprocessing,\nyou *must not* share client instances.\n\nRelated-bug: #1247056\nCloses-Bug: #1297796\nCo-authored-by: Nikola Dipanov \u003cndipanov@redhat.com\u003e\nChange-Id: Id59e48f61bb3f3c6223302355c849e1e99673410\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/dce0ffa644ee48c004a534d6ecd1ffbcfd59076e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/dce0ffa644ee48c004a534d6ecd1ffbcfd59076e"}]},"branch":"refs/heads/master"},"16ecab2588a33da2c925fd39e34916f280f70520":{"kind":"REWORK","_number":11,"created":"2014-04-03 12:53:40.000000000","uploader":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"ref":"refs/changes/41/83041/11","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-novaclient","ref":"refs/changes/41/83041/11","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/11 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/11 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/11 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/11"}}},"commit":{"parents":[{"commit":"05862604075434862606e124fb1dbdfbe73f40bb","subject":"Merge \"Avoid AttributeError in servers.Server.__repr__\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/05862604075434862606e124fb1dbdfbe73f40bb"}]}],"author":{"name":"Boris Pavlovic","email":"boris@pavlovic.me","date":"2014-03-26 11:22:03.000000000","tz":240},"committer":{"name":"Nikola Dipanov","email":"ndipanov@redhat.com","date":"2014-04-03 12:53:20.000000000","tz":120},"subject":"Fix session handling in novaclient","message":"Fix session handling in novaclient\n\nPrior to this patch, novaclient was handling sessions in an inconsistent\nmanner.\n\nEvery time we created a client instance, it would use a global\nconnection pool, which made it difficult to use in a process that is\nmeant to be forked.\n\nObviously sessions like the ones provided by the requests library that\nwill automatically cause connections to be kept alive should not be\nimplicit. This patch moves the novaclient back to the age of a single\nsession-less request call by default, but also adds two more\nresource-reuse friendly options that a user needs to be explicit about.\n\nThe first one is that both v1_1 and v3 clients can now be used as\ncontext managers,. where the session will be kept open (and thus the\nconnection kept-alive) for the duration of the with block. This is far\nmore ideal for a web worker use-case as the session can be made\nrequest-long.\n\nThe second one is the per-instance session. This is very similar to what\nwe had up until now, except it is not a global object so forking is\npossible as long as each child instantiates it\u0027s own client. The session\nonce created will be kept open for the duration of the client object\nlifetime.\n\nPlease note: client instances are not thread safe. As can be seen from\nabove forking example - if you wish to use threading/multiprocessing,\nyou *must not* share client instances.\n\nRelated-bug: #1247056\nCloses-Bug: #1297796\nCo-authored-by: Nikola Dipanov \u003cndipanov@redhat.com\u003e\nChange-Id: Id59e48f61bb3f3c6223302355c849e1e99673410\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/16ecab2588a33da2c925fd39e34916f280f70520"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/16ecab2588a33da2c925fd39e34916f280f70520"}]},"branch":"refs/heads/master"},"98934d7bf1464afe0f7fe98efd2a591d95ac9c41":{"kind":"TRIVIAL_REBASE_WITH_MESSAGE_UPDATE","_number":12,"created":"2014-04-07 17:39:10.000000000","uploader":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"ref":"refs/changes/41/83041/12","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-novaclient","ref":"refs/changes/41/83041/12","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/12 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/12 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/12 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-novaclient refs/changes/41/83041/12"}}},"commit":{"parents":[{"commit":"9162a5fe8fa4a5c9d59648aa1e9fbd48dec079f9","subject":"Split test_rebuild() into two tests","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/9162a5fe8fa4a5c9d59648aa1e9fbd48dec079f9"}]}],"author":{"name":"Boris Pavlovic","email":"boris@pavlovic.me","date":"2014-03-26 11:22:03.000000000","tz":240},"committer":{"name":"Nikola Dipanov","email":"ndipanov@redhat.com","date":"2014-04-07 17:38:51.000000000","tz":120},"subject":"Fix session handling in novaclient","message":"Fix session handling in novaclient\n\nPrior to this patch, novaclient was handling sessions in an inconsistent\nmanner.\n\nEvery time we created a client instance, it would use a global\nconnection pool, which made it difficult to use in a process that is\nmeant to be forked.\n\nObviously sessions like the ones provided by the requests library that\nwill automatically cause connections to be kept alive should not be\nimplicit. This patch moves the novaclient back to the age of a single\nsession-less request call by default, but also adds two more\nresource-reuse friendly options that a user needs to be explicit about.\n\nThe first one is that both v1_1 and v3 clients can now be used as\ncontext managers,. where the session will be kept open (and thus the\nconnection kept-alive) for the duration of the with block. This is far\nmore ideal for a web worker use-case as the session can be made\nrequest-long.\n\nThe second one is the per-instance session. This is very similar to what\nwe had up until now, except it is not a global object so forking is\npossible as long as each child instantiates it\u0027s own client. The session\nonce created will be kept open for the duration of the client object\nlifetime.\n\nPlease note: client instances are not thread safe. As can be seen from\nabove forking example - if you wish to use threading/multiprocessing,\nyou *must not* share client instances.\n\nDocImpact\n\nRelated-bug: #1247056\nCloses-Bug: #1297796\nCo-authored-by: Nikola Dipanov \u003cndipanov@redhat.com\u003e\nChange-Id: Id59e48f61bb3f3c6223302355c849e1e99673410\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/98934d7bf1464afe0f7fe98efd2a591d95ac9c41"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/98934d7bf1464afe0f7fe98efd2a591d95ac9c41"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
