)]}'
{"id":"openstack%2Fpython-swiftclient~454849","triplet_id":"openstack%2Fpython-swiftclient~master~I3c18f89bac1170dc62187114ef06dbe721afcc2e","project":"openstack/python-swiftclient","branch":"master","topic":"bug/1679851","hashtags":[],"change_id":"I3c18f89bac1170dc62187114ef06dbe721afcc2e","subject":"respect bulk delete page size and fix logic error","status":"MERGED","created":"2017-04-07 18:48:25.000000000","updated":"2017-05-02 19:47:27.000000000","submitted":"2017-05-02 19:47:27.000000000","submitter":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"total_comment_count":7,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"7a1b0b35ede59d951427e9bdba58d3f0a680b55d","_number":454849,"virtual_id_number":454849,"owner":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":2,"date":"2017-05-02 19:47:27.000000000","post_submit":true,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"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":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"all":[{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":2,"date":"2017-05-02 17:42:15.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"value":2,"date":"2017-04-24 16:15:41.000000000","permitted_voting_range":{"min":2,"max":2},"_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":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"all":[{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":1,"date":"2017-05-02 17:42:15.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"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":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2017-04-24 16:15:41.000000000","updated_by":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"reviewer":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"state":"REVIEWER"},{"updated":"2017-05-02 19:47:27.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"386eb5469b6446c6f10aecbd5274a789abb2cbac","author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"date":"2017-04-07 18:48:25.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"7a1e21c367c8c3489c8983cd9c917c1ce2a0bd6a","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-04-07 19:56:02.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-swiftclient-docs-ubuntu-xenial http://docs-draft.openstack.org/49/454849/1/check/gate-python-swiftclient-docs-ubuntu-xenial/7fa7f55//doc/build/html/ : SUCCESS in 1m 41s\n- gate-python-swiftclient-pep8-ubuntu-xenial http://logs.openstack.org/49/454849/1/check/gate-python-swiftclient-pep8-ubuntu-xenial/3d8b6c7/ : SUCCESS in 1m 47s\n- gate-python-swiftclient-python27-ubuntu-xenial http://logs.openstack.org/49/454849/1/check/gate-python-swiftclient-python27-ubuntu-xenial/d772cd9/ : SUCCESS in 1m 16s\n- gate-python-swiftclient-python35 http://logs.openstack.org/49/454849/1/check/gate-python-swiftclient-python35/c10b396/ : SUCCESS in 1m 34s\n- gate-python-swiftclient-pypy http://logs.openstack.org/49/454849/1/check/gate-python-swiftclient-pypy/e856d37/ : SUCCESS in 1m 34s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient-ubuntu-xenial http://logs.openstack.org/49/454849/1/check/gate-tempest-dsvm-neutron-src-python-swiftclient-ubuntu-xenial/24a1060/ : SUCCESS in 1h 06m 06s\n- gate-swift-dsvm-functional-ubuntu-xenial http://logs.openstack.org/49/454849/1/check/gate-swift-dsvm-functional-ubuntu-xenial/ecb6d3e/ : SUCCESS in 34m 23s\n- gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/49/454849/1/check/gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/e1f1ef7/ : SUCCESS in 36m 04s (non-voting)\n- gate-swiftclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/49/454849/1/check/gate-swiftclient-dsvm-functional-ubuntu-xenial/0aed956/ : SUCCESS in 25m 12s\n- gate-swiftclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/49/454849/1/check/gate-swiftclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/072fa81/ : SUCCESS in 24m 21s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"1af8408ee2db69fb4b42cae76ec07baba037cc44","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2017-04-10 21:52:34.000000000","message":"Patch Set 1: Code-Review-1\n\n(3 comments)","accounts_in_message":[],"_revision_number":1},{"id":"88a655dbf9ba6b3bcc4005bc5d05df200e1dd4a0","author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"date":"2017-04-17 03:11:35.000000000","message":"Patch Set 1: Workflow-1\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"740654adb8534a763fe09433e8c8b2153ea19fa9","author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"date":"2017-04-17 20:45:06.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"39e20c90a21282e54b5d6559f32cbc8850a236cf","author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"date":"2017-04-17 20:47:45.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"102d13e38b4bcfb3aea942fc944b5f0a93f2f003","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-04-17 21:50:52.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-swiftclient-docs-ubuntu-xenial http://docs-draft.openstack.org/49/454849/2/check/gate-python-swiftclient-docs-ubuntu-xenial/904ad3a//doc/build/html/ : SUCCESS in 57s\n- gate-python-swiftclient-pep8-ubuntu-xenial http://logs.openstack.org/49/454849/2/check/gate-python-swiftclient-pep8-ubuntu-xenial/3caf716/ : SUCCESS in 1m 02s\n- gate-python-swiftclient-python27-ubuntu-xenial http://logs.openstack.org/49/454849/2/check/gate-python-swiftclient-python27-ubuntu-xenial/f850738/ : SUCCESS in 56s\n- gate-python-swiftclient-python35 http://logs.openstack.org/49/454849/2/check/gate-python-swiftclient-python35/b3aea72/ : SUCCESS in 2m 14s\n- gate-python-swiftclient-pypy http://logs.openstack.org/49/454849/2/check/gate-python-swiftclient-pypy/a8ffa4c/ : SUCCESS in 2m 04s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient-ubuntu-xenial http://logs.openstack.org/49/454849/2/check/gate-tempest-dsvm-neutron-src-python-swiftclient-ubuntu-xenial/e48a22d/ : SUCCESS in 1h 04m 41s\n- gate-swift-dsvm-functional-ubuntu-xenial http://logs.openstack.org/49/454849/2/check/gate-swift-dsvm-functional-ubuntu-xenial/19590c1/ : SUCCESS in 20m 33s\n- gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/49/454849/2/check/gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/b26cf9b/ : SUCCESS in 19m 54s (non-voting)\n- gate-swiftclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/49/454849/2/check/gate-swiftclient-dsvm-functional-ubuntu-xenial/aa8c1a9/ : SUCCESS in 17m 28s\n- gate-swiftclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/49/454849/2/check/gate-swiftclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/e39b315/ : SUCCESS in 17m 46s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"c35241540212c1368e00b394813c20256262b306","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2017-04-17 23:43:16.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"8d7fb48df60adc1f42067273bad2394338a972fd","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2017-04-20 16:47:16.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"c3dabd1d3c084e657b170efd8d0568b24d3dbf08","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-04-20 18:06:23.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-swiftclient-docs-ubuntu-xenial http://docs-draft.openstack.org/49/454849/3/check/gate-python-swiftclient-docs-ubuntu-xenial/da3230b//doc/build/html/ : SUCCESS in 2m 04s\n- gate-python-swiftclient-pep8-ubuntu-xenial http://logs.openstack.org/49/454849/3/check/gate-python-swiftclient-pep8-ubuntu-xenial/42acb6d/ : SUCCESS in 1m 16s\n- gate-python-swiftclient-python27-ubuntu-xenial http://logs.openstack.org/49/454849/3/check/gate-python-swiftclient-python27-ubuntu-xenial/85d3a5b/ : SUCCESS in 2m 08s\n- gate-python-swiftclient-python35 http://logs.openstack.org/49/454849/3/check/gate-python-swiftclient-python35/1429bf5/ : SUCCESS in 1m 53s\n- gate-python-swiftclient-pypy http://logs.openstack.org/49/454849/3/check/gate-python-swiftclient-pypy/d72175d/ : SUCCESS in 2m 44s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-swiftclient-ubuntu-xenial http://logs.openstack.org/49/454849/3/check/gate-tempest-dsvm-neutron-src-python-swiftclient-ubuntu-xenial/34c3c34/ : SUCCESS in 1h 15m 23s\n- gate-swift-dsvm-functional-ubuntu-xenial http://logs.openstack.org/49/454849/3/check/gate-swift-dsvm-functional-ubuntu-xenial/606e13a/ : SUCCESS in 18m 12s\n- gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/49/454849/3/check/gate-swift-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/6cc2722/ : SUCCESS in 20m 22s (non-voting)\n- gate-swiftclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/49/454849/3/check/gate-swiftclient-dsvm-functional-ubuntu-xenial/a84c66c/ : SUCCESS in 16m 00s\n- gate-swiftclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/49/454849/3/check/gate-swiftclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/dc60fda/ : SUCCESS in 17m 33s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"8f11a13dc4f1f38e8a782e633131c808d30d9649","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2017-04-24 16:15:41.000000000","message":"Patch Set 3: Code-Review+2","accounts_in_message":[],"_revision_number":3},{"id":"4e065f4e1fb50f785cdb61f4ff2e323841fd6122","author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"date":"2017-05-02 17:42:15.000000000","message":"Patch Set 3: Code-Review+2 Workflow+1\n\nTim\u0027s updates lgtm","accounts_in_message":[],"_revision_number":3},{"id":"b9cf1654f440d4f4d759ddd62f34e7ce54f23354","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-05-02 17:42:25.000000000","message":"Patch Set 3: -Verified\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":3},{"id":"a3e54cf271bb5bbe5c81c6bffc24acc64f3434cc","date":"2017-05-02 19:47:27.000000000","message":"Change has been successfully merged into the git repository by Jenkins","accounts_in_message":[],"_revision_number":3},{"id":"7344420e16cef45a3c6fa84a129bf1c07ddefb64","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-05-02 19:47:27.000000000","message":"Patch Set 3: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- gate-python-swiftclient-docs-ubuntu-xenial http://docs-draft.openstack.org/49/454849/3/gate/gate-python-swiftclient-docs-ubuntu-xenial/95240de//doc/build/html/ : SUCCESS in 2m 12s\n- gate-python-swiftclient-pep8-ubuntu-xenial http://logs.openstack.org/49/454849/3/gate/gate-python-swiftclient-pep8-ubuntu-xenial/df2beb7/ : SUCCESS in 1m 06s\n- gate-python-swiftclient-python27-ubuntu-xenial http://logs.openstack.org/49/454849/3/gate/gate-python-swiftclient-python27-ubuntu-xenial/79c9888/ : SUCCESS in 1m 26s\n- gate-python-swiftclient-python35 http://logs.openstack.org/49/454849/3/gate/gate-python-swiftclient-python35/0f8ed8e/ : SUCCESS in 57s\n- gate-tempest-dsvm-neutron-src-python-swiftclient-ubuntu-xenial http://logs.openstack.org/49/454849/3/gate/gate-tempest-dsvm-neutron-src-python-swiftclient-ubuntu-xenial/8eb199a/ : SUCCESS in 1h 07m 11s\n- gate-swift-dsvm-functional-ubuntu-xenial http://logs.openstack.org/49/454849/3/gate/gate-swift-dsvm-functional-ubuntu-xenial/b2e92d8/ : SUCCESS in 34m 07s\n- gate-swiftclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/49/454849/3/gate/gate-swiftclient-dsvm-functional-ubuntu-xenial/aee3154/ : SUCCESS in 23m 55s","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"0cc4d8af18157000d4d5d1205700d6494c5935ce","revisions":{"169d57f0abe256e5b9b0a02cbfcc78de1e6559d7":{"kind":"REWORK","_number":1,"created":"2017-04-07 18:48:25.000000000","uploader":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"ref":"refs/changes/49/454849/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/49/454849/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/49/454849/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/49/454849/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/49/454849/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/49/454849/1"}}},"commit":{"parents":[{"commit":"2710ff255b5d3954eebdf469587bf73bbfd48431","subject":"Fix some reST field lists in docstrings","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/2710ff255b5d3954eebdf469587bf73bbfd48431"}]}],"author":{"name":"John Dickinson","email":"me@not.mn","date":"2017-04-04 22:20:30.000000000","tz":-420},"committer":{"name":"John Dickinson","email":"me@not.mn","date":"2017-04-07 18:48:16.000000000","tz":-420},"subject":"respect bulk delete page size and fix logic error","message":"respect bulk delete page size and fix logic error\n\nPreviously, using SwiftService to delete \"many\" objects would use\nbulk delete if available, but it would not respect the bulk delete\npage size. If the number of objects to delete exceeded the bulk delete\npage size, SwiftService would ignore the error and nothing would be\ndeleted.\n\nThis patch changes _should_bulk_delete() to return the bulk delete\npage size and appropriately fragments the DELETE requests if the\nrequested number of objects to delete exceeds the returned page size.\n\nFixed the logic in _should_bulk_delete() so that if the object list\nis exactly 2x the thread count, it will not bulk delete. This is the\nnatural conclusion following the logic that existed previously: if\nthe delete request can be satisfied by every worker thread doing one\nor two tasks, don\u0027t bulk delete. But if it requires a worker thread\nto do three or more tasks, do a bulk delete instead. Previously, the\nlogic would mean that if every worker thread did exactly two tasks, it\nwould bulk delete. This patch changes a \"\u003c\" to a \"\u003c\u003d\".\n\nCloses-Bug: 1679851\nChange-Id: I3c18f89bac1170dc62187114ef06dbe721afcc2e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/169d57f0abe256e5b9b0a02cbfcc78de1e6559d7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/169d57f0abe256e5b9b0a02cbfcc78de1e6559d7"}]},"branch":"refs/heads/master"},"e2033c998442fe4d470b51170f4f5ca5d99d5036":{"kind":"REWORK","_number":2,"created":"2017-04-17 20:45:06.000000000","uploader":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"ref":"refs/changes/49/454849/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/49/454849/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/49/454849/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/49/454849/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/49/454849/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/49/454849/2"}}},"commit":{"parents":[{"commit":"058fb0323f9bc579a891ad48dcff80a7eda4f8ac","subject":"Optimize the link address","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/058fb0323f9bc579a891ad48dcff80a7eda4f8ac"}]}],"author":{"name":"John Dickinson","email":"me@not.mn","date":"2017-04-04 22:20:30.000000000","tz":-420},"committer":{"name":"John Dickinson","email":"me@not.mn","date":"2017-04-17 16:56:33.000000000","tz":-420},"subject":"respect bulk delete page size and fix logic error","message":"respect bulk delete page size and fix logic error\n\nPreviously, using SwiftService to delete \"many\" objects would use\nbulk delete if available, but it would not respect the bulk delete\npage size. If the number of objects to delete exceeded the bulk delete\npage size, SwiftService would ignore the error and nothing would be\ndeleted.\n\nThis patch changes _should_bulk_delete() to return the bulk delete\npage size and appropriately fragments the DELETE requests if the\nrequested number of objects to delete exceeds the returned page size.\n\nFixed the logic in _should_bulk_delete() so that if the object list\nis exactly 2x the thread count, it will not bulk delete. This is the\nnatural conclusion following the logic that existed previously: if\nthe delete request can be satisfied by every worker thread doing one\nor two tasks, don\u0027t bulk delete. But if it requires a worker thread\nto do three or more tasks, do a bulk delete instead. Previously, the\nlogic would mean that if every worker thread did exactly two tasks, it\nwould bulk delete. This patch changes a \"\u003c\" to a \"\u003c\u003d\".\n\nCloses-Bug: 1679851\nChange-Id: I3c18f89bac1170dc62187114ef06dbe721afcc2e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/e2033c998442fe4d470b51170f4f5ca5d99d5036"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/e2033c998442fe4d470b51170f4f5ca5d99d5036"}]},"branch":"refs/heads/master"},"0cc4d8af18157000d4d5d1205700d6494c5935ce":{"kind":"REWORK","_number":3,"created":"2017-04-20 16:47:16.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/49/454849/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/49/454849/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/49/454849/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/49/454849/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/49/454849/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/49/454849/3"}}},"commit":{"parents":[{"commit":"058fb0323f9bc579a891ad48dcff80a7eda4f8ac","subject":"Optimize the link address","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/058fb0323f9bc579a891ad48dcff80a7eda4f8ac"}]}],"author":{"name":"John Dickinson","email":"me@not.mn","date":"2017-04-04 22:20:30.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2017-04-20 16:41:53.000000000","tz":-420},"subject":"respect bulk delete page size and fix logic error","message":"respect bulk delete page size and fix logic error\n\nPreviously, using SwiftService to delete \"many\" objects would use\nbulk delete if available, but it would not respect the bulk delete\npage size. If the number of objects to delete exceeded the bulk delete\npage size, SwiftService would ignore the error and nothing would be\ndeleted.\n\nThis patch changes _should_bulk_delete() to be _bulk_delete_page_size();\ninstead of returning a simple True/False, it returns the page size for\nthe bulk deleter, or 1 if objects should be deleted one at a time.\nDelete SDK calls are then spread across multiple bulk DELETEs if the\nrequested number of objects to delete exceeds the returned page size.\n\nFixed the logic in _should_bulk_delete() so that if the object list\nis exactly 2x the thread count, it will not bulk delete. This is the\nnatural conclusion following the logic that existed previously: if\nthe delete request can be satisfied by every worker thread doing one\nor two tasks, don\u0027t bulk delete. But if it requires a worker thread\nto do three or more tasks, do a bulk delete instead. Previously, the\nlogic would mean that if every worker thread did exactly two tasks, it\nwould bulk delete. This patch changes a \"\u003c\" to a \"\u003c\u003d\".\n\nCloses-Bug: 1679851\nChange-Id: I3c18f89bac1170dc62187114ef06dbe721afcc2e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/0cc4d8af18157000d4d5d1205700d6494c5935ce"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/0cc4d8af18157000d4d5d1205700d6494c5935ce"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
