)]}'
{"id":"openstack%2Fswift~776410","triplet_id":"openstack%2Fswift~master~I90f3ab7a29b87d0959c94a05c9ee9ad97b60014d","project":"openstack/swift","branch":"master","topic":"p-shard-compact-print","hashtags":[],"change_id":"I90f3ab7a29b87d0959c94a05c9ee9ad97b60014d","subject":"Improve \u0027swift-manage-shard-ranges compact\u0027 output","status":"MERGED","created":"2021-02-18 09:23:36.000000000","updated":"2021-02-22 23:38:55.000000000","submitted":"2021-02-22 23:35:39.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":2,"unresolved_comment_count":1,"has_review_started":true,"submission_id":"776410-p-shard-compact-print","meta_rev_id":"c9a90ab5758d9f35ac2851dad58591f59a6a9e2b","_number":776410,"virtual_id_number":776410,"owner":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2021-02-22 23:35:37.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"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":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"all":[{"value":2,"date":"2021-02-19 05:19:08.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"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":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"all":[{"value":1,"date":"2021-02-22 22:19:43.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2021-02-18 10:07:31.000000000","updated_by":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"reviewer":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"state":"CC"},{"updated":"2021-02-18 12:13:21.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2021-02-19 05:19:08.000000000","updated_by":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"reviewer":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"state":"REVIEWER"}],"messages":[{"id":"d14d83c89ff4896c415a854be590abf79b4255cc","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2021-02-18 09:23:36.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"550cf3fa0898be20af0d406be97e28aecaccb68f","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-02-18 10:07:31.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"c194c97f8d8222d3f16d3f8b9102294906d7c8ae","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2021-02-18 11:20:32.000000000","message":"Patch Set 1:\n\n(1 comment)\n\nBTW, example of old output:\n\n  $ swift-manage-shard-ranges /srv/node3/sdb3/containers/262/291/41a5badaa03d132835d211864d17e291/41a5badaa03d132835d211864d17e291_1613636589.01338.db compact --max-shrinking\u003d2\nLoaded db broker for AUTH_test/container-b69b684e-1353-4125-b42c-682f17d6c95f.\nShard ShardRange\u003c\u0027obj-0003\u0027 to \u0027obj-0005\u0027 as of 1613636589.01160, (2, 0) as of 1613636602.49833, active as of 1613636589.01160\u003e (object count 2) can expand to accept 4 objects from:\n    shard ShardRange\u003cMinBound to \u0027obj-0001\u0027 as of 1613636589.01160, (2, 0) as of 1613636599.09971, active as of 1613636589.01160\u003e (object count 2)\n    shard ShardRange\u003c\u0027obj-0001\u0027 to \u0027obj-0003\u0027 as of 1613636589.01160, (2, 0) as of 1613636599.23316, active as of 1613636589.01160\u003e (object count 2)\nOnce applied to the broker these changes will result in shard range compaction the next time the sharder runs.\nDo you want to apply these changes? [y/N]\n\nwhich is not so bad but imagine it when the bounds are not all the same length.","accounts_in_message":[],"_revision_number":1},{"id":"cee4c3389d3383fbf0d55f8dc97f743d86e50f0a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-18 12:13:21.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1a9805f5b563400290b84952c6f2e964 : SUCCESS in 9m 17s\n- grenade https://zuul.opendev.org/t/openstack/build/f9b84c1aa29a4326b38c147b5eb702f8 : SUCCESS in 1h 00m 22s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/a7a88665604e4adfac624b217e4cfbc2 : SUCCESS in 45m 56s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/c85b7a70c42442e69eb68fe3f2287e01 : SUCCESS in 9m 15s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/6014a719b5b94be99edcaafb3b5ecdde : SUCCESS in 6m 32s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/01854de9cc2849abbc602ef9fbafa662 : SUCCESS in 13m 50s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/b59e2c827e4549519c61feb107f20330 : SUCCESS in 14m 49s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/8925b300f1194a0bbbd4333fda99b78c : SUCCESS in 14m 15s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/7a4e9587b8fd4cd2982e67f3b16c4a67 : SUCCESS in 16m 40s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/988abfd1e8c24f1e96a9d0d5dca0a2bf : SUCCESS in 14m 11s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/b30885a65b524de9ab0c84fced3cf77e : SUCCESS in 20m 05s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/23db80c209d74697ab953b760ce4aec5 : SUCCESS in 16m 59s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/13a41f2f10ef46cdb8500d9dea340025 : SUCCESS in 17m 33s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/a5ae9501d5d442a58e89a3a8d3178bd5 : SUCCESS in 16m 27s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/cf445678a21a483f96e345c5525f49be : SUCCESS in 17m 56s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/fa55ad0fd1ae49809978c683756064ea : SUCCESS in 19m 56s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/b2fd89b11cb94c4fb9a9d1efcb65091a : SUCCESS in 20m 08s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/07050184b920447f97a957c78d766dbb : SUCCESS in 46m 16s\n- swift-probetests-centos-8 https://zuul.opendev.org/t/openstack/build/c56bb2235d8546fcb3c2654f089a08c3 : SUCCESS in 47m 22s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/a9cb9a17382f4d6fb0d5de24ea244aa3 : SUCCESS in 40m 42s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/4286ee4ee32a4ca081c3e3a55d999cc5 : SUCCESS in 33m 49s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/3fb59f45c1d14c1cabb6cbd398932ccf : SUCCESS in 15m 26s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8c2df1bc99d04d14b91823d0a9ef9dff : SUCCESS in 7m 30s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/325031b22baa4eefa771b85a8eb41b43 : FAILURE in 10m 25s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/55e5d442f1a74bedb8c2343bd793cb30 : SUCCESS in 1h 00m 50s","accounts_in_message":[],"_revision_number":1},{"id":"1b81ffe0e70a4af07cb3d3667cb6345f1811a29a","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-02-19 05:19:08.000000000","message":"Patch Set 1: Code-Review+2\n\nYup much better.\n\nOnly not +Aing because of the patches it\u0027s in merge conflict with.","accounts_in_message":[],"_revision_number":1},{"id":"fd4c79d32e00dbcd2bd0fbf0c811c8474705b251","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-02-22 22:19:43.000000000","message":"Patch Set 1: Workflow+1","accounts_in_message":[],"_revision_number":1},{"id":"dad4409d883a4c18b887b3002692eca7a6d8849b","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-22 22:20:00.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"6a9e1b577960a5d871d605e9a5433e282af30e57","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-22 23:35:37.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ddc80c61ca3a43cfbb31cc4e763c9abb : SUCCESS in 9m 06s\n- grenade https://zuul.opendev.org/t/openstack/build/7f51f540ecf8479b8eacd0f0019aeade : SUCCESS in 55m 44s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/7e362af900b741b0b863e1c0dbfaf308 : SUCCESS in 46m 35s\n- swift-upload-image https://zuul.opendev.org/t/openstack/build/bc98d74110574deaae9d92ede8b78105 : SUCCESS in 9m 00s (non-voting)\n- swift-upload-image-py3 https://zuul.opendev.org/t/openstack/build/be4de59d0dab42419c2e3c12b31a5afb : SUCCESS in 6m 58s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/bf09ce29d41f4f6e9c602f61beea3e1e : SUCCESS in 14m 57s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/60e4f0210dfe45b4880b9fff986e14c1 : SUCCESS in 14m 58s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/00142c9c2eea45caa6bee2a18625fc80 : SUCCESS in 15m 15s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/c08ef5e4911d481bae73b2243f4fb95b : SUCCESS in 14m 05s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/1980974ad41c4d39bd293cb30a07ed32 : SUCCESS in 14m 24s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/08d3010ccd964953af5ba3113d191d45 : SUCCESS in 16m 24s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/53791f10774849918761c6aea061d396 : SUCCESS in 16m 57s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/8a6bd179520f4f6588ffcdfb34f62fce : SUCCESS in 18m 25s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/f7952324bd88467cb3bf879a977b0cd5 : SUCCESS in 17m 22s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/e21dc5c48ebb40da98fb74ddfb9e2372 : SUCCESS in 17m 08s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/adb95f0b5bbb4661b2c1a1b0eee5d239 : SUCCESS in 18m 45s\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/89d6d8ec966d46a99cb552d89ba23cf3 : SUCCESS in 1h 02m 54s\n- swift-probetests-centos-8 https://zuul.opendev.org/t/openstack/build/6fa2ed54e6974c308f4d7301ff824574 : SUCCESS in 46m 05s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/ae635aa401dc429683841455e0bcafc7 : SUCCESS in 41m 53s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/b52e52ba91ee4940b398f48ce1751cc7 : SUCCESS in 42m 27s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/fd819ca6c6af4bf3a12ec5c6137a0189 : SUCCESS in 14m 10s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0ab3f9034f4140998cc80d8b79accd48 : SUCCESS in 6m 09s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/9c7a88da2db74fefa5ead5974172ba41 : SUCCESS in 57m 25s","accounts_in_message":[],"_revision_number":1},{"id":"927c130092be9cb6827c9b64557531465562fe8e","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-22 23:35:39.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":1},{"id":"c9a90ab5758d9f35ac2851dad58591f59a6a9e2b","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-22 23:38:55.000000000","message":"Patch Set 1:\n\nBuild succeeded (promote pipeline).\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7382339e2a47419cbeada475ca2ebb49 : SUCCESS in 57s\n- swift-promote-image https://zuul.opendev.org/t/openstack/build/6deabbdfa3ee4f798c3a932aca9d462e : SUCCESS in 46s (non-voting)\n- swift-promote-image-py3 https://zuul.opendev.org/t/openstack/build/5de7d91132014bacb1137ce540fbb7dd : SUCCESS in 44s (non-voting)","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"10b16f97373fb2cc61083a91c7db3a89b4224522","revisions":{"10b16f97373fb2cc61083a91c7db3a89b4224522":{"kind":"REWORK","_number":1,"created":"2021-02-18 09:23:36.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/10/776410/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/10/776410/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/10/776410/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/10/776410/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/10/776410/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/10/776410/1"}}},"commit":{"parents":[{"commit":"6fca356be9cf92525c5133a1e31efb6074387e46","subject":"Merge \"Correct spelling of \u0027compactable\u0027 to \u0027compactible\u0027\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6fca356be9cf92525c5133a1e31efb6074387e46"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2021-02-18 09:14:58.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2021-02-18 09:19:36.000000000","tz":0},"subject":"Improve \u0027swift-manage-shard-ranges compact\u0027 output","message":"Improve \u0027swift-manage-shard-ranges compact\u0027 output\n\nThe output from swift-manage-shard-ranges compact was hard to read,\nparticularly with long lower and upper bounds typically seen in\nproduction.  This patch changes the output, most significantly by\naligning lower and upper bounds at the end of lines and printing\ndonors before acceptors, so that the continuity of shard range bounds\nis easier to see.\n\nExample of new ouput:\n\nDonor shard range(s) with total of 2 objects:\n  objects: 2         lower: \u0027\u0027\n    state: active    upper: \u0027obj-0001\u0027\ncan be compacted into acceptor shard range:\n  objects: 2         lower: \u0027obj-0001\u0027\n    state: active    upper: \u0027obj-0003\u0027\nDonor shard range(s) with total of 2 objects:\n  objects: 2         lower: \u0027obj-0003\u0027\n    state: active    upper: \u0027obj-0005\u0027\ncan be compacted into acceptor shard range:\n  objects: 2         lower: \u0027obj-0005\u0027\n    state: active    upper: \u0027\u0027\n\nChange-Id: I90f3ab7a29b87d0959c94a05c9ee9ad97b60014d\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/10b16f97373fb2cc61083a91c7db3a89b4224522"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/10b16f97373fb2cc61083a91c7db3a89b4224522"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"status":"CLOSED","labels":[{"label":"Verified","status":"OK","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"OK","applied_by":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"}},{"label":"Workflow","status":"OK","applied_by":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"}}]}],"submit_requirements":[{"name":"Verified","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Verified\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}},{"name":"Workflow","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Workflow\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}},{"name":"Code-Review","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Code-Review\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}}]}
