)]}'
{"id":"openstack%2Fpython-swiftclient~190887","triplet_id":"openstack%2Fpython-swiftclient~master~I6b9504848d6ef562cf4f570bbcd17db4e3da8264","project":"openstack/python-swiftclient","branch":"master","topic":"bulkdelete","hashtags":[],"change_id":"I6b9504848d6ef562cf4f570bbcd17db4e3da8264","subject":"Use bulk-delete middleware when available","status":"MERGED","created":"2015-06-12 01:13:14.000000000","updated":"2016-01-22 05:49:31.000000000","submitted":"2016-01-22 05:49:31.000000000","submitter":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"total_comment_count":24,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"c6f011f74280af70d58a9f8f8007a6d4070927c7","_number":190887,"virtual_id_number":190887,"owner":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":0,"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},{"value":2,"date":"2016-01-22 05:49:30.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},{"value":0,"_account_id":9878,"name":"Zack M. Davis","email":"zdavis@swiftstack.com","username":"zackmdavis"},{"value":0,"_account_id":8262,"name":"Jon Snitow","email":"otherjon@swiftstack.com","username":"otherjon"},{"value":0,"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},{"value":0,"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"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":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"all":[{"value":2,"date":"2016-01-20 23:01:15.000000000","_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":2,"date":"2016-01-14 03:50:50.000000000","_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},{"value":0,"_account_id":9878,"name":"Zack M. Davis","email":"zdavis@swiftstack.com","username":"zackmdavis"},{"value":0,"_account_id":8262,"name":"Jon Snitow","email":"otherjon@swiftstack.com","username":"otherjon"},{"value":0,"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},{"value":0,"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"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":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"all":[{"value":1,"date":"2016-01-20 23:01:15.000000000","_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},{"value":0,"_account_id":9878,"name":"Zack M. Davis","email":"zdavis@swiftstack.com","username":"zackmdavis"},{"value":0,"_account_id":8262,"name":"Jon Snitow","email":"otherjon@swiftstack.com","username":"otherjon"},{"value":0,"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},{"value":0,"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},{"_account_id":8262,"name":"Jon Snitow","email":"otherjon@swiftstack.com","username":"otherjon"},{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},{"_account_id":9878,"name":"Zack M. Davis","email":"zdavis@swiftstack.com","username":"zackmdavis"},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2015-06-15 21:35:11.000000000","updated_by":{"_account_id":8262,"name":"Jon Snitow","email":"otherjon@swiftstack.com","username":"otherjon"},"reviewer":{"_account_id":8262,"name":"Jon Snitow","email":"otherjon@swiftstack.com","username":"otherjon"},"state":"REVIEWER"},{"updated":"2015-06-24 00:56:00.000000000","updated_by":{"_account_id":9878,"name":"Zack M. Davis","email":"zdavis@swiftstack.com","username":"zackmdavis"},"reviewer":{"_account_id":9878,"name":"Zack M. Davis","email":"zdavis@swiftstack.com","username":"zackmdavis"},"state":"REVIEWER"},{"updated":"2015-07-29 18:09:11.000000000","updated_by":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"reviewer":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"state":"REVIEWER"},{"updated":"2016-01-14 03:50:50.000000000","updated_by":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"reviewer":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"state":"REVIEWER"},{"updated":"2016-01-20 23:01:15.000000000","updated_by":{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"reviewer":{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"state":"REVIEWER"},{"updated":"2016-01-22 05:49:30.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"27bf34ad781bd4db46a1b469b3534b208816c79d","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2015-06-12 01:13:14.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"f2a06453ccd2b2ad6ef273db038d987042c7d4ad","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2015-06-12 01:13:31.000000000","message":"Patch Set 1: Workflow-1\n\nClearly needs tests, but wanted to start getting feedback. Some design notes (feel free to debate them!):\n\nThis uses a new command (\"bulkdelete\") instead of a flag (\"delete --bulk\"). I did this as the overlap in functionality between normal deletes and bulk deletes is rather minimal.\n\nWhen providing a file containing objects to delete, the user *must not* url-encode the items. The bulkdelete command will do it for them on upload. While this means the file you\u0027d use for curl can\u0027t be the file you\u0027d use for python-swiftclient, it allows you to send the output of a container listing to a file, edit it, and use the resulting file.","accounts_in_message":[],"_revision_number":1},{"id":"586db2058fc5f2d41be0a07b13acf9d5194ce81f","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2015-06-12 01:34:33.000000000","message":"Topic set to bulkdelete","accounts_in_message":[],"_revision_number":1},{"id":"99af5afd030dc67b3876e76edbb23a74fe3d9c67","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-06-12 02:13:10.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-swiftclient-python26 http://logs.openstack.org/87/190887/1/check/gate-python-swiftclient-python26/4158f25/ : SUCCESS in 51s\n- gate-python-swiftclient-pep8 http://logs.openstack.org/87/190887/1/check/gate-python-swiftclient-pep8/d84c199/ : SUCCESS in 52s\n- gate-python-swiftclient-docs http://docs-draft.openstack.org/87/190887/1/check/gate-python-swiftclient-docs/45fc0b2//doc/build/html/ : SUCCESS in 1m 13s\n- gate-python-swiftclient-python27 http://logs.openstack.org/87/190887/1/check/gate-python-swiftclient-python27/f5443fb/ : SUCCESS in 1m 05s\n- gate-python-swiftclient-python34 http://logs.openstack.org/87/190887/1/check/gate-python-swiftclient-python34/50f9287/ : SUCCESS in 2m 16s\n- gate-python-swiftclient-pypy http://logs.openstack.org/87/190887/1/check/gate-python-swiftclient-pypy/14fec2c/ : SUCCESS in 1m 46s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/87/190887/1/check/gate-tempest-dsvm-neutron-src-python-swiftclient/b47f684/ : SUCCESS in 59m 49s\n- check-swift-dsvm-functional http://logs.openstack.org/87/190887/1/check/check-swift-dsvm-functional/409f10c/ : SUCCESS in 25m 15s\n- check-swiftclient-dsvm-functional http://logs.openstack.org/87/190887/1/check/check-swiftclient-dsvm-functional/91e6786/ : SUCCESS in 14m 44s","accounts_in_message":[],"_revision_number":1},{"id":"7f8669cd12e9965801ac56e7a91e52870c3284a7","author":{"_account_id":8262,"name":"Jon Snitow","email":"otherjon@swiftstack.com","username":"otherjon"},"date":"2015-06-15 21:35:11.000000000","message":"Patch Set 1:\n\n(8 comments)\n\nThank you for helping python-swiftclient support more core Swift operations!  Your work here will be directly helpful to me.\n\nHere are some comments of varying usefulness, including some which blatantly ignore your statement that this is an early version for feedback -- I don\u0027t mean to pick nits, just to help you clean up quickly when you\u0027re ready.","accounts_in_message":[],"_revision_number":1},{"id":"442ab3f9e3d01de51186f6bc9860d227a7d1a318","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2015-06-16 02:05:30.000000000","message":"Patch Set 1:\n\n(8 comments)\n\nNits are fine; they help expose larger problems :)\n\nA core point of confusion is that I\u0027m viewing --prefix from the bulk-delete perspective, rather than the perspective of the rest of python-swiftclient. I\u0027m not sure yet whether that\u0027s a good or bad thing.\n\nWill upload another patchset shortly, but the output format will probably still require some iterating.","accounts_in_message":[],"_revision_number":1},{"id":"fa3bea7d1be9b9f0bcafd0dc6d495f6ed4260260","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2015-06-16 02:07:11.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"cd7f1ecd03140ceb1a1823f7a8271f602f34f2a0","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2015-06-16 02:08:07.000000000","message":"Patch Set 2: Workflow-1","accounts_in_message":[],"_revision_number":2},{"id":"d20b36d45c404d6cf6d3d2bbfff97d238373dd34","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-06-16 03:00:56.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-swiftclient-python26 http://logs.openstack.org/87/190887/2/check/gate-python-swiftclient-python26/377bc09/ : SUCCESS in 56s\n- gate-python-swiftclient-pep8 http://logs.openstack.org/87/190887/2/check/gate-python-swiftclient-pep8/7edaa85/ : SUCCESS in 45s\n- gate-python-swiftclient-docs http://docs-draft.openstack.org/87/190887/2/check/gate-python-swiftclient-docs/4233606//doc/build/html/ : SUCCESS in 50s\n- gate-python-swiftclient-python27 http://logs.openstack.org/87/190887/2/check/gate-python-swiftclient-python27/15156ea/ : SUCCESS in 56s\n- gate-python-swiftclient-python34 http://logs.openstack.org/87/190887/2/check/gate-python-swiftclient-python34/7056e02/ : SUCCESS in 2m 12s\n- gate-python-swiftclient-pypy http://logs.openstack.org/87/190887/2/check/gate-python-swiftclient-pypy/44fdd67/ : SUCCESS in 1m 27s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/87/190887/2/check/gate-tempest-dsvm-neutron-src-python-swiftclient/5140e5b/ : SUCCESS in 47m 29s\n- check-swift-dsvm-functional http://logs.openstack.org/87/190887/2/check/check-swift-dsvm-functional/25bf00b/ : SUCCESS in 26m 15s\n- check-swiftclient-dsvm-functional http://logs.openstack.org/87/190887/2/check/check-swiftclient-dsvm-functional/70b8ee3/ : SUCCESS in 20m 45s","accounts_in_message":[],"_revision_number":2},{"id":"e2772c3dbe989242e619e3c07b905fa1b2401ff0","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2015-06-17 02:16:49.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"5a7e261bd0fe3c14acd12679c9b6aac805b5feb5","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-06-17 03:12:56.000000000","message":"Patch Set 3: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see http://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n- gate-python-swiftclient-python26 http://logs.openstack.org/87/190887/3/check/gate-python-swiftclient-python26/5b67587/ : SUCCESS in 46s\n- gate-python-swiftclient-pep8 http://logs.openstack.org/87/190887/3/check/gate-python-swiftclient-pep8/1eed0bd/ : SUCCESS in 50s\n- gate-python-swiftclient-docs http://docs-draft.openstack.org/87/190887/3/check/gate-python-swiftclient-docs/d30dcc2//doc/build/html/ : SUCCESS in 50s\n- gate-python-swiftclient-python27 http://logs.openstack.org/87/190887/3/check/gate-python-swiftclient-python27/d012ee4/ : FAILURE in 1m 01s\n- gate-python-swiftclient-python34 http://logs.openstack.org/87/190887/3/check/gate-python-swiftclient-python34/9c78814/ : SUCCESS in 2m 26s\n- gate-python-swiftclient-pypy http://logs.openstack.org/87/190887/3/check/gate-python-swiftclient-pypy/65e79ae/ : SUCCESS in 1m 37s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/87/190887/3/check/gate-tempest-dsvm-neutron-src-python-swiftclient/6117d1e/ : SUCCESS in 56m 00s\n- check-swift-dsvm-functional http://logs.openstack.org/87/190887/3/check/check-swift-dsvm-functional/0a613b5/ : SUCCESS in 23m 53s\n- check-swiftclient-dsvm-functional http://logs.openstack.org/87/190887/3/check/check-swiftclient-dsvm-functional/2021e4f/ : SUCCESS in 16m 13s","accounts_in_message":[],"_revision_number":3},{"id":"27a2ae8140ab1dcbc29cf4690c80130b91995f9c","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2015-06-17 16:47:37.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"5f2125ceda7304bf83e7440706f040fd20b0de9c","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-06-17 18:03:40.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-swiftclient-python26 http://logs.openstack.org/87/190887/4/check/gate-python-swiftclient-python26/2c7ba0a/ : SUCCESS in 58s\n- gate-python-swiftclient-pep8 http://logs.openstack.org/87/190887/4/check/gate-python-swiftclient-pep8/bf34bd0/ : SUCCESS in 44s\n- gate-python-swiftclient-docs http://docs-draft.openstack.org/87/190887/4/check/gate-python-swiftclient-docs/7111202//doc/build/html/ : SUCCESS in 43s\n- gate-python-swiftclient-python27 http://logs.openstack.org/87/190887/4/check/gate-python-swiftclient-python27/45bd332/ : SUCCESS in 1m 00s\n- gate-python-swiftclient-python34 http://logs.openstack.org/87/190887/4/check/gate-python-swiftclient-python34/040cf0c/ : SUCCESS in 2m 30s\n- gate-python-swiftclient-pypy http://logs.openstack.org/87/190887/4/check/gate-python-swiftclient-pypy/e88532f/ : SUCCESS in 1m 48s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/87/190887/4/check/gate-tempest-dsvm-neutron-src-python-swiftclient/3206a32/ : SUCCESS in 53m 21s\n- check-swift-dsvm-functional http://logs.openstack.org/87/190887/4/check/check-swift-dsvm-functional/60f7f49/ : SUCCESS in 25m 40s\n- check-swiftclient-dsvm-functional http://logs.openstack.org/87/190887/4/check/check-swiftclient-dsvm-functional/d0a79fb/ : SUCCESS in 16m 23s","accounts_in_message":[],"_revision_number":4},{"id":"ccdfc6f15de4f45487c452e7e87152336f8f1e47","author":{"_account_id":9878,"name":"Zack M. Davis","email":"zdavis@swiftstack.com","username":"zackmdavis"},"date":"2015-06-24 00:49:48.000000000","message":"Patch Set 5: Patch Set 4 was rebased","accounts_in_message":[],"_revision_number":4},{"id":"de8a505b929c3eee8a0a641346e24d10bf6ab9bd","author":{"_account_id":9878,"name":"Zack M. Davis","email":"zdavis@swiftstack.com","username":"zackmdavis"},"date":"2015-06-24 00:56:00.000000000","message":"Patch Set 5:\n\nOh! Really sorry about patch set 5! I was curious what the \"rebase\" button did (perhaps imagining that it would make a new branch equivalent to rebasing on master that I \"own\"), so I idly clicked it, on the assumption that surely Gerrit wouldn\u0027t actually let me rebase someone else\u0027s submission!","accounts_in_message":[],"_revision_number":5},{"id":"73f714a01bcf3e1d790c924178dd2fe9fb93767f","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-06-24 01:35:48.000000000","message":"Patch Set 5: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see http://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n- gate-python-swiftclient-python26 http://logs.openstack.org/87/190887/5/check/gate-python-swiftclient-python26/2877692/ : SUCCESS in 47s\n- gate-python-swiftclient-pep8 http://logs.openstack.org/87/190887/5/check/gate-python-swiftclient-pep8/4d97673/ : SUCCESS in 44s\n- gate-python-swiftclient-docs http://docs-draft.openstack.org/87/190887/5/check/gate-python-swiftclient-docs/d370b56//doc/build/html/ : SUCCESS in 58s\n- gate-python-swiftclient-python27 http://logs.openstack.org/87/190887/5/check/gate-python-swiftclient-python27/d860fba/ : SUCCESS in 59s\n- gate-python-swiftclient-python34 http://logs.openstack.org/87/190887/5/check/gate-python-swiftclient-python34/b4b64fe/ : SUCCESS in 1m 47s\n- gate-python-swiftclient-pypy http://logs.openstack.org/87/190887/5/check/gate-python-swiftclient-pypy/47f9b76/ : SUCCESS in 1m 23s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/87/190887/5/check/gate-tempest-dsvm-neutron-src-python-swiftclient/ac0ec7e/ : SUCCESS in 45m 53s\n- check-swift-dsvm-functional http://logs.openstack.org/87/190887/5/check/check-swift-dsvm-functional/3d26847/ : SUCCESS in 21m 31s\n- check-swiftclient-dsvm-functional http://logs.openstack.org/87/190887/5/check/check-swiftclient-dsvm-functional/711d52e/ : FAILURE in 14m 49s","accounts_in_message":[],"_revision_number":5},{"id":"12f5eb9663511f7da5f8adc5ddf92f9f0416ec81","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2015-06-24 02:28:39.000000000","message":"Patch Set 5:\n\nrecheck","accounts_in_message":[],"_revision_number":5},{"id":"fb87cd11d16f0dd398d5d0d44b148d7dd3249df5","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-06-24 03:27:18.000000000","message":"Patch Set 5:\n\nBuild failed (check pipeline).  For information on how to proceed, see http://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n- gate-python-swiftclient-python26 http://logs.openstack.org/87/190887/5/check/gate-python-swiftclient-python26/0d24b81/ : SUCCESS in 1m 04s\n- gate-python-swiftclient-pep8 http://logs.openstack.org/87/190887/5/check/gate-python-swiftclient-pep8/5a87a2d/ : SUCCESS in 41s\n- gate-python-swiftclient-docs http://docs-draft.openstack.org/87/190887/5/check/gate-python-swiftclient-docs/c2bb806//doc/build/html/ : SUCCESS in 1m 02s\n- gate-python-swiftclient-python27 http://logs.openstack.org/87/190887/5/check/gate-python-swiftclient-python27/b733b2f/ : SUCCESS in 55s\n- gate-python-swiftclient-python34 http://logs.openstack.org/87/190887/5/check/gate-python-swiftclient-python34/72d82b8/ : SUCCESS in 2m 19s\n- gate-python-swiftclient-pypy http://logs.openstack.org/87/190887/5/check/gate-python-swiftclient-pypy/0fed839/ : SUCCESS in 1m 52s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/87/190887/5/check/gate-tempest-dsvm-neutron-src-python-swiftclient/f8ab10b/ : SUCCESS in 58m 33s\n- check-swift-dsvm-functional http://logs.openstack.org/87/190887/5/check/check-swift-dsvm-functional/874d140/ : SUCCESS in 22m 52s\n- check-swiftclient-dsvm-functional http://logs.openstack.org/87/190887/5/check/check-swiftclient-dsvm-functional/1d3cad1/ : FAILURE in 20m 05s","accounts_in_message":[],"_revision_number":5},{"id":"5eb5e142c4d305538780e552dda925008df160e9","author":{"_account_id":9878,"name":"Zack M. Davis","email":"zdavis@swiftstack.com","username":"zackmdavis"},"date":"2015-06-24 21:07:29.000000000","message":"Patch Set 5:\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"d01a06f25509ca314758f868283d7b0e5714cca0","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2015-07-01 22:48:35.000000000","message":"Patch Set 5:\n\nrecheck no bug","accounts_in_message":[],"_revision_number":5},{"id":"dad6f21984da5a57387565be2534c3f79f519427","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-07-01 23:47:53.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-swiftclient-python26 http://logs.openstack.org/87/190887/5/check/gate-python-swiftclient-python26/23e4900/ : SUCCESS in 50s\n- gate-python-swiftclient-pep8 http://logs.openstack.org/87/190887/5/check/gate-python-swiftclient-pep8/9f5813e/ : SUCCESS in 44s\n- gate-python-swiftclient-docs http://docs-draft.openstack.org/87/190887/5/check/gate-python-swiftclient-docs/85cb1a8//doc/build/html/ : SUCCESS in 1m 00s\n- gate-python-swiftclient-python27 http://logs.openstack.org/87/190887/5/check/gate-python-swiftclient-python27/a037c1e/ : SUCCESS in 51s\n- gate-python-swiftclient-python34 http://logs.openstack.org/87/190887/5/check/gate-python-swiftclient-python34/c55424f/ : SUCCESS in 2m 14s\n- gate-python-swiftclient-pypy http://logs.openstack.org/87/190887/5/check/gate-python-swiftclient-pypy/aa8ad74/ : SUCCESS in 1m 47s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/87/190887/5/check/gate-tempest-dsvm-neutron-src-python-swiftclient/2606ed5/ : SUCCESS in 55m 16s\n- check-swift-dsvm-functional http://logs.openstack.org/87/190887/5/check/check-swift-dsvm-functional/aabbc86/ : SUCCESS in 26m 25s\n- check-swiftclient-dsvm-functional http://logs.openstack.org/87/190887/5/check/check-swiftclient-dsvm-functional/b06052e/ : SUCCESS in 19m 24s","accounts_in_message":[],"_revision_number":5},{"id":"17875dfa3134a60f1c3bd790ba068296ac48f999","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2015-07-02 21:39:07.000000000","message":"Patch Set 5:\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"3676887986b5b8a64248981ef0162ac31fa1c145","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2015-07-02 21:49:44.000000000","message":"Uploaded patch set 6.","accounts_in_message":[],"_revision_number":6},{"id":"ed542fe4f503d233603045da332945c1b5d6ee16","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-07-02 22:44:03.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-swiftclient-python26 http://logs.openstack.org/87/190887/6/check/gate-python-swiftclient-python26/ce12ff6/ : SUCCESS in 56s\n- gate-python-swiftclient-pep8 http://logs.openstack.org/87/190887/6/check/gate-python-swiftclient-pep8/d997f46/ : SUCCESS in 49s\n- gate-python-swiftclient-docs http://docs-draft.openstack.org/87/190887/6/check/gate-python-swiftclient-docs/fde648d//doc/build/html/ : SUCCESS in 1m 02s\n- gate-python-swiftclient-python27 http://logs.openstack.org/87/190887/6/check/gate-python-swiftclient-python27/8cb882a/ : SUCCESS in 1m 06s\n- gate-python-swiftclient-python34 http://logs.openstack.org/87/190887/6/check/gate-python-swiftclient-python34/ecd915e/ : SUCCESS in 2m 11s\n- gate-python-swiftclient-pypy http://logs.openstack.org/87/190887/6/check/gate-python-swiftclient-pypy/b38a77e/ : SUCCESS in 1m 34s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/87/190887/6/check/gate-tempest-dsvm-neutron-src-python-swiftclient/5691371/ : SUCCESS in 54m 12s\n- check-swift-dsvm-functional http://logs.openstack.org/87/190887/6/check/check-swift-dsvm-functional/84584e7/ : SUCCESS in 29m 27s\n- check-swiftclient-dsvm-functional http://logs.openstack.org/87/190887/6/check/check-swiftclient-dsvm-functional/4ceba9d/ : SUCCESS in 15m 38s","accounts_in_message":[],"_revision_number":6},{"id":"0423523dcd818819d5300afb12d9b3c56240d74b","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-07-11 06:41:48.000000000","message":"Patch Set 6: Verified-1\n\nMerge Failed.\n\nThis change was unable to be automatically merged with the current state of the repository. Please rebase your change and upload a new patchset.","accounts_in_message":[],"_revision_number":6},{"id":"ba59c44801a9bbbf5b71dfbb4fb518bea2b21409","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2015-07-13 15:49:36.000000000","message":"Uploaded patch set 7.","accounts_in_message":[],"_revision_number":7},{"id":"b172c3ab8d12192b3213a43d7f91a08fa9d7e88d","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-07-13 21:10:07.000000000","message":"Patch Set 7: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-swiftclient-python26 http://logs.openstack.org/87/190887/7/check/gate-python-swiftclient-python26/c9b3e8b/ : SUCCESS in 45s\n- gate-python-swiftclient-pep8 http://logs.openstack.org/87/190887/7/check/gate-python-swiftclient-pep8/b4ce774/ : SUCCESS in 10s\n- gate-python-swiftclient-docs http://docs-draft.openstack.org/87/190887/7/check/gate-python-swiftclient-docs/3b485d9//doc/build/html/ : SUCCESS in 12s\n- gate-python-swiftclient-python27 http://logs.openstack.org/87/190887/7/check/gate-python-swiftclient-python27/14430f3/ : SUCCESS in 18s\n- gate-python-swiftclient-python34 http://logs.openstack.org/87/190887/7/check/gate-python-swiftclient-python34/7fed02e/ : SUCCESS in 1m 27s\n- gate-python-swiftclient-pypy http://logs.openstack.org/87/190887/7/check/gate-python-swiftclient-pypy/6179bd7/ : SUCCESS in 1m 08s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/87/190887/7/check/gate-tempest-dsvm-neutron-src-python-swiftclient/0421db9/ : SUCCESS in 59m 31s\n- check-swift-dsvm-functional http://logs.openstack.org/87/190887/7/check/check-swift-dsvm-functional/fce71c4/ : SUCCESS in 38m 18s\n- check-swiftclient-dsvm-functional http://logs.openstack.org/87/190887/7/check/check-swiftclient-dsvm-functional/9778428/ : SUCCESS in 34m 24s","accounts_in_message":[],"_revision_number":7},{"id":"515b3e7b927a0ca30d8b8ab51197c48823ce4436","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2015-07-29 18:09:11.000000000","message":"Patch Set 7:\n\nI\u0027d prefer not having two ways to delete things; what about adding this stuff to the normal \"swift delete\" command and using bulk ops if available and single requests otherwise?","accounts_in_message":[],"_revision_number":7},{"id":"d018fafe6cfbd67813914d8adfac7821e41e91c5","author":{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"date":"2015-07-29 19:42:33.000000000","message":"Patch Set 7:\n\nI agree with Sam; can we merge the bulk delete functionality into the standard delete with a fallback to the previous code if the bulk middleware isn\u0027t available?\n\nIt would also be really nice to get the delete-with-prefix functionality from the bulk command into the standard delete command.","accounts_in_message":[],"_revision_number":7},{"id":"255cf6b59232d357d9da113ddacddf09594aa908","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2015-07-30 21:08:57.000000000","message":"Patch Set 7:\n\nSam, Joel: I have questions.\n\n1. How do we want to handle clusters between 1.8.0 (where the bulk middleware was added) and 1.11.0 (where it was registered in /info)? POST and see what happens? Do the safe thing and delete one-by-one? If the latter, we might want to add a --bulk flag so the user at least has the opportunity to say \"yes, I know what I\u0027m doing.\"\n\n2. Do we want to only allow multi-container deletes (like the first example in the commit message) when deleting from a file? The current semantics of delete (ignoring the --all flag) only allow deletes from a single container.\n\n3. At what point do we want to incur the added /info request? When deleting just one or two objects, it\u0027s not worth the effort; we\u0027d have as many or more round-trips. Clearly, when deleting hundreds of objects, one extra request is negligible and the potential savings well worth it. What about five or ten objects? If the bulk middleware isn\u0027t enabled, we have to fall back to individual deletes anyway, and we\u0027ve incurred an added request for nothing.\n\n4. Should we be caching the result of the /info request somewhere? It should be changing infrequently, and doing so would about make up my mind on 3. How/where would we cache it? At what point should we consider it stale and check again?\n\nMost of these are not unique to the bulk operations middleware: slo would benefit from the use of /info, but we haven\u0027t done it because of 1, 3, and 4. It\u0027d be great to know definitively what middlewares are and aren\u0027t enabled, and I\u0027d love to respect middleware constraints (like max_deletes_per_request here, or min_segment_size for slo) automatically, but this feels like something that will require a lot of thought. I think it may be better left as future work, for when we have a coherent story surrounding session management.\n\nIf we\u0027re content to only allow deletes in a single-container from the command-line, I could see it being worth adding a --bulk flag to the existing delete command. This seems like a sane approach to the problem in 1, and will keep us from having to maintain a separate bulkdelete command. Toward that end, I\u0027ll look into getting --prefix and --from-file into the normal delete, then switching away from bulkdelete to --bulk. Shouldn\u0027t be too terrible.","accounts_in_message":[],"_revision_number":7},{"id":"aa2ba325d0f05a7bf643d9be1191c28d28fdb3a1","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2015-07-30 21:26:22.000000000","message":"Patch Set 7:\n\n1. IMO we should use the bulk middleware only if we *know* it is present. The --bulk flag could be good, but I don\u0027t see it as essential.\n\n2. Yeah, our current syntax of \"swift delete container obj [obj2 [obj3 ...]]\" doesn\u0027t really play well with deleting from multiple containers, does it? In that case, we would be restricted to reading from a file if we wanted to delete from multiple containers at once. That\u0027s not too bad IMO, especially if we can specify \"-\" to read from stdin, as that makes it scriptable without tempfiles (and the inherent problems that come with them).\n\n3. Three requests. Assuming a 50% chance of finding bulk middleware enabled, that\u0027s where the math works out.\n\nWith one deletion, you just issue an object DELETE. You can\u0027t do any better than one request.\n\nWith two deletions, you GET /info, then (a) issue two object DELETEs anyway, or (b) issue a bulk delete. Expected value is 2.5 requests. That\u0027s worse than just issuing the object DELETEs.\n\nWith three deletions, you GET /info, then (a) issue three object DELETEs anyway, or (b) issue a bulk delete. Expected value is 3 requests. That\u0027s the same number as just issuing the object DELETEs.\n\nWith N \u003e\u003d 4 deletions, you GET /info, then (a) issue N object DELETEs anyway, or (b) issue a bulk delete. Expected value is (N + 3) / 2 requests. That\u0027s better than just issuing the object DELETEs.\n\nOver time, the probability of encountering the bulk middleware will go up, so that\u0027ll shift the breakeven point closer to 2 (but never reaching 2, of course).\n\n4. Maybe start with simple in-memory caching? Don\u0027t automatically flush it, but provide a way to flush for people who really care. It\u0027s something that requires human intervention to change, so for any process that only lives a few minutes or hours, invalidating the info cache probably isn\u0027t worth bothering with.","accounts_in_message":[],"_revision_number":7},{"id":"57b5e2f774fbaf22900ea91f3e1ac4cc8ec4d21e","author":{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"date":"2015-08-05 08:00:17.000000000","message":"Patch Set 7:\n\nHey Tim, answers inline:\n\n1) Given that we\u0027re adding this feature now, and that all the versions of swift that don\u0027t support /info are EOL I\u0027m happy that we should only use the bulk middleware if we can query for existence.\n\n2) I think we\u0027ll have to only allow multi-container deletes when deleting from a file in order to combine the bulkdelete and delete commands, because the only other option if multiple syntaxes for specifying lists of objects. I don\u0027t really have a problem with forcing bulk operations to use a file if it improves the speed of basic delete commands... do you disagree?\n\n3) Adding a request to /info for small numbers of objects seems unnecessary because a number of deletes up to the number of object threads would be kicked off in parallel anyway, so gating them all on the info request seems like it might have a heavier than expected impact. I think it\u0027s worth a few quick benchmarks because I imagine this question might be more complex than it seems. There\u0027s also the question of the impact of threads and bulk-delete batch sizes (are 2 bulk operations in separate threads with 100 deletes each faster than 1 bulk operation with 200 deletes?). This also relates to your question of respecting middleware constraints and finding the most efficient balance between the two... I think a simple version is useful for now, and making good use of /info could be the subject of a future patch.\n\n4) I think caching the result of the /info request would be very handy for SwiftService. Ideally I\u0027d like to see that being invalidated as well, but that can probably be the subject of a future patch.","accounts_in_message":[],"_revision_number":7},{"id":"de02865c4cf7ad4c369f665128cc9765f88646dd","author":{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"date":"2015-08-05 11:31:15.000000000","message":"Patch Set 7:\n\nAnother thought: As we go forward and start using the information available at /info, maybe it\u0027s worth just attempting a request to /info in a background thread during SwiftService.__init__() ?","accounts_in_message":[],"_revision_number":7},{"id":"baa6ad0cda7191255bafb0ec26834ee185b8f574","author":{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"date":"2015-08-18 19:17:09.000000000","message":"Patch Set 7: Code-Review-1\n\nPrevious comments regarding having multiple ways to delete things still stand. Is there really no nice way to combine the delete and bulkdelete commands?","accounts_in_message":[],"_revision_number":7},{"id":"ab24974a3ee6c5a362aa4f3764a136f235d1bae0","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2015-08-18 19:20:18.000000000","message":"Patch Set 7: Workflow-1\n\nI\u0027m working on it, I\u0027m working on it... I just hadn\u0027t marked it as such :P\n\nIt *is* a bit more trouble than I was originally hoping for, though. Similar to my plan to decode filesystem paths.","accounts_in_message":[],"_revision_number":7},{"id":"1efa3654408a0d12bae3269449daf794087c63fb","author":{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"date":"2015-08-18 20:35:33.000000000","message":"Patch Set 7:\n\nSorry! I\u0027ll try to wait patiently :)","accounts_in_message":[],"_revision_number":7},{"id":"bd59c43258a5a9f0b111b148268f21e97b109eb9","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-08-25 02:02:58.000000000","message":"Patch Set 7: Verified-1\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.","accounts_in_message":[],"_revision_number":7},{"id":"74ac50e647d21edb12a5eade024578ccfab3026c","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2015-10-09 02:54:58.000000000","message":"Uploaded patch set 8.","accounts_in_message":[],"_revision_number":8},{"id":"362ffa420cf25375c4196a3ac1ab5677f62adf9a","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2015-10-09 03:01:38.000000000","message":"Patch Set 8:\n\nI think there was actually something else I wanted to do here, but I forget what it was. Add more tests, maybe? I know I was doing *something* else to it, which eventually prompted me to write https://review.openstack.org/#/c/222009/\n\nAnyway, what I\u0027ve got passes all its tests.","accounts_in_message":[],"_revision_number":8},{"id":"a47d30ecef2d66d5010466cc667b8b9c29100c80","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-10-09 04:05:22.000000000","message":"Patch Set 8: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-swiftclient-python26 http://logs.openstack.org/87/190887/8/check/gate-python-swiftclient-python26/c5c152b/ : SUCCESS in 57s\n- gate-python-swiftclient-pep8 http://logs.openstack.org/87/190887/8/check/gate-python-swiftclient-pep8/41abb36/ : SUCCESS in 43s\n- gate-python-swiftclient-docs http://docs-draft.openstack.org/87/190887/8/check/gate-python-swiftclient-docs/6aeea06//doc/build/html/ : SUCCESS in 52s\n- gate-python-swiftclient-python27 http://logs.openstack.org/87/190887/8/check/gate-python-swiftclient-python27/b8557d0/ : SUCCESS in 54s\n- gate-python-swiftclient-python34 http://logs.openstack.org/87/190887/8/check/gate-python-swiftclient-python34/fc3330d/ : SUCCESS in 2m 15s\n- gate-python-swiftclient-pypy http://logs.openstack.org/87/190887/8/check/gate-python-swiftclient-pypy/54aa065/ : SUCCESS in 1m 30s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/87/190887/8/check/gate-tempest-dsvm-neutron-src-python-swiftclient/bc0181b/ : SUCCESS in 1h 06m 53s\n- gate-swift-dsvm-functional http://logs.openstack.org/87/190887/8/check/gate-swift-dsvm-functional/9086ffe/ : SUCCESS in 27m 57s\n- gate-swiftclient-dsvm-functional http://logs.openstack.org/87/190887/8/check/gate-swiftclient-dsvm-functional/23701f5/ : SUCCESS in 26m 47s","accounts_in_message":[],"_revision_number":8},{"id":"93fe36e62f16a3b262c7b8decb36045daebaacc9","author":{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"date":"2015-10-21 12:34:23.000000000","message":"Patch Set 8: Code-Review+1\n\n(1 comment)\n\nThis is looking good now :)\n\n+1 while I do some more testing.","accounts_in_message":[],"_revision_number":8},{"id":"49385e1649b4bc1168fe210487d1291941265a6c","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2015-10-22 04:45:39.000000000","message":"Patch Set 8: Code-Review-1\n\n(1 comment)\n\nWould it be possible to add -p to \u0027delete\u0027 section in doc/manpages/swift.1 ?","accounts_in_message":[],"_revision_number":8},{"id":"ca4cf132b98eaa66a33c7fcc4da2412bce7b514d","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2015-10-26 02:38:43.000000000","message":"Patch Set 8:\n\n(2 comments)\n\nAlso updating the manpage...","accounts_in_message":[],"_revision_number":8},{"id":"6b9a0eeb7c578f1418811480bb35e5b5cf798a72","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2015-10-26 02:38:51.000000000","message":"Uploaded patch set 9.","accounts_in_message":[],"_revision_number":9},{"id":"59a7ce4fed7acd668a1d5ccbe699e50771b9cfd6","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-10-26 03:50:39.000000000","message":"Patch Set 9: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see http://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n- gate-python-swiftclient-python26 http://logs.openstack.org/87/190887/9/check/gate-python-swiftclient-python26/fc3a3e2/ : SUCCESS in 54s\n- gate-python-swiftclient-pep8 http://logs.openstack.org/87/190887/9/check/gate-python-swiftclient-pep8/5fbde2b/ : SUCCESS in 41s\n- gate-python-swiftclient-docs http://docs-draft.openstack.org/87/190887/9/check/gate-python-swiftclient-docs/3ab2e21//doc/build/html/ : SUCCESS in 55s\n- gate-python-swiftclient-python27 http://logs.openstack.org/87/190887/9/check/gate-python-swiftclient-python27/1a37b2b/ : FAILURE in 48s\n- gate-python-swiftclient-python34 http://logs.openstack.org/87/190887/9/check/gate-python-swiftclient-python34/368aafb/ : FAILURE in 1m 24s\n- gate-python-swiftclient-pypy http://logs.openstack.org/87/190887/9/check/gate-python-swiftclient-pypy/3425b2b/ : SUCCESS in 1m 20s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/87/190887/9/check/gate-tempest-dsvm-neutron-src-python-swiftclient/bc45af2/ : SUCCESS in 1h 11m 41s\n- gate-swift-dsvm-functional http://logs.openstack.org/87/190887/9/check/gate-swift-dsvm-functional/d8e175b/ : SUCCESS in 25m 56s\n- gate-swiftclient-dsvm-functional http://logs.openstack.org/87/190887/9/check/gate-swiftclient-dsvm-functional/b42dd0e/ : SUCCESS in 25m 28s","accounts_in_message":[],"_revision_number":9},{"id":"760e987b44b87b08e63b57079a515fee150e7d81","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2015-10-26 04:07:22.000000000","message":"Uploaded patch set 10.","accounts_in_message":[],"_revision_number":10},{"id":"c2a8243df4b526f0f394dff254351c394e4b44f2","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-10-26 05:19:06.000000000","message":"Patch Set 10: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-swiftclient-python26 http://logs.openstack.org/87/190887/10/check/gate-python-swiftclient-python26/99decdc/ : SUCCESS in 52s\n- gate-python-swiftclient-pep8 http://logs.openstack.org/87/190887/10/check/gate-python-swiftclient-pep8/6004103/ : SUCCESS in 37s\n- gate-python-swiftclient-docs http://docs-draft.openstack.org/87/190887/10/check/gate-python-swiftclient-docs/85c1785//doc/build/html/ : SUCCESS in 54s\n- gate-python-swiftclient-python27 http://logs.openstack.org/87/190887/10/check/gate-python-swiftclient-python27/3bbdf6e/ : SUCCESS in 1m 03s\n- gate-python-swiftclient-python34 http://logs.openstack.org/87/190887/10/check/gate-python-swiftclient-python34/6f243be/ : SUCCESS in 1m 49s\n- gate-python-swiftclient-pypy http://logs.openstack.org/87/190887/10/check/gate-python-swiftclient-pypy/7cba52c/ : SUCCESS in 1m 54s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/87/190887/10/check/gate-tempest-dsvm-neutron-src-python-swiftclient/7b6b0a4/ : SUCCESS in 1h 10m 35s\n- gate-swift-dsvm-functional http://logs.openstack.org/87/190887/10/check/gate-swift-dsvm-functional/6b94b07/ : SUCCESS in 25m 30s\n- gate-swiftclient-dsvm-functional http://logs.openstack.org/87/190887/10/check/gate-swiftclient-dsvm-functional/250fbcf/ : SUCCESS in 20m 19s","accounts_in_message":[],"_revision_number":10},{"id":"e584e028ec27acbe186a1aecb85fe982fac40575","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2015-10-26 08:41:35.000000000","message":"Patch Set 10: Code-Review+1\n\nThis looks good; however one question: is refresh_cache never set to true? Why was it added - in any case for long-living clients? Debugging?","accounts_in_message":[],"_revision_number":10},{"id":"714112adcf93e6bbe78f531a1f28e591ebf4e5e4","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2015-10-29 05:00:09.000000000","message":"Patch Set 10:\n\nPete,\n\nAs I recall you\u0027re correct -- no code currently uses the refresh_cache arg. I provided it primarily as an escape hatch for long-running processes using the SwiftService API, so they could be assured of *actually* getting fresh capabilities without needing to create a new service instance.\n\nThis is also why I added a timestamp to the result dict; this hypothetical client can see how out-of-date the capabilities are before deciding whether to try again with refresh_cache\u003dTrue.","accounts_in_message":[],"_revision_number":10},{"id":"6a0eccf4f43ca213cd2e3fa88388efe12d193a6c","author":{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"date":"2015-11-02 22:36:34.000000000","message":"Patch Set 10:\n\n(1 comment)\n\nJust one comment left from me. I really like this patch, just wondering if there\u0027s a case for restricting the size of a single bulk operation to a given page size of objects?","accounts_in_message":[],"_revision_number":10},{"id":"df2d0f6f90078aff10907cfe3beb8b6e0ae80c27","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2015-11-17 21:15:01.000000000","message":"Uploaded patch set 11.","accounts_in_message":[],"_revision_number":11},{"id":"fb8c5256afffe69d7df4bd0e2ae8944223c041a1","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2015-11-17 21:16:51.000000000","message":"Patch Set 11:\n\nJoel,\n\nI\u0027m not entirely sure where the sweet spot is in terms of items-per-bulk-delete. I can at least try to use all of my threads, though.","accounts_in_message":[],"_revision_number":11},{"id":"c28946697fc3c98d94b24b70cd659ceaedb2d767","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-11-17 23:25:18.000000000","message":"Patch Set 11: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-swiftclient-python26 http://logs.openstack.org/87/190887/11/check/gate-python-swiftclient-python26/fc644b6/ : SUCCESS in 43s\n- gate-python-swiftclient-pep8 http://logs.openstack.org/87/190887/11/check/gate-python-swiftclient-pep8/28e5dcb/ : SUCCESS in 48s\n- gate-python-swiftclient-docs http://docs-draft.openstack.org/87/190887/11/check/gate-python-swiftclient-docs/bd9409d//doc/build/html/ : SUCCESS in 40s\n- gate-python-swiftclient-python27 http://logs.openstack.org/87/190887/11/check/gate-python-swiftclient-python27/8a6e727/ : SUCCESS in 57s\n- gate-python-swiftclient-python34 http://logs.openstack.org/87/190887/11/check/gate-python-swiftclient-python34/ec09c35/ : SUCCESS in 3m 04s\n- gate-python-swiftclient-pypy http://logs.openstack.org/87/190887/11/check/gate-python-swiftclient-pypy/413a9f6/ : SUCCESS in 1m 13s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/87/190887/11/check/gate-tempest-dsvm-neutron-src-python-swiftclient/786e157/ : SUCCESS in 1h 12m 36s\n- gate-swift-dsvm-functional http://logs.openstack.org/87/190887/11/check/gate-swift-dsvm-functional/0d3155c/ : SUCCESS in 38m 10s\n- gate-swiftclient-dsvm-functional http://logs.openstack.org/87/190887/11/check/gate-swiftclient-dsvm-functional/075a252/ : SUCCESS in 27m 41s","accounts_in_message":[],"_revision_number":11},{"id":"a40316998da7525ec23d8101d6f9c08e8c673d81","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-01-06 00:33:59.000000000","message":"Patch Set 11: Verified-1\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.","accounts_in_message":[],"_revision_number":11},{"id":"12916564ad2e8620ca6f3f8975befc70d9f8f8f9","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-01-06 00:40:37.000000000","message":"Uploaded patch set 12.","accounts_in_message":[],"_revision_number":12},{"id":"cced6f64eb12f16c89cc24defe469c4b988c3201","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-01-06 00:40:48.000000000","message":"Patch Set 11:\n\nTrivial rebase","accounts_in_message":[],"_revision_number":11},{"id":"b0ca2d7df93bebf603c7ef0012141a0999543230","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-01-06 02:47:28.000000000","message":"Patch Set 12: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-swiftclient-pep8 http://logs.openstack.org/87/190887/12/check/gate-python-swiftclient-pep8/ed88ab9/ : SUCCESS in 49s\n- gate-python-swiftclient-docs http://docs-draft.openstack.org/87/190887/12/check/gate-python-swiftclient-docs/3ba4cb5//doc/build/html/ : SUCCESS in 54s\n- gate-python-swiftclient-python27 http://logs.openstack.org/87/190887/12/check/gate-python-swiftclient-python27/f6b5095/ : SUCCESS in 59s\n- gate-python-swiftclient-python34 http://logs.openstack.org/87/190887/12/check/gate-python-swiftclient-python34/815200a/ : SUCCESS in 1m 54s\n- gate-python-swiftclient-pypy http://logs.openstack.org/87/190887/12/check/gate-python-swiftclient-pypy/a555988/ : SUCCESS in 1m 26s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/87/190887/12/check/gate-tempest-dsvm-neutron-src-python-swiftclient/788ecc7/ : SUCCESS in 1h 02m 39s\n- gate-swift-dsvm-functional http://logs.openstack.org/87/190887/12/check/gate-swift-dsvm-functional/753227d/ : SUCCESS in 31m 59s\n- gate-swiftclient-dsvm-functional http://logs.openstack.org/87/190887/12/check/gate-swiftclient-dsvm-functional/ee57fb3/ : SUCCESS in 25m 40s","accounts_in_message":[],"_revision_number":12},{"id":"1d41e45b9b7519896fdb64635007967a3c325263","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-01-12 13:08:04.000000000","message":"Patch Set 12: Verified-1\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.","accounts_in_message":[],"_revision_number":12},{"id":"8a779ee91f77459bdbafa843e1118c4ed6ed8c7b","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-01-12 23:42:09.000000000","message":"Uploaded patch set 13.","accounts_in_message":[],"_revision_number":13},{"id":"b9258c2d75562d9cbc3f740514d386ddd1981c84","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-01-13 00:52:35.000000000","message":"Patch Set 13: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-swiftclient-pep8 http://logs.openstack.org/87/190887/13/check/gate-python-swiftclient-pep8/bd0aac4/ : SUCCESS in 44s\n- gate-python-swiftclient-docs http://docs-draft.openstack.org/87/190887/13/check/gate-python-swiftclient-docs/d65c991//doc/build/html/ : SUCCESS in 38s\n- gate-python-swiftclient-python27 http://logs.openstack.org/87/190887/13/check/gate-python-swiftclient-python27/c80ad4d/ : SUCCESS in 34s\n- gate-python-swiftclient-python34 http://logs.openstack.org/87/190887/13/check/gate-python-swiftclient-python34/3c14ddb/ : SUCCESS in 1m 41s\n- gate-python-swiftclient-pypy http://logs.openstack.org/87/190887/13/check/gate-python-swiftclient-pypy/74fc447/ : SUCCESS in 1m 13s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/87/190887/13/check/gate-tempest-dsvm-neutron-src-python-swiftclient/697a8d8/ : SUCCESS in 55m 58s\n- gate-swift-dsvm-functional http://logs.openstack.org/87/190887/13/check/gate-swift-dsvm-functional/b1e3df5/ : SUCCESS in 27m 02s\n- gate-swiftclient-dsvm-functional http://logs.openstack.org/87/190887/13/check/gate-swiftclient-dsvm-functional/d41bf2b/ : SUCCESS in 22m 05s","accounts_in_message":[],"_revision_number":13},{"id":"36be63e6cf9062e008db291031c2871b9f82f67d","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2016-01-14 03:50:50.000000000","message":"Patch Set 13: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":13},{"id":"8325f1c1e447c44587257728cc4d09433ae5a430","author":{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"date":"2016-01-20 23:01:15.000000000","message":"Patch Set 13: Code-Review+2 Workflow+1\n\nStill looks good to me :)","accounts_in_message":[],"_revision_number":13},{"id":"e063157b47d83236ef89acee6a969a18d4f72a99","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-01-20 23:01:20.000000000","message":"Patch Set 13: -Verified\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":13},{"id":"9a165392961c40ebb8827a2a97748f1cb695f716","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-01-22 05:49:30.000000000","message":"Patch Set 13: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- gate-python-swiftclient-docs http://docs-draft.openstack.org/87/190887/13/gate/gate-python-swiftclient-docs/ff5db2f//doc/build/html/ : SUCCESS in 1m 10s\n- gate-python-swiftclient-pep8 http://logs.openstack.org/87/190887/13/gate/gate-python-swiftclient-pep8/8ad0694/ : SUCCESS in 1m 08s\n- gate-python-swiftclient-python27 http://logs.openstack.org/87/190887/13/gate/gate-python-swiftclient-python27/66e7074/ : SUCCESS in 1m 06s\n- gate-python-swiftclient-python34 http://logs.openstack.org/87/190887/13/gate/gate-python-swiftclient-python34/3154f56/ : SUCCESS in 1m 54s\n- gate-tempest-dsvm-neutron-src-python-swiftclient http://logs.openstack.org/87/190887/13/gate/gate-tempest-dsvm-neutron-src-python-swiftclient/b87a403/ : SUCCESS in 1h 39m 06s\n- gate-swift-dsvm-functional http://logs.openstack.org/87/190887/13/gate/gate-swift-dsvm-functional/89f448c/ : SUCCESS in 31m 40s\n- gate-swiftclient-dsvm-functional http://logs.openstack.org/87/190887/13/gate/gate-swiftclient-dsvm-functional/973ee35/ : SUCCESS in 24m 29s","accounts_in_message":[],"_revision_number":13},{"id":"ffb13129c8a83020b96d548bf0a0f8ec94233e4e","date":"2016-01-22 05:49:31.000000000","message":"Change has been successfully merged into the git repository by Jenkins","accounts_in_message":[],"_revision_number":13}],"current_revision_number":13,"current_revision":"7a1e192803b8f4b739c9c3086bbfdc9a9c8d6753","revisions":{"a75674092af324a68812910d0a677fc71a20affa":{"kind":"REWORK","_number":1,"created":"2015-06-12 01:13:14.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/87/190887/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/87/190887/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/1"}}},"commit":{"parents":[{"commit":"ec3e2ab3a099b1276ae5d87fda936567f64423dc","subject":"Merge \"Allow reading from object body on download\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/ec3e2ab3a099b1276ae5d87fda936567f64423dc"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-06-11 21:33:39.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-06-12 01:09:20.000000000","tz":-420},"subject":"Add bulkdelete command","message":"Add bulkdelete command\n\nThis patch adds a new \"bulkdelete\" command to take advantage of the bulk\noperations API.\n\nExamples:\n\n$ swift bulkdelete c1/foo c1/bar c2/baz\n\n    ...will delete from container c1 objects foo and bar, and from\n    container c2 object baz.\n\n$ swift bulkdelete --from-file object-list.txt\n\n    ...where object-list.txt contains:\n\n    c1/foo\n    c1/bar\n    c2/baz\n\n    ...will delete the same objects as above.\n\n$ swift bulkdelete --prefix c/obj_prefix/\n\n    ...will delete from container c all objects whose name begins with\n    \"obj_prefix/\", such as obj_prefix/foo and obj_prefix/bar.\n\nThese forms may be combined, which will create multiple bulk-delete API\nrequests.\n\nChange-Id: I6b9504848d6ef562cf4f570bbcd17db4e3da8264\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/a75674092af324a68812910d0a677fc71a20affa"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/a75674092af324a68812910d0a677fc71a20affa"}]},"branch":"refs/heads/master"},"59a135bf98f347f7c1aed8d7300746450afbdb2b":{"kind":"REWORK","_number":2,"created":"2015-06-16 02:07:11.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/87/190887/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/87/190887/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/2"}}},"commit":{"parents":[{"commit":"ec3e2ab3a099b1276ae5d87fda936567f64423dc","subject":"Merge \"Allow reading from object body on download\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/ec3e2ab3a099b1276ae5d87fda936567f64423dc"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-06-11 21:33:39.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-06-16 02:06:03.000000000","tz":-420},"subject":"Add bulkdelete command","message":"Add bulkdelete command\n\nThis patch adds a new \"bulkdelete\" command to take advantage of the bulk\noperations API.\n\nExamples:\n\n$ swift bulkdelete c1/foo c1/bar c2/baz\n\n    ...will delete from container c1 objects foo and bar, and from\n    container c2 object baz.\n\n$ swift bulkdelete --from-file object-list.txt\n\n    ...where object-list.txt contains:\n\n    c1/foo\n    c1/bar\n    c2/baz\n\n    ...will delete the same objects as above.\n\n$ swift bulkdelete --prefix c/obj_prefix/\n\n    ...will delete from container c all objects whose name begins with\n    \"obj_prefix/\", such as obj_prefix/foo and obj_prefix/bar.\n\nThese forms may be combined, which will create multiple bulk-delete API\nrequests.\n\nChange-Id: I6b9504848d6ef562cf4f570bbcd17db4e3da8264\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/59a135bf98f347f7c1aed8d7300746450afbdb2b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/59a135bf98f347f7c1aed8d7300746450afbdb2b"}]},"branch":"refs/heads/master"},"2333289ca6fadbeabebbd4eb0390ab1a0cf99cb3":{"kind":"REWORK","_number":3,"created":"2015-06-17 02:16:49.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/87/190887/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/87/190887/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/3"}}},"commit":{"parents":[{"commit":"ec3e2ab3a099b1276ae5d87fda936567f64423dc","subject":"Merge \"Allow reading from object body on download\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/ec3e2ab3a099b1276ae5d87fda936567f64423dc"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-06-11 21:33:39.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-06-17 02:16:31.000000000","tz":-420},"subject":"Add bulkdelete command","message":"Add bulkdelete command\n\nThis patch adds a new \"bulkdelete\" command to take advantage of the bulk\noperations API.\n\nExamples:\n\n$ swift bulkdelete c1/foo c1/bar c2/baz\n\n    ...will delete from container c1 objects foo and bar, and from\n    container c2 object baz.\n\n$ swift bulkdelete --from-file object-list.txt\n\n    ...where object-list.txt contains:\n\n    c1/foo\n    c1/bar\n    c2/baz\n\n    ...will delete the same objects as above.\n\n$ swift bulkdelete --prefix c/obj_prefix/\n\n    ...will delete from container c all objects whose name begins with\n    \"obj_prefix/\", such as obj_prefix/foo and obj_prefix/bar.\n\nThese forms may be combined, which will create multiple bulk-delete API\nrequests.\n\nChange-Id: I6b9504848d6ef562cf4f570bbcd17db4e3da8264\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/2333289ca6fadbeabebbd4eb0390ab1a0cf99cb3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/2333289ca6fadbeabebbd4eb0390ab1a0cf99cb3"}]},"branch":"refs/heads/master"},"e88e0674f5827aa07933cc29743602eafa8f1f3b":{"kind":"REWORK","_number":4,"created":"2015-06-17 16:47:37.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/87/190887/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/87/190887/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/4"}}},"commit":{"parents":[{"commit":"ec3e2ab3a099b1276ae5d87fda936567f64423dc","subject":"Merge \"Allow reading from object body on download\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/ec3e2ab3a099b1276ae5d87fda936567f64423dc"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-06-11 21:33:39.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-06-17 16:47:24.000000000","tz":-420},"subject":"Add bulkdelete command","message":"Add bulkdelete command\n\nThis patch adds a new \"bulkdelete\" command to take advantage of the bulk\noperations API.\n\nExamples:\n\n$ swift bulkdelete c1/foo c1/bar c2/baz\n\n    ...will delete from container c1 objects foo and bar, and from\n    container c2 object baz.\n\n$ swift bulkdelete --from-file object-list.txt\n\n    ...where object-list.txt contains:\n\n    c1/foo\n    c1/bar\n    c2/baz\n\n    ...will delete the same objects as above.\n\n$ swift bulkdelete --prefix c/obj_prefix/\n\n    ...will delete from container c all objects whose name begins with\n    \"obj_prefix/\", such as obj_prefix/foo and obj_prefix/bar.\n\nThese forms may be combined, which will create multiple bulk-delete API\nrequests.\n\nChange-Id: I6b9504848d6ef562cf4f570bbcd17db4e3da8264\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/e88e0674f5827aa07933cc29743602eafa8f1f3b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/e88e0674f5827aa07933cc29743602eafa8f1f3b"}]},"branch":"refs/heads/master"},"28f1ebc24af9317c6267b61f53940e6e8389495a":{"kind":"TRIVIAL_REBASE","_number":5,"created":"2015-06-24 00:49:48.000000000","uploader":{"_account_id":9878,"name":"Zack M. Davis","email":"zdavis@swiftstack.com","username":"zackmdavis"},"ref":"refs/changes/87/190887/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/87/190887/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/5"}}},"commit":{"parents":[{"commit":"7c716997a8ede3f98741709b0594340df9849a76","subject":"Fix docstring typo for SwiftService.upload","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/7c716997a8ede3f98741709b0594340df9849a76"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-06-11 21:33:39.000000000","tz":-420},"committer":{"name":"Zack M. Davis","email":"zdavis@swiftstack.com","date":"2015-06-24 00:49:48.000000000","tz":0},"subject":"Add bulkdelete command","message":"Add bulkdelete command\n\nThis patch adds a new \"bulkdelete\" command to take advantage of the bulk\noperations API.\n\nExamples:\n\n$ swift bulkdelete c1/foo c1/bar c2/baz\n\n    ...will delete from container c1 objects foo and bar, and from\n    container c2 object baz.\n\n$ swift bulkdelete --from-file object-list.txt\n\n    ...where object-list.txt contains:\n\n    c1/foo\n    c1/bar\n    c2/baz\n\n    ...will delete the same objects as above.\n\n$ swift bulkdelete --prefix c/obj_prefix/\n\n    ...will delete from container c all objects whose name begins with\n    \"obj_prefix/\", such as obj_prefix/foo and obj_prefix/bar.\n\nThese forms may be combined, which will create multiple bulk-delete API\nrequests.\n\nChange-Id: I6b9504848d6ef562cf4f570bbcd17db4e3da8264\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/28f1ebc24af9317c6267b61f53940e6e8389495a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/28f1ebc24af9317c6267b61f53940e6e8389495a"}]},"branch":"refs/heads/master"},"64437e4d09aeae98c984f4edcf7df130db2dfe06":{"kind":"REWORK","_number":6,"created":"2015-07-02 21:49:44.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/87/190887/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/87/190887/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/6"}}},"commit":{"parents":[{"commit":"7c716997a8ede3f98741709b0594340df9849a76","subject":"Fix docstring typo for SwiftService.upload","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/7c716997a8ede3f98741709b0594340df9849a76"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-06-11 21:33:39.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-07-02 21:49:13.000000000","tz":-420},"subject":"Add bulkdelete command","message":"Add bulkdelete command\n\nThis patch adds a new \"bulkdelete\" command to take advantage of the bulk\noperations API.\n\nExamples:\n\n$ swift bulkdelete c1/foo c1/bar c2/baz\n\n    ...will delete from container c1 objects foo and bar, and from\n    container c2 object baz.\n\n$ swift bulkdelete --from-file object-list.txt\n\n    ...where object-list.txt contains:\n\n    c1/foo\n    c1/bar\n    c2/baz\n\n    ...will delete the same objects as above.\n\n$ swift bulkdelete --prefix c/obj_prefix/\n\n    ...will delete from container c all objects whose name begins with\n    \"obj_prefix/\", such as obj_prefix/foo and obj_prefix/bar.\n\nThese forms may be combined, which will create multiple bulk-delete API\nrequests.\n\nChange-Id: I6b9504848d6ef562cf4f570bbcd17db4e3da8264\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/64437e4d09aeae98c984f4edcf7df130db2dfe06"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/64437e4d09aeae98c984f4edcf7df130db2dfe06"}]},"branch":"refs/heads/master"},"4510fcaca3f802fe14246d1b90df61778f5fb1e5":{"kind":"REWORK","_number":7,"created":"2015-07-13 15:49:36.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/87/190887/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/87/190887/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/7"}}},"commit":{"parents":[{"commit":"de3fe02ba7d0112b6128a497981680bfad5b0f6b","subject":"Merge \"Correct the help message of swift tempurl\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/de3fe02ba7d0112b6128a497981680bfad5b0f6b"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-06-11 21:33:39.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-07-13 15:46:13.000000000","tz":-420},"subject":"Add bulkdelete command","message":"Add bulkdelete command\n\nThis patch adds a new \"bulkdelete\" command to take advantage of the bulk\noperations API.\n\nExamples:\n\n$ swift bulkdelete c1/foo c1/bar c2/baz\n\n    ...will delete from container c1 objects foo and bar, and from\n    container c2 object baz.\n\n$ swift bulkdelete --from-file object-list.txt\n\n    ...where object-list.txt contains:\n\n    c1/foo\n    c1/bar\n    c2/baz\n\n    ...will delete the same objects as above.\n\n$ swift bulkdelete --prefix c/obj_prefix/\n\n    ...will delete from container c all objects whose name begins with\n    \"obj_prefix/\", such as obj_prefix/foo and obj_prefix/bar.\n\nThese forms may be combined, which will create multiple bulk-delete API\nrequests.\n\nChange-Id: I6b9504848d6ef562cf4f570bbcd17db4e3da8264\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/4510fcaca3f802fe14246d1b90df61778f5fb1e5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/4510fcaca3f802fe14246d1b90df61778f5fb1e5"}]},"branch":"refs/heads/master"},"6491ef315a7cf1504db13d87741732be816ab9e3":{"kind":"REWORK","_number":8,"created":"2015-10-09 02:54:58.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/87/190887/8","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/87/190887/8","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/8"}}},"commit":{"parents":[{"commit":"9fed7ed5e1f6dd3e589a35e3ee4abecb676f2188","subject":"Miscellaneous (mostly test) cleanup","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/9fed7ed5e1f6dd3e589a35e3ee4abecb676f2188"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-06-11 21:33:39.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-10-09 02:33:16.000000000","tz":-420},"subject":"Use bulk-delete middleware when available","message":"Use bulk-delete middleware when available\n\nWhen issuing `delete` commands that would require three or more\nindividual deletes, check whether the cluster supports bulk deletes\nand use that if it\u0027s available.\n\nAdditionally, a new option is added to the `delete` command:\n\n  * --prefix \u003cprefix\u003e\n\n    Delete all objects that start with \u003cprefix\u003e. This is similar to the\n    --prefix option for the `list` command.\n\nExample:\n\n$ swift delete c --prefix obj_prefix/\n\n    ...will delete from container \"c\" all objects whose name begins with\n    \"obj_prefix/\", such as \"obj_prefix/foo\" and \"obj_prefix/bar\".\n\nChange-Id: I6b9504848d6ef562cf4f570bbcd17db4e3da8264\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/6491ef315a7cf1504db13d87741732be816ab9e3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/6491ef315a7cf1504db13d87741732be816ab9e3"}]},"branch":"refs/heads/master"},"af463043eb04a6ea34d95cffb0bdf847a7fcd02b":{"kind":"REWORK","_number":9,"created":"2015-10-26 02:38:51.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/87/190887/9","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/87/190887/9","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/9 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/9 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/9 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/9"}}},"commit":{"parents":[{"commit":"9fed7ed5e1f6dd3e589a35e3ee4abecb676f2188","subject":"Miscellaneous (mostly test) cleanup","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/9fed7ed5e1f6dd3e589a35e3ee4abecb676f2188"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-06-11 21:33:39.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-10-26 02:08:29.000000000","tz":-420},"subject":"Use bulk-delete middleware when available","message":"Use bulk-delete middleware when available\n\nWhen issuing `delete` commands that would require three or more\nindividual deletes, check whether the cluster supports bulk deletes\nand use that if it\u0027s available.\n\nAdditionally, a new option is added to the `delete` command:\n\n  * --prefix \u003cprefix\u003e\n\n    Delete all objects that start with \u003cprefix\u003e. This is similar to the\n    --prefix option for the `list` command.\n\nExample:\n\n$ swift delete c --prefix obj_prefix/\n\n    ...will delete from container \"c\" all objects whose name begins with\n    \"obj_prefix/\", such as \"obj_prefix/foo\" and \"obj_prefix/bar\".\n\nChange-Id: I6b9504848d6ef562cf4f570bbcd17db4e3da8264\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/af463043eb04a6ea34d95cffb0bdf847a7fcd02b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/af463043eb04a6ea34d95cffb0bdf847a7fcd02b"}]},"branch":"refs/heads/master"},"2a9def3436c73d81809b580fcfe9323b46ed1227":{"kind":"REWORK","_number":10,"created":"2015-10-26 04:07:22.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/87/190887/10","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/87/190887/10","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/10 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/10 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/10 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/10"}}},"commit":{"parents":[{"commit":"9fed7ed5e1f6dd3e589a35e3ee4abecb676f2188","subject":"Miscellaneous (mostly test) cleanup","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/9fed7ed5e1f6dd3e589a35e3ee4abecb676f2188"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-06-11 21:33:39.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-10-26 04:07:21.000000000","tz":-420},"subject":"Use bulk-delete middleware when available","message":"Use bulk-delete middleware when available\n\nWhen issuing `delete` commands that would require three or more\nindividual deletes, check whether the cluster supports bulk deletes\nand use that if it\u0027s available.\n\nAdditionally, a new option is added to the `delete` command:\n\n  * --prefix \u003cprefix\u003e\n\n    Delete all objects that start with \u003cprefix\u003e. This is similar to the\n    --prefix option for the `list` command.\n\nExample:\n\n$ swift delete c --prefix obj_prefix/\n\n    ...will delete from container \"c\" all objects whose name begins with\n    \"obj_prefix/\", such as \"obj_prefix/foo\" and \"obj_prefix/bar\".\n\nChange-Id: I6b9504848d6ef562cf4f570bbcd17db4e3da8264\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/2a9def3436c73d81809b580fcfe9323b46ed1227"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/2a9def3436c73d81809b580fcfe9323b46ed1227"}]},"branch":"refs/heads/master"},"a0a4c2aacede1a048d51dfc1a6cac28ec86cd25b":{"kind":"REWORK","_number":11,"created":"2015-11-17 21:15:01.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/87/190887/11","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/87/190887/11","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/11 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/11 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/11 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/11"}}},"commit":{"parents":[{"commit":"9fed7ed5e1f6dd3e589a35e3ee4abecb676f2188","subject":"Miscellaneous (mostly test) cleanup","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/9fed7ed5e1f6dd3e589a35e3ee4abecb676f2188"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-06-11 21:33:39.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-11-17 21:14:43.000000000","tz":-480},"subject":"Use bulk-delete middleware when available","message":"Use bulk-delete middleware when available\n\nWhen issuing `delete` commands that would require three or more\nindividual deletes, check whether the cluster supports bulk deletes\nand use that if it\u0027s available.\n\nAdditionally, a new option is added to the `delete` command:\n\n  * --prefix \u003cprefix\u003e\n\n    Delete all objects that start with \u003cprefix\u003e. This is similar to the\n    --prefix option for the `list` command.\n\nExample:\n\n$ swift delete c --prefix obj_prefix/\n\n    ...will delete from container \"c\" all objects whose name begins with\n    \"obj_prefix/\", such as \"obj_prefix/foo\" and \"obj_prefix/bar\".\n\nChange-Id: I6b9504848d6ef562cf4f570bbcd17db4e3da8264\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/a0a4c2aacede1a048d51dfc1a6cac28ec86cd25b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/a0a4c2aacede1a048d51dfc1a6cac28ec86cd25b"}]},"branch":"refs/heads/master"},"702ab1a46cd4ca4f03961ff1cd188606807af19c":{"kind":"REWORK","_number":12,"created":"2016-01-06 00:40:37.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/87/190887/12","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/87/190887/12","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/12 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/12 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/12 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/12"}}},"commit":{"parents":[{"commit":"81003b8d993dc61ef19c6fc4cbe60d9fda76b4d1","subject":"Merge \"Wrap raw iterators to ensure we send entire contents to server\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/81003b8d993dc61ef19c6fc4cbe60d9fda76b4d1"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-06-11 21:33:39.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-01-06 00:39:13.000000000","tz":-480},"subject":"Use bulk-delete middleware when available","message":"Use bulk-delete middleware when available\n\nWhen issuing `delete` commands that would require three or more\nindividual deletes, check whether the cluster supports bulk deletes\nand use that if it\u0027s available.\n\nAdditionally, a new option is added to the `delete` command:\n\n  * --prefix \u003cprefix\u003e\n\n    Delete all objects that start with \u003cprefix\u003e. This is similar to the\n    --prefix option for the `list` command.\n\nExample:\n\n$ swift delete c --prefix obj_prefix/\n\n    ...will delete from container \"c\" all objects whose name begins with\n    \"obj_prefix/\", such as \"obj_prefix/foo\" and \"obj_prefix/bar\".\n\nChange-Id: I6b9504848d6ef562cf4f570bbcd17db4e3da8264\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/702ab1a46cd4ca4f03961ff1cd188606807af19c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/702ab1a46cd4ca4f03961ff1cd188606807af19c"}]},"branch":"refs/heads/master"},"7a1e192803b8f4b739c9c3086bbfdc9a9c8d6753":{"kind":"REWORK","_number":13,"created":"2016-01-12 23:42:09.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/87/190887/13","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/87/190887/13","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/13 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/13 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/13 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/87/190887/13"}}},"commit":{"parents":[{"commit":"6ed6c3343f73e170b259c1dc1956017da2c17620","subject":"Merge \"Retry file uploads via SwiftService\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/6ed6c3343f73e170b259c1dc1956017da2c17620"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2015-06-11 21:33:39.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2016-01-12 23:40:57.000000000","tz":-480},"subject":"Use bulk-delete middleware when available","message":"Use bulk-delete middleware when available\n\nWhen issuing `delete` commands that would require three or more\nindividual deletes, check whether the cluster supports bulk deletes\nand use that if it\u0027s available.\n\nAdditionally, a new option is added to the `delete` command:\n\n  * --prefix \u003cprefix\u003e\n\n    Delete all objects that start with \u003cprefix\u003e. This is similar to the\n    --prefix option for the `list` command.\n\nExample:\n\n$ swift delete c --prefix obj_prefix/\n\n    ...will delete from container \"c\" all objects whose name begins with\n    \"obj_prefix/\", such as \"obj_prefix/foo\" and \"obj_prefix/bar\".\n\nChange-Id: I6b9504848d6ef562cf4f570bbcd17db4e3da8264\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/7a1e192803b8f4b739c9c3086bbfdc9a9c8d6753"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/7a1e192803b8f4b739c9c3086bbfdc9a9c8d6753"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
