)]}'
{"swift/container/backend.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"c59411aa2f18295f4ebd9d5d6fb6799ec80b053f","unresolved":false,"context_lines":[{"line_number":1700,"context_line":"                include_deleted\u003dinclude_deleted, states\u003dstates,"},{"line_number":1701,"context_line":"                exclude_states\u003dexclude_states, include_own\u003dinclude_own,"},{"line_number":1702,"context_line":"                exclude_others\u003dexclude_others)]"},{"line_number":1703,"context_line":"        shard_ranges.sort(key\u003dlambda sr: (sr.upper, sr.state, sr.lower))"},{"line_number":1704,"context_line":"        if includes:"},{"line_number":1705,"context_line":"            shard_range \u003d find_shard_range(includes, shard_ranges)"},{"line_number":1706,"context_line":"            shard_ranges \u003d [shard_range] if shard_range else []"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_8ffcad70","line":1703,"updated":"2018-04-23 23:43:34.000000000","message":"It seems a little weird to prefer the lower state in the event of a tie between upper and lower... I\u0027m guessing the addition of state was to ensure that a SHARDING range shows up after its last sub-shard?\n\nI kinda wish we could just say\n\n key\u003dlambda sr: (sr.upper, -sr.lower, -sr.state)\n\nThat seems like what we\u0027re after, yeah?","commit_id":"8ec521842f096b08add8226eb0b4a0cf9d942abe"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"07a6b7916ff7459b43722bdee3137e5667d7c5ce","unresolved":false,"context_lines":[{"line_number":1700,"context_line":"                include_deleted\u003dinclude_deleted, states\u003dstates,"},{"line_number":1701,"context_line":"                exclude_states\u003dexclude_states, include_own\u003dinclude_own,"},{"line_number":1702,"context_line":"                exclude_others\u003dexclude_others)]"},{"line_number":1703,"context_line":"        shard_ranges.sort(key\u003dlambda sr: (sr.upper, sr.state, sr.lower))"},{"line_number":1704,"context_line":"        if includes:"},{"line_number":1705,"context_line":"            shard_range \u003d find_shard_range(includes, shard_ranges)"},{"line_number":1706,"context_line":"            shard_ranges \u003d [shard_range] if shard_range else []"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_98162c49","line":1703,"in_reply_to":"9f6a8fd7_8ffcad70","updated":"2018-04-24 08:24:29.000000000","message":"+1","commit_id":"8ec521842f096b08add8226eb0b4a0cf9d942abe"}],"test/unit/container/test_backend.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"c59411aa2f18295f4ebd9d5d6fb6799ec80b053f","unresolved":false,"context_lines":[{"line_number":3317,"context_line":"        broker.merge_shard_ranges(shard_ranges)"},{"line_number":3318,"context_line":"        actual \u003d broker.get_shard_ranges()"},{"line_number":3319,"context_line":"        expected \u003d (shard_ranges[:1] + shard_ranges[2:5] + shard_ranges[1:2] +"},{"line_number":3320,"context_line":"                    shard_ranges[5:])"},{"line_number":3321,"context_line":"        self.assertEqual([dict(sr) for sr in expected],"},{"line_number":3322,"context_line":"                         [dict(sr) for sr in actual])"},{"line_number":3323,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_2f31e15a","line":3320,"updated":"2018-04-23 23:43:34.000000000","message":"I\u0027m guessing this was just to make sure that we don\u0027t blindly respect the order in which shard ranges were merged -- would it be better (easier to read) to say\n\n broker.merge_shard_ranges(random.sample(shard_ranges, len(shard_ranges)))\n\nand have the ranges listed in expected order?","commit_id":"8ec521842f096b08add8226eb0b4a0cf9d942abe"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"07a6b7916ff7459b43722bdee3137e5667d7c5ce","unresolved":false,"context_lines":[{"line_number":3317,"context_line":"        broker.merge_shard_ranges(shard_ranges)"},{"line_number":3318,"context_line":"        actual \u003d broker.get_shard_ranges()"},{"line_number":3319,"context_line":"        expected \u003d (shard_ranges[:1] + shard_ranges[2:5] + shard_ranges[1:2] +"},{"line_number":3320,"context_line":"                    shard_ranges[5:])"},{"line_number":3321,"context_line":"        self.assertEqual([dict(sr) for sr in expected],"},{"line_number":3322,"context_line":"                         [dict(sr) for sr in actual])"},{"line_number":3323,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_04ecfc8c","line":3320,"in_reply_to":"9f6a8fd7_2f31e15a","updated":"2018-04-24 08:24:29.000000000","message":"yes, that is nicer, thanks\n\nhttps://review.openstack.org/#/c/563852/1","commit_id":"8ec521842f096b08add8226eb0b4a0cf9d942abe"}]}
