)]}'
{"swift/cli/ringbuilder.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"764b1fa48bcab0d03b7bda2032424657c85337e1","unresolved":false,"context_lines":[{"line_number":820,"context_line":"            print(\u0027NOTE: min_part_hours larger than 255 is not supported, \u0027"},{"line_number":821,"context_line":"                  \u0027please set a smaller value, current is %(min_hours)d\u0027 %"},{"line_number":822,"context_line":"                  {\u0027min_hours\u0027: builder.min_part_hours})"},{"line_number":823,"context_line":"            exit(EXIT_WARNING)"},{"line_number":824,"context_line":""},{"line_number":825,"context_line":"        if builder.min_part_seconds_left \u003e 0 and not options.force:"},{"line_number":826,"context_line":"            print(\u0027No partitions could be reassigned.\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_1f117204","line":823,"updated":"2016-07-21 18:57:15.000000000","message":"I think this validation really belongs in the ring.builder.RingBuilder class instead of in the cli utility","commit_id":"c3cccf7cb744a0a58f83fd23bcd84f47cf09054b"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"31f536c3fca3ed2568b31324ba162a25ed39a474","unresolved":false,"context_lines":[{"line_number":820,"context_line":"            print(\u0027NOTE: min_part_hours larger than 255 is not supported, \u0027"},{"line_number":821,"context_line":"                  \u0027please set a smaller value, current is %(min_hours)d\u0027 %"},{"line_number":822,"context_line":"                  {\u0027min_hours\u0027: builder.min_part_hours})"},{"line_number":823,"context_line":"            exit(EXIT_WARNING)"},{"line_number":824,"context_line":""},{"line_number":825,"context_line":"        if builder.min_part_seconds_left \u003e 0 and not options.force:"},{"line_number":826,"context_line":"            print(\u0027No partitions could be reassigned.\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_faba7109","line":823,"in_reply_to":"dada55a8_17982d69","updated":"2016-07-22 18:47:14.000000000","message":"Yes, that would be much better!","commit_id":"c3cccf7cb744a0a58f83fd23bcd84f47cf09054b"},{"author":{"_account_id":20403,"name":"Cheng Li","email":"shcli@cn.ibm.com","username":"Cheng"},"change_message_id":"12d499765cb3404be64e48b95246dc852bfd7047","unresolved":false,"context_lines":[{"line_number":820,"context_line":"            print(\u0027NOTE: min_part_hours larger than 255 is not supported, \u0027"},{"line_number":821,"context_line":"                  \u0027please set a smaller value, current is %(min_hours)d\u0027 %"},{"line_number":822,"context_line":"                  {\u0027min_hours\u0027: builder.min_part_hours})"},{"line_number":823,"context_line":"            exit(EXIT_WARNING)"},{"line_number":824,"context_line":""},{"line_number":825,"context_line":"        if builder.min_part_seconds_left \u003e 0 and not options.force:"},{"line_number":826,"context_line":"            print(\u0027No partitions could be reassigned.\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_17982d69","line":823,"in_reply_to":"dada55a8_1f117204","updated":"2016-07-22 02:13:05.000000000","message":"I would like to do the validation in RingBuilder.rebalance(), and raise exception if need.\nAnd catch exception here.","commit_id":"c3cccf7cb744a0a58f83fd23bcd84f47cf09054b"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"8e06f1a054a85325066f5427ebd7d84c2289ec4d","unresolved":false,"context_lines":[{"line_number":1148,"context_line":"        \"\"\""},{"line_number":1149,"context_line":"        builder.set_min_part_hours_overstep()"},{"line_number":1150,"context_line":"        builder.save(builder_file)"},{"line_number":1151,"context_line":"        exit(EXIT_SUCCESS)"},{"line_number":1152,"context_line":""},{"line_number":1153,"context_line":"    @staticmethod"},{"line_number":1154,"context_line":"    def set_replicas():"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_1ae21204","line":1151,"updated":"2016-10-11 02:11:22.000000000","message":"I don\u0027t think it\u0027s helpful to expose a new command, I think we should just emit a warning:\n\nWARNING: min_part_hours can\u0027t not be greater than 255, set to \u0027infinity\u0027\n\n... when you create a ring *or* change a ring to have min_part_hours \u003e 0xff\n\nhowever we want to store that is implementation detail - not ux concern.  I think we currently have this behavior and it mostly works as expected.","commit_id":"40f6d0f64e0f6987c0d1ee2a499b481529ca15ef"}],"swift/common/ring/builder.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"d6b1480c75db0cf641baee0798b6a2d946298224","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        self.part_power \u003d part_power"},{"line_number":88,"context_line":"        self.replicas \u003d replicas"},{"line_number":89,"context_line":"        self.min_part_hours \u003d min_part_hours"},{"line_number":90,"context_line":"        self.parts \u003d 2 ** self.part_power"},{"line_number":91,"context_line":"        self.devs \u003d []"},{"line_number":92,"context_line":"        self.devs_changed \u003d False"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_ff44c0b7","line":89,"updated":"2016-07-29 18:57:38.000000000","message":"maybe here just call change_min_part_hours and you get the validation for free?","commit_id":"ed000cf6b8c2a79e48e16a9a86ac33b9fe2b64b5"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"8e06f1a054a85325066f5427ebd7d84c2289ec4d","unresolved":false,"context_lines":[{"line_number":425,"context_line":"        if self.min_part_hours \u003c 0 or self.min_part_hours \u003e 0xff:"},{"line_number":426,"context_line":"            raise exceptions.RingValidationError(\"min_part_hours must be \""},{"line_number":427,"context_line":"                                                 \"non-negative and \u003c\u003d255 (was \""},{"line_number":428,"context_line":"                                                 \"%d)\" % self.min_part_hours)"},{"line_number":429,"context_line":"        # count up the devs, and cache some stuff"},{"line_number":430,"context_line":"        num_devices \u003d 0"},{"line_number":431,"context_line":"        for dev in self._iter_devs():"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_ba5da6ee","line":428,"updated":"2016-10-11 02:11:22.000000000","message":"I don\u0027t see how this check makes sense if set_min_part_hours_overstep is a thing?","commit_id":"40f6d0f64e0f6987c0d1ee2a499b481529ca15ef"}],"test/unit/cli/test_ringbuilder.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"764b1fa48bcab0d03b7bda2032424657c85337e1","unresolved":false,"context_lines":[{"line_number":2086,"context_line":""},{"line_number":2087,"context_line":"    def test_rebalance_warning_with_bad_min_part_hours(self):"},{"line_number":2088,"context_line":"        # min_part_hours should not be larger than 255"},{"line_number":2089,"context_line":"        self.run_srb(\"create\", 8, 3, 256)"},{"line_number":2090,"context_line":"        self.run_srb(\"add\","},{"line_number":2091,"context_line":"                     \"r1z1-10.1.1.1:2345/sda\", 100.0,"},{"line_number":2092,"context_line":"                     \"r1z1-10.1.1.1:2345/sdb\", 100.0,"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_9f456244","line":2089,"updated":"2016-07-21 18:57:15.000000000","message":"it seems like there would be a strong preference to fail here - looking at the unix principle of fail early.","commit_id":"c3cccf7cb744a0a58f83fd23bcd84f47cf09054b"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"764b1fa48bcab0d03b7bda2032424657c85337e1","unresolved":false,"context_lines":[{"line_number":2097,"context_line":"        # set min_part_hours 255 is OK"},{"line_number":2098,"context_line":"        self.run_srb(\"set_min_part_hours\", 255)"},{"line_number":2099,"context_line":"        out, err \u003d self.run_srb(\"rebalance\")"},{"line_number":2100,"context_line":"        self.assertTrue(\"larger than 255 is not supported\" not in out)"},{"line_number":2101,"context_line":"        self.assertTrue(\"Balance is now 0.00\" in out)"},{"line_number":2102,"context_line":""},{"line_number":2103,"context_line":"    def test_cached_dispersion_value(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_5fadaae7","line":2100,"updated":"2016-07-21 18:57:15.000000000","message":"maybe assertFalse or assertNotIn would be better?","commit_id":"c3cccf7cb744a0a58f83fd23bcd84f47cf09054b"},{"author":{"_account_id":20403,"name":"Cheng Li","email":"shcli@cn.ibm.com","username":"Cheng"},"change_message_id":"12d499765cb3404be64e48b95246dc852bfd7047","unresolved":false,"context_lines":[{"line_number":2097,"context_line":"        # set min_part_hours 255 is OK"},{"line_number":2098,"context_line":"        self.run_srb(\"set_min_part_hours\", 255)"},{"line_number":2099,"context_line":"        out, err \u003d self.run_srb(\"rebalance\")"},{"line_number":2100,"context_line":"        self.assertTrue(\"larger than 255 is not supported\" not in out)"},{"line_number":2101,"context_line":"        self.assertTrue(\"Balance is now 0.00\" in out)"},{"line_number":2102,"context_line":""},{"line_number":2103,"context_line":"    def test_cached_dispersion_value(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_d7bcd5dd","line":2100,"in_reply_to":"dada55a8_5fadaae7","updated":"2016-07-22 02:13:05.000000000","message":"good idea","commit_id":"c3cccf7cb744a0a58f83fd23bcd84f47cf09054b"}]}
