)]}'
{"id":"openstack%2Fdevstack~151812","triplet_id":"openstack%2Fdevstack~master~I92648fffc1ad6af53006a0970722fd15f4e79dc2","project":"openstack/devstack","branch":"master","topic":"venv-clients","hashtags":[],"change_id":"I92648fffc1ad6af53006a0970722fd15f4e79dc2","subject":"Add pip_install_venv()","status":"ABANDONED","created":"2015-01-30 22:56:54.000000000","updated":"2015-02-12 18:17:50.000000000","total_comment_count":6,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"02878ce4440509604dd4de9166ec45efcacfd5ee","_number":151812,"virtual_id_number":151812,"owner":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":1,"date":"2015-02-11 21:47:26.000000000","_account_id":10385,"name":"Citrix XenServer CI","username":"citrix_xenserver_ci","tags":["SERVICE_USER"]},{"value":1,"date":"2015-02-11 21:59:25.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":10385,"name":"Citrix XenServer CI","username":"citrix_xenserver_ci","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"}],"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":{"all":[{"_account_id":10385,"name":"Citrix XenServer CI","username":"citrix_xenserver_ci","tags":["SERVICE_USER"]},{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"value":0,"permitted_voting_range":{"min":-1,"max":0},"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":10385,"name":"Citrix XenServer CI","username":"citrix_xenserver_ci","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},{"value":0,"permitted_voting_range":{"min":-1,"max":2},"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"}],"values":{"-1":"Branch Freeze"," 0":"No Priority","+1":"Important Change","+2":"Gate Blocker Fix / Urgent Change"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},{"_account_id":10385,"name":"Citrix XenServer CI","username":"citrix_xenserver_ci","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2015-01-30 23:52:55.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":"2015-02-03 20:04:00.000000000","updated_by":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"reviewer":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"state":"REVIEWER"},{"updated":"2015-02-04 06:11:18.000000000","updated_by":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"reviewer":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"state":"REVIEWER"},{"updated":"2015-02-05 22:36:45.000000000","updated_by":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"reviewer":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"state":"REVIEWER"},{"updated":"2015-02-09 19:45:04.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":"2015-02-11 21:47:26.000000000","updated_by":{"_account_id":10385,"name":"Citrix XenServer CI","username":"citrix_xenserver_ci","tags":["SERVICE_USER"]},"reviewer":{"_account_id":10385,"name":"Citrix XenServer CI","username":"citrix_xenserver_ci","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2015-02-11 21:59:25.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"30c216ed324ac61df5c6209d5636d321d4c3c2a6","author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"date":"2015-01-30 22:56:54.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"20fe418d193798b3ed8533c10dbb8ca88dad9bf1","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-01-31 00:02:45.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- check-tempest-dsvm-full http://logs.openstack.org/12/151812/1/check/check-tempest-dsvm-full/695983b/ : SUCCESS in 51m 29s\n- check-tempest-dsvm-postgres-full http://logs.openstack.org/12/151812/1/check/check-tempest-dsvm-postgres-full/55f7fb0/ : SUCCESS in 51m 31s\n- check-tempest-dsvm-neutron-full http://logs.openstack.org/12/151812/1/check/check-tempest-dsvm-neutron-full/b13248a/ : SUCCESS in 1h 03m 58s\n- check-grenade-dsvm http://logs.openstack.org/12/151812/1/check/check-grenade-dsvm/05bd9de/ : SUCCESS in 38m 15s\n- gate-tempest-dsvm-large-ops http://logs.openstack.org/12/151812/1/check/gate-tempest-dsvm-large-ops/5d6546b/ : SUCCESS in 26m 26s\n- gate-tempest-dsvm-neutron-large-ops http://logs.openstack.org/12/151812/1/check/gate-tempest-dsvm-neutron-large-ops/2049931/ : SUCCESS in 20m 13s\n- gate-devstack-bashate http://logs.openstack.org/12/151812/1/check/gate-devstack-bashate/c786c03/ : SUCCESS in 28s\n- gate-devstack-unit-tests http://logs.openstack.org/12/151812/1/check/gate-devstack-unit-tests/1053d37/ : SUCCESS in 13s\n- check-devstack-dsvm-cells http://logs.openstack.org/12/151812/1/check/check-devstack-dsvm-cells/c72eba7/ : SUCCESS in 22m 23s\n- check-grenade-dsvm-partial-ncpu http://logs.openstack.org/12/151812/1/check/check-grenade-dsvm-partial-ncpu/9f97ee6/ : SUCCESS in 30m 39s\n- check-neutron-dsvm-functional http://logs.openstack.org/12/151812/1/check/check-neutron-dsvm-functional/c08ba74/ : SUCCESS in 17m 44s\n- check-swift-dsvm-functional http://logs.openstack.org/12/151812/1/check/check-swift-dsvm-functional/1f9ed50/ : SUCCESS in 20m 26s\n- check-tempest-dsvm-ironic-pxe_ssh http://logs.openstack.org/12/151812/1/check/check-tempest-dsvm-ironic-pxe_ssh/f0d6284/ : SUCCESS in 28m 08s\n- check-tempest-dsvm-f21 http://logs.openstack.org/12/151812/1/check/check-tempest-dsvm-f21/9e95102/ : FAILURE in 11m 28s (non-voting)\n- check-tempest-dsvm-centos7 http://logs.openstack.org/12/151812/1/check/check-tempest-dsvm-centos7/75cdaed/ : FAILURE in 12m 49s (non-voting)\n- gate-devstack-publish-docs http://docs-draft.openstack.org/12/151812/1/check/gate-devstack-publish-docs/e0e433c//doc/build/html/ : SUCCESS in 1m 36s","accounts_in_message":[],"_revision_number":1},{"id":"051e5128585b8b4838b03d214fe0ee4528540446","author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"date":"2015-02-03 20:04:00.000000000","message":"Patch Set 1: Code-Review-1\n\n(2 comments)\n\nI think there\u0027s an unused function in there ...\n\nIn general is there some sort of reference to the bigger idea/plan going on here that i\u0027ve missed?","accounts_in_message":[],"_revision_number":1},{"id":"4763d6522a8d7a7df99a66a3fe4b66564cad8702","author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"date":"2015-02-04 05:28:41.000000000","message":"Patch Set 1:\n\n(2 comments)\n\nIan, there is a bigger plan involving venvs for the CLI clients used and the services with their own copies of the client libs.  My apologies for not communicating it outside the Nova/qa channels where we finalized this last week.  And admittedly some of it was in person at the Nova meetup that I happened to be in the Bay Area at the same time.  The venv topic started to be seriously consider in one of the sessions in Paris.  I took two stabs at it (one in the middle of the night for an icehouse breakage) and now this series.\n\n[much of this is to record some IRC discussions that I think cleared up the overall intent]","accounts_in_message":[],"_revision_number":1},{"id":"05a5bb01e02a4070fb1be9e7851b5cbc19705c01","author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"date":"2015-02-04 06:11:18.000000000","message":"Patch Set 1: Code-Review+1\n\n(1 comment)\n\ncode looks ok although the bigger picture is not clear to me.","accounts_in_message":[],"_revision_number":1},{"id":"3fd068e9b568945c417e984641561c156e9ff93e","author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"date":"2015-02-04 21:53:22.000000000","message":"Patch Set 1: Code-Review+1\n\nLGTM, adding the ability to use virtualenvs will help us sort out a lot of our stable/branch dependency conflict issues.","accounts_in_message":[],"_revision_number":1},{"id":"5ffe7d679159340014b15238a962eee38959c4eb","author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"date":"2015-02-09 19:45:04.000000000","message":"Patch Set 1:\n\n(1 comment)\n\nso it\u0027s not clear to me that we should ever activate or deactivate the venv from devstack, because that\u0027s global state.\n\nRunning .venv/bin/pip will use the venv content.\n\nI also almost feel like this should be entirely hidden behind the existing pip_install via something else.\n\nLike some way of specifying which projects should go into which venv outside of the stack.sh code.","accounts_in_message":[],"_revision_number":1},{"id":"23ec703972649ff46d1d230af9fa817cb359d9bc","author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"date":"2015-02-11 17:12:45.000000000","message":"Patch Set 1:\n\nThis started as a wrapper around pip_install() and it made more sense to me to re-factor it in the end.  It is a separate function because we need to pass in the name/path of the venv and changing the signature of pip_install() did not seem like a good idea.  Maybe a -v option would have worked, we generally don\u0027t do that though except where those options are passed along to underlying commands.\n\npip_install() is (supposed to be) a low-level function, adding smarts to know which packages go into venvs seems to cross layers there.  I wanted to to be explicit at the install-this-code level what was going into a venv and where.  I\u0027ll rebase this and follow up with the next round to show how I was using it.","accounts_in_message":[],"_revision_number":1},{"id":"2f28888c4a5442ce8b62705786fa8d0af05b2057","author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"date":"2015-02-11 20:40:52.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"30db52a299ba8df5c2ff2a02e2dd577fae37518f","author":{"_account_id":10385,"name":"Citrix XenServer CI","username":"citrix_xenserver_ci","tags":["SERVICE_USER"]},"date":"2015-02-11 21:47:26.000000000","message":"Patch Set 2: Verified+1\n\nPassed using XenAPI driver with XenServer 6.2: Logs at http://dd6b71949550285df7dc-dda4e480e005aaa13ec303551d2d8155.r49.cf1.rackcdn.com/12/151812/2/8946/results.html\n\nUse \"xenserver: recheck\" to trigger only xenserver re-check.  XenServer CI contact: openstack@citrix.com.\n\nDebugging suggestions at https://wiki.openstack.org/wiki/Debugging_XenServer_CI_failures","accounts_in_message":[],"_revision_number":2},{"id":"ed1b618945337b713cb120315d4919d86a3e0354","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-02-11 21:59:25.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- check-tempest-dsvm-full http://logs.openstack.org/12/151812/2/check/check-tempest-dsvm-full/6b5b181/ : SUCCESS in 44m 58s\n- check-tempest-dsvm-postgres-full http://logs.openstack.org/12/151812/2/check/check-tempest-dsvm-postgres-full/a98f179/ : SUCCESS in 50m 18s\n- check-tempest-dsvm-neutron-full http://logs.openstack.org/12/151812/2/check/check-tempest-dsvm-neutron-full/f35f808/ : SUCCESS in 1h 08m 54s\n- check-grenade-dsvm http://logs.openstack.org/12/151812/2/check/check-grenade-dsvm/6eed6b8/ : SUCCESS in 42m 20s\n- gate-tempest-dsvm-large-ops http://logs.openstack.org/12/151812/2/check/gate-tempest-dsvm-large-ops/c1521ae/ : SUCCESS in 26m 35s\n- gate-tempest-dsvm-neutron-large-ops http://logs.openstack.org/12/151812/2/check/gate-tempest-dsvm-neutron-large-ops/f62e28a/ : SUCCESS in 24m 22s\n- gate-devstack-bashate http://logs.openstack.org/12/151812/2/check/gate-devstack-bashate/0f1bd64/ : SUCCESS in 49s\n- gate-devstack-unit-tests http://logs.openstack.org/12/151812/2/check/gate-devstack-unit-tests/e293ec7/ : SUCCESS in 17s\n- check-devstack-dsvm-cells http://logs.openstack.org/12/151812/2/check/check-devstack-dsvm-cells/d997083/ : SUCCESS in 18m 44s\n- check-grenade-dsvm-partial-ncpu http://logs.openstack.org/12/151812/2/check/check-grenade-dsvm-partial-ncpu/1c63e31/ : SUCCESS in 42m 54s\n- check-neutron-dsvm-functional http://logs.openstack.org/12/151812/2/check/check-neutron-dsvm-functional/d484900/ : SUCCESS in 20m 59s\n- check-swift-dsvm-functional http://logs.openstack.org/12/151812/2/check/check-swift-dsvm-functional/7ed56e0/ : SUCCESS in 23m 51s\n- check-tempest-dsvm-ironic-pxe_ssh http://logs.openstack.org/12/151812/2/check/check-tempest-dsvm-ironic-pxe_ssh/2e195fe/ : SUCCESS in 38m 23s\n- check-devstack-dsvm-updown http://logs.openstack.org/12/151812/2/check/check-devstack-dsvm-updown/81fd6f6/ : FAILURE in 15m 15s (non-voting)\n- check-tempest-dsvm-f21 http://logs.openstack.org/12/151812/2/check/check-tempest-dsvm-f21/a490565/ : FAILURE in 41m 10s (non-voting)\n- check-tempest-dsvm-centos7 http://logs.openstack.org/12/151812/2/check/check-tempest-dsvm-centos7/7bad23e/ : SUCCESS in 57m 29s (non-voting)\n- gate-devstack-publish-docs http://docs-draft.openstack.org/12/151812/2/check/gate-devstack-publish-docs/62ae387//doc/build/html/ : SUCCESS in 1m 26s","accounts_in_message":[],"_revision_number":2},{"id":"3199f1a5b17b0f8d318c93107f451a21c87b6702","author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"date":"2015-02-12 18:17:50.000000000","message":"Abandoned\n\nTaking a different approach in https://review.openstack.org/#/c/155189/","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"440ec77f8a523dceb914197d8c8da00d9f4df0cf","revisions":{"de48cb26acf6770f9ed997315b4a5c774049787c":{"kind":"REWORK","_number":1,"created":"2015-01-30 22:56:54.000000000","uploader":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"ref":"refs/changes/12/151812/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/12/151812/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/12/151812/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/12/151812/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/12/151812/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/12/151812/1"}}},"commit":{"parents":[{"commit":"490430dbe3b7d9979b4623f2c327bb0a74436401","subject":"Split functions-common: python functions","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/490430dbe3b7d9979b4623f2c327bb0a74436401"}]}],"author":{"name":"Dean Troyer","email":"dtroyer@gmail.com","date":"2015-01-30 21:07:03.000000000","tz":-360},"committer":{"name":"Dean Troyer","email":"dtroyer@gmail.com","date":"2015-01-30 21:21:47.000000000","tz":-360},"subject":"Add pip_install_venv()","message":"Add pip_install_venv()\n\n* pip_install_venv() runs pip inside a vitual env following all of\n  our usual contraints in pip_install().  It also does not install\n  with sudo so file ownership remains as STACK_USER.\n* activate_venv() and deactivate_venv() are required to work around\n  venv not working with nounset enabled\n\nChange-Id: I92648fffc1ad6af53006a0970722fd15f4e79dc2\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/de48cb26acf6770f9ed997315b4a5c774049787c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/de48cb26acf6770f9ed997315b4a5c774049787c"}]},"branch":"refs/heads/master"},"440ec77f8a523dceb914197d8c8da00d9f4df0cf":{"kind":"REWORK","_number":2,"created":"2015-02-11 20:40:52.000000000","uploader":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"ref":"refs/changes/12/151812/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/12/151812/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/12/151812/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/12/151812/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/12/151812/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/12/151812/2"}}},"commit":{"parents":[{"commit":"2a811912c6e8a2f85d4a9ef03694cd29cb5fd1cd","subject":"Merge \"Use the site-wide boto.cfg\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/2a811912c6e8a2f85d4a9ef03694cd29cb5fd1cd"}]}],"author":{"name":"Dean Troyer","email":"dtroyer@gmail.com","date":"2015-01-30 21:07:03.000000000","tz":-360},"committer":{"name":"Dean Troyer","email":"dtroyer@gmail.com","date":"2015-02-11 20:16:41.000000000","tz":-360},"subject":"Add pip_install_venv()","message":"Add pip_install_venv()\n\n* pip_install_venv() runs pip inside a vitual env following all of\n  our usual contraints in pip_install().  It also does not install\n  with sudo so file ownership remains as STACK_USER.\n* activate_venv() and deactivate_venv() are required to work around\n  venv not working with nounset enabled\n\nChange-Id: I92648fffc1ad6af53006a0970722fd15f4e79dc2\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/440ec77f8a523dceb914197d8c8da00d9f4df0cf"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/440ec77f8a523dceb914197d8c8da00d9f4df0cf"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
