)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"880bdafe78efed1e7a550370de9717144c209122","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"... and a bit more context in the dispersion report"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Id030123153ea746671a8f1ca306d4b86e903fa22"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a961159_39b77dd9","line":11,"updated":"2015-01-09 01:15:49.000000000","message":"This could do with a little more information, something like:\n\n  Add some input options for set_overload\n\n  You can now:\n    - Increment, decrement or multiply the currect overload factor by\n      the given input if you preceed the real value with +, - or *.\n    - Provide input as a precent by suffixing the real value with %.\n\n  Or you can combine both options\n\n    swift-ring-builder \u003cbuilder_file\u003e set_overload *90%\n\n  Which will reduce the overload factor to 90% of it\u0027s current value.\n  Or even:\n\n    swift-ring-builder \u003cbuilder_file\u003e set_overload -10%\n\n  Which will remove 10 points from the current value.\n\n  Other changes were also make to now display the overload as a\n  percentage\n\n  Change-Id: Id030123153ea746671a8f1ca306d4b86e903fa22","commit_id":"e813c7f3e8e5a1113c85c1e0cc8aeb304aebc52f"}],"swift/cli/ringbuilder.py":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"38c6376c12fb91701100ed44fa0fd870b26e9940","unresolved":false,"context_lines":[{"line_number":963,"context_line":""},{"line_number":964,"context_line":"        if new_overload \u003c 0:"},{"line_number":965,"context_line":"            print \"Overload must be non-negative.\""},{"line_number":966,"context_line":"            exit(EXIT_ERROR)"},{"line_number":967,"context_line":""},{"line_number":968,"context_line":"        status \u003d EXIT_SUCCESS"},{"line_number":969,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_9e0f77df","line":966,"updated":"2015-01-09 00:14:30.000000000","message":"With all this new +,- or * there maybe chances that someone could get the number to \u003c 0 even if it\u0027s by only a few decimal points, maybe we should:\n\n  new_overload \u003d max(new_overload, 0)\n\nThat way we don\u0027t need this error checking anymore and just means 0 is as far as you can reduce it.","commit_id":"6c90d47eed21d19ef96cbe4e5dacb72cb2dec834"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"db944e8ec5d60c44262d39a8a22c50b654dffe76","unresolved":false,"context_lines":[{"line_number":963,"context_line":""},{"line_number":964,"context_line":"        if new_overload \u003c 0:"},{"line_number":965,"context_line":"            print \"Overload must be non-negative.\""},{"line_number":966,"context_line":"            exit(EXIT_ERROR)"},{"line_number":967,"context_line":""},{"line_number":968,"context_line":"        status \u003d EXIT_SUCCESS"},{"line_number":969,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_be543354","line":966,"in_reply_to":"3a961159_9e0f77df","updated":"2015-01-09 00:25:08.000000000","message":"oh yeah, that\u0027s a good idea.","commit_id":"6c90d47eed21d19ef96cbe4e5dacb72cb2dec834"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"db944e8ec5d60c44262d39a8a22c50b654dffe76","unresolved":false,"context_lines":[{"line_number":969,"context_line":""},{"line_number":970,"context_line":"        if new_overload \u003e 1:"},{"line_number":971,"context_line":"            print \"!?! Warning overload is greater than 100% !?!\""},{"line_number":972,"context_line":"            status \u003d EXIT_WARNING"},{"line_number":973,"context_line":""},{"line_number":974,"context_line":"        builder.set_overload(new_overload)"},{"line_number":975,"context_line":"        print \u0027The overload factor is now %0.2f%% (%.6f)\u0027 % ("}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_de4f3fbc","line":972,"updated":"2015-01-09 00:25:08.000000000","message":"This one is for you @christian!","commit_id":"6c90d47eed21d19ef96cbe4e5dacb72cb2dec834"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"9813123f97e5ce378159b7039abc6e1890f5da8f","unresolved":false,"context_lines":[{"line_number":254,"context_line":"                  balance, builder.dispersion)"},{"line_number":255,"context_line":"        print \u0027The minimum number of hours before a partition can be \u0027 \\"},{"line_number":256,"context_line":"              \u0027reassigned is %s\u0027 % builder.min_part_hours"},{"line_number":257,"context_line":"        print \u0027The overload factor is %0.2f%% (%.6f)\u0027 % ("},{"line_number":258,"context_line":"            builder.overload * 100, builder.overload)"},{"line_number":259,"context_line":"        if builder.devs:"},{"line_number":260,"context_line":"            print \u0027Devices:    id  region  zone      ip address  port  \u0027 \\"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa81d914_fe3114a3","line":257,"updated":"2015-01-28 18:59:11.000000000","message":"I see no point in printing both X*100 and X.","commit_id":"013923e2d182330aa48e59abcdb225d576310960"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"9813123f97e5ce378159b7039abc6e1890f5da8f","unresolved":false,"context_lines":[{"line_number":741,"context_line":"            search_filter \u003d None"},{"line_number":742,"context_line":"        report \u003d dispersion_report(builder, search_filter\u003dsearch_filter,"},{"line_number":743,"context_line":"                                   verbose\u003doptions.verbose)"},{"line_number":744,"context_line":"        print \u0027Dispersion is %.06f, Balance is %.06f, Overload is %.06f\u0027 % ("},{"line_number":745,"context_line":"            builder.dispersion, builder.get_balance(), builder.overload * 100)"},{"line_number":746,"context_line":"        if report[\u0027worst_tier\u0027]:"},{"line_number":747,"context_line":"            status \u003d EXIT_WARNING"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa81d914_7ef604d9","line":744,"updated":"2015-01-28 18:59:11.000000000","message":"Why not %.02f for percents like the above? Also forgot the %%.","commit_id":"013923e2d182330aa48e59abcdb225d576310960"}]}
