)]}'
{"swift/cli/manage_shard_ranges.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b012d75ec74fd78f8ece946343d75742ce05ad25","unresolved":false,"context_lines":[{"line_number":497,"context_line":"    show_parser.add_argument("},{"line_number":498,"context_line":"        \u0027--shard_threshold\u0027, \u0027-t\u0027, type\u003dint,"},{"line_number":499,"context_line":"        default\u003dDEFAULT_SHARD_CONTAINER_THRESHOLD,"},{"line_number":500,"context_line":"        help\u003d\"Set a different shard_threshold, this effects weight calculations\""},{"line_number":501,"context_line":"    )"},{"line_number":502,"context_line":"    show_parser.set_defaults(func\u003dshow_shard_ranges)"},{"line_number":503,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_1da5fc47","line":500,"updated":"2020-09-03 01:50:22.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"fddc2f3cc289f7a02bdda0d69606e47c7ff3248a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b012d75ec74fd78f8ece946343d75742ce05ad25","unresolved":false,"context_lines":[{"line_number":502,"context_line":"    show_parser.set_defaults(func\u003dshow_shard_ranges)"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":""},{"line_number":505,"context_line":"    # info"},{"line_number":506,"context_line":"    info_parser \u003d subparsers.add_parser("},{"line_number":507,"context_line":"        \u0027info\u0027, help\u003d\u0027Print container db info\u0027)"},{"line_number":508,"context_line":"    info_parser.set_defaults(func\u003ddb_info)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_7d619811","line":505,"updated":"2020-09-03 01:50:22.000000000","message":"pep8: E303 too many blank lines (2)","commit_id":"fddc2f3cc289f7a02bdda0d69606e47c7ff3248a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"d816a1b559341d8d49176d377bf435446ee11420","unresolved":false,"context_lines":[{"line_number":497,"context_line":"    show_parser.add_argument("},{"line_number":498,"context_line":"        \u0027--shard_threshold\u0027, \u0027-t\u0027, type\u003dint,"},{"line_number":499,"context_line":"        default\u003dDEFAULT_SHARD_CONTAINER_THRESHOLD,"},{"line_number":500,"context_line":"        help\u003d\"Set a different shard_threshold, this effects weight calculations\""},{"line_number":501,"context_line":"    )"},{"line_number":502,"context_line":"    show_parser.set_defaults(func\u003dshow_shard_ranges)"},{"line_number":503,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_5860d50d","line":500,"updated":"2020-10-09 06:17:09.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"a86f65a76ccedc80f6189c08e3a8c94e59d12fae"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"d816a1b559341d8d49176d377bf435446ee11420","unresolved":false,"context_lines":[{"line_number":502,"context_line":"    show_parser.set_defaults(func\u003dshow_shard_ranges)"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":""},{"line_number":505,"context_line":"    # info"},{"line_number":506,"context_line":"    info_parser \u003d subparsers.add_parser("},{"line_number":507,"context_line":"        \u0027info\u0027, help\u003d\u0027Print container db info\u0027)"},{"line_number":508,"context_line":"    info_parser.set_defaults(func\u003ddb_info)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_3865211e","line":505,"updated":"2020-10-09 06:17:09.000000000","message":"pep8: E303 too many blank lines (2)","commit_id":"a86f65a76ccedc80f6189c08e3a8c94e59d12fae"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7949b9a4a6fc267bf9ba60ce93246e64ad16222c","unresolved":false,"context_lines":[{"line_number":497,"context_line":"    show_parser.add_argument("},{"line_number":498,"context_line":"        \u0027--shard_threshold\u0027, \u0027-t\u0027, type\u003dint,"},{"line_number":499,"context_line":"        default\u003dDEFAULT_SHARD_CONTAINER_THRESHOLD,"},{"line_number":500,"context_line":"        help\u003d\"Set a different shard_threshold, this effects weight calculations\""},{"line_number":501,"context_line":"    )"},{"line_number":502,"context_line":"    show_parser.set_defaults(func\u003dshow_shard_ranges)"},{"line_number":503,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_30234cc0","line":500,"updated":"2020-10-13 05:16:40.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"2fbc1b4249c0ea7c5c5083bf1964765436c813a5"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7949b9a4a6fc267bf9ba60ce93246e64ad16222c","unresolved":false,"context_lines":[{"line_number":502,"context_line":"    show_parser.set_defaults(func\u003dshow_shard_ranges)"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":""},{"line_number":505,"context_line":"    # info"},{"line_number":506,"context_line":"    info_parser \u003d subparsers.add_parser("},{"line_number":507,"context_line":"        \u0027info\u0027, help\u003d\u0027Print container db info\u0027)"},{"line_number":508,"context_line":"    info_parser.set_defaults(func\u003ddb_info)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_101e0873","line":505,"updated":"2020-10-13 05:16:40.000000000","message":"pep8: E303 too many blank lines (2)","commit_id":"2fbc1b4249c0ea7c5c5083bf1964765436c813a5"}],"swift/container/sharder.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b012d75ec74fd78f8ece946343d75742ce05ad25","unresolved":false,"context_lines":[{"line_number":1771,"context_line":"        for sr in self.ranges:"},{"line_number":1772,"context_line":"            self.lowers[sr.lower_str].append(sr)"},{"line_number":1773,"context_line":"            self.uppers[sr.upper_str].append(sr)"},{"line_number":1774,"context_line":"            if len(self.lowers[sr.lower_str]) \u003e 1 or len(self.uppers[sr.upper_str]) \u003e 1:"},{"line_number":1775,"context_line":"                overlaps \u003d True"},{"line_number":1776,"context_line":""},{"line_number":1777,"context_line":"        # Quick check for gaps"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_5dbf745f","line":1774,"updated":"2020-09-03 01:50:22.000000000","message":"pep8: E501 line too long (88 \u003e 79 characters)","commit_id":"fddc2f3cc289f7a02bdda0d69606e47c7ff3248a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b012d75ec74fd78f8ece946343d75742ce05ad25","unresolved":false,"context_lines":[{"line_number":1786,"context_line":"        self.walk_range(\u0027\u0027, ranges\u003dranges_left)"},{"line_number":1787,"context_line":"        while ranges_left:"},{"line_number":1788,"context_line":"            ranges_left.sort()"},{"line_number":1789,"context_line":"            self.walk_range(ranges_left[0].lower, ranges\u003dranges_left, complete\u003dFalse)"},{"line_number":1790,"context_line":"        self._scanned \u003d True"},{"line_number":1791,"context_line":""},{"line_number":1792,"context_line":"    def _ranges_to_remove(self, good_path):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_bdb69089","line":1789,"updated":"2020-09-03 01:50:22.000000000","message":"pep8: E501 line too long (85 \u003e 79 characters)","commit_id":"fddc2f3cc289f7a02bdda0d69606e47c7ff3248a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b012d75ec74fd78f8ece946343d75742ce05ad25","unresolved":false,"context_lines":[{"line_number":1816,"context_line":"        #   weight \u003d\u003d object_count / shard_threshold"},{"line_number":1817,"context_line":"        #      Which should give us close to a percentage \"full\" anything over"},{"line_number":1818,"context_line":"        #      1 really needs to shard."},{"line_number":1819,"context_line":"        #   But, what if something has already sharded, or has just shrunk, then"},{"line_number":1820,"context_line":"        #   we don\u0027t want to pick that complete path, otherwise we need to shard"},{"line_number":1821,"context_line":"        #   or shrink again. So if it\u0027s \u003e shard_threshold or smaller then shrink"},{"line_number":1822,"context_line":"        #   size, we\u0027ll negate the sign."}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_9db90c7b","line":1819,"updated":"2020-09-03 01:50:22.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"fddc2f3cc289f7a02bdda0d69606e47c7ff3248a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b012d75ec74fd78f8ece946343d75742ce05ad25","unresolved":false,"context_lines":[{"line_number":1817,"context_line":"        #      Which should give us close to a percentage \"full\" anything over"},{"line_number":1818,"context_line":"        #      1 really needs to shard."},{"line_number":1819,"context_line":"        #   But, what if something has already sharded, or has just shrunk, then"},{"line_number":1820,"context_line":"        #   we don\u0027t want to pick that complete path, otherwise we need to shard"},{"line_number":1821,"context_line":"        #   or shrink again. So if it\u0027s \u003e shard_threshold or smaller then shrink"},{"line_number":1822,"context_line":"        #   size, we\u0027ll negate the sign."},{"line_number":1823,"context_line":"        #"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_fdaf6828","line":1820,"updated":"2020-09-03 01:50:22.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"fddc2f3cc289f7a02bdda0d69606e47c7ff3248a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b012d75ec74fd78f8ece946343d75742ce05ad25","unresolved":false,"context_lines":[{"line_number":1818,"context_line":"        #      1 really needs to shard."},{"line_number":1819,"context_line":"        #   But, what if something has already sharded, or has just shrunk, then"},{"line_number":1820,"context_line":"        #   we don\u0027t want to pick that complete path, otherwise we need to shard"},{"line_number":1821,"context_line":"        #   or shrink again. So if it\u0027s \u003e shard_threshold or smaller then shrink"},{"line_number":1822,"context_line":"        #   size, we\u0027ll negate the sign."},{"line_number":1823,"context_line":"        #"},{"line_number":1824,"context_line":"        # We do this because the we want to pick the path with the biggest"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_ddaa6418","line":1821,"updated":"2020-09-03 01:50:22.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"fddc2f3cc289f7a02bdda0d69606e47c7ff3248a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b012d75ec74fd78f8ece946343d75742ce05ad25","unresolved":false,"context_lines":[{"line_number":1866,"context_line":"            return None"},{"line_number":1867,"context_line":""},{"line_number":1868,"context_line":"        # When finding the best fragment path, let\u0027s make it simple, we want to"},{"line_number":1869,"context_line":"        # build a complete path by inserting a new shard range. So the best path"},{"line_number":1870,"context_line":"        # is a shard range that will fill the smallest gap."},{"line_number":1871,"context_line":""},{"line_number":1872,"context_line":"        # So let\u0027s make an assumption that we want to find the smallest gap"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_3daa8018","line":1869,"updated":"2020-09-03 01:50:22.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"fddc2f3cc289f7a02bdda0d69606e47c7ff3248a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"d816a1b559341d8d49176d377bf435446ee11420","unresolved":false,"context_lines":[{"line_number":1771,"context_line":"        for sr in self.ranges:"},{"line_number":1772,"context_line":"            self.lowers[sr.lower_str].append(sr)"},{"line_number":1773,"context_line":"            self.uppers[sr.upper_str].append(sr)"},{"line_number":1774,"context_line":"            if len(self.lowers[sr.lower_str]) \u003e 1 or len(self.uppers[sr.upper_str]) \u003e 1:"},{"line_number":1775,"context_line":"                overlaps \u003d True"},{"line_number":1776,"context_line":""},{"line_number":1777,"context_line":"        # Quick check for gaps"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_9866ed27","line":1774,"updated":"2020-10-09 06:17:09.000000000","message":"pep8: E501 line too long (88 \u003e 79 characters)","commit_id":"a86f65a76ccedc80f6189c08e3a8c94e59d12fae"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"d816a1b559341d8d49176d377bf435446ee11420","unresolved":false,"context_lines":[{"line_number":1786,"context_line":"        self.walk_range(\u0027\u0027, ranges\u003dranges_left)"},{"line_number":1787,"context_line":"        while ranges_left:"},{"line_number":1788,"context_line":"            ranges_left.sort()"},{"line_number":1789,"context_line":"            self.walk_range(ranges_left[0].lower, ranges\u003dranges_left, complete\u003dFalse)"},{"line_number":1790,"context_line":"        self._scanned \u003d True"},{"line_number":1791,"context_line":""},{"line_number":1792,"context_line":"    def _ranges_to_remove(self, good_path):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_786b19ef","line":1789,"updated":"2020-10-09 06:17:09.000000000","message":"pep8: E501 line too long (85 \u003e 79 characters)","commit_id":"a86f65a76ccedc80f6189c08e3a8c94e59d12fae"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"d816a1b559341d8d49176d377bf435446ee11420","unresolved":false,"context_lines":[{"line_number":1816,"context_line":"        #   weight \u003d\u003d object_count / shard_threshold"},{"line_number":1817,"context_line":"        #      Which should give us close to a percentage \"full\" anything over"},{"line_number":1818,"context_line":"        #      1 really needs to shard."},{"line_number":1819,"context_line":"        #   But, what if something has already sharded, or has just shrunk, then"},{"line_number":1820,"context_line":"        #   we don\u0027t want to pick that complete path, otherwise we need to shard"},{"line_number":1821,"context_line":"        #   or shrink again. So if it\u0027s \u003e shard_threshold or smaller then shrink"},{"line_number":1822,"context_line":"        #   size, we\u0027ll negate the sign."}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_d87345e7","line":1819,"updated":"2020-10-09 06:17:09.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"a86f65a76ccedc80f6189c08e3a8c94e59d12fae"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"d816a1b559341d8d49176d377bf435446ee11420","unresolved":false,"context_lines":[{"line_number":1817,"context_line":"        #      Which should give us close to a percentage \"full\" anything over"},{"line_number":1818,"context_line":"        #      1 really needs to shard."},{"line_number":1819,"context_line":"        #   But, what if something has already sharded, or has just shrunk, then"},{"line_number":1820,"context_line":"        #   we don\u0027t want to pick that complete path, otherwise we need to shard"},{"line_number":1821,"context_line":"        #   or shrink again. So if it\u0027s \u003e shard_threshold or smaller then shrink"},{"line_number":1822,"context_line":"        #   size, we\u0027ll negate the sign."},{"line_number":1823,"context_line":"        #"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_b87011dc","line":1820,"updated":"2020-10-09 06:17:09.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"a86f65a76ccedc80f6189c08e3a8c94e59d12fae"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"d816a1b559341d8d49176d377bf435446ee11420","unresolved":false,"context_lines":[{"line_number":1818,"context_line":"        #      1 really needs to shard."},{"line_number":1819,"context_line":"        #   But, what if something has already sharded, or has just shrunk, then"},{"line_number":1820,"context_line":"        #   we don\u0027t want to pick that complete path, otherwise we need to shard"},{"line_number":1821,"context_line":"        #   or shrink again. So if it\u0027s \u003e shard_threshold or smaller then shrink"},{"line_number":1822,"context_line":"        #   size, we\u0027ll negate the sign."},{"line_number":1823,"context_line":"        #"},{"line_number":1824,"context_line":"        # We do this because the we want to pick the path with the biggest"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_187addb9","line":1821,"updated":"2020-10-09 06:17:09.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"a86f65a76ccedc80f6189c08e3a8c94e59d12fae"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"d816a1b559341d8d49176d377bf435446ee11420","unresolved":false,"context_lines":[{"line_number":1866,"context_line":"            return None"},{"line_number":1867,"context_line":""},{"line_number":1868,"context_line":"        # When finding the best fragment path, let\u0027s make it simple, we want to"},{"line_number":1869,"context_line":"        # build a complete path by inserting a new shard range. So the best path"},{"line_number":1870,"context_line":"        # is a shard range that will fill the smallest gap."},{"line_number":1871,"context_line":""},{"line_number":1872,"context_line":"        # So let\u0027s make an assumption that we want to find the smallest gap"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_f87609d5","line":1869,"updated":"2020-10-09 06:17:09.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"a86f65a76ccedc80f6189c08e3a8c94e59d12fae"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7949b9a4a6fc267bf9ba60ce93246e64ad16222c","unresolved":false,"context_lines":[{"line_number":1771,"context_line":"        for sr in self.ranges:"},{"line_number":1772,"context_line":"            self.lowers[sr.lower_str].append(sr)"},{"line_number":1773,"context_line":"            self.uppers[sr.upper_str].append(sr)"},{"line_number":1774,"context_line":"            if len(self.lowers[sr.lower_str]) \u003e 1 or len(self.uppers[sr.upper_str]) \u003e 1:"},{"line_number":1775,"context_line":"                overlaps \u003d True"},{"line_number":1776,"context_line":""},{"line_number":1777,"context_line":"        # Quick check for gaps"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_1059e859","line":1774,"updated":"2020-10-13 05:16:40.000000000","message":"pep8: E501 line too long (88 \u003e 79 characters)","commit_id":"2fbc1b4249c0ea7c5c5083bf1964765436c813a5"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7949b9a4a6fc267bf9ba60ce93246e64ad16222c","unresolved":false,"context_lines":[{"line_number":1786,"context_line":"        self.walk_range(\u0027\u0027, ranges\u003dranges_left)"},{"line_number":1787,"context_line":"        while ranges_left:"},{"line_number":1788,"context_line":"            ranges_left.sort()"},{"line_number":1789,"context_line":"            self.walk_range(ranges_left[0].lower, ranges\u003dranges_left, complete\u003dFalse)"},{"line_number":1790,"context_line":"        self._scanned \u003d True"},{"line_number":1791,"context_line":""},{"line_number":1792,"context_line":"    def _ranges_to_remove(self, good_path):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_7054a422","line":1789,"updated":"2020-10-13 05:16:40.000000000","message":"pep8: E501 line too long (85 \u003e 79 characters)","commit_id":"2fbc1b4249c0ea7c5c5083bf1964765436c813a5"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7949b9a4a6fc267bf9ba60ce93246e64ad16222c","unresolved":false,"context_lines":[{"line_number":1816,"context_line":"        #   weight \u003d\u003d object_count / shard_threshold"},{"line_number":1817,"context_line":"        #      Which should give us close to a percentage \"full\" anything over"},{"line_number":1818,"context_line":"        #      1 really needs to shard."},{"line_number":1819,"context_line":"        #   But, what if something has already sharded, or has just shrunk, then"},{"line_number":1820,"context_line":"        #   we don\u0027t want to pick that complete path, otherwise we need to shard"},{"line_number":1821,"context_line":"        #   or shrink again. So if it\u0027s \u003e shard_threshold or smaller then shrink"},{"line_number":1822,"context_line":"        #   size, we\u0027ll negate the sign."}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_504fe08a","line":1819,"updated":"2020-10-13 05:16:40.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"2fbc1b4249c0ea7c5c5083bf1964765436c813a5"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7949b9a4a6fc267bf9ba60ce93246e64ad16222c","unresolved":false,"context_lines":[{"line_number":1817,"context_line":"        #      Which should give us close to a percentage \"full\" anything over"},{"line_number":1818,"context_line":"        #      1 really needs to shard."},{"line_number":1819,"context_line":"        #   But, what if something has already sharded, or has just shrunk, then"},{"line_number":1820,"context_line":"        #   we don\u0027t want to pick that complete path, otherwise we need to shard"},{"line_number":1821,"context_line":"        #   or shrink again. So if it\u0027s \u003e shard_threshold or smaller then shrink"},{"line_number":1822,"context_line":"        #   size, we\u0027ll negate the sign."},{"line_number":1823,"context_line":"        #"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_b02f5ca5","line":1820,"updated":"2020-10-13 05:16:40.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"2fbc1b4249c0ea7c5c5083bf1964765436c813a5"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7949b9a4a6fc267bf9ba60ce93246e64ad16222c","unresolved":false,"context_lines":[{"line_number":1818,"context_line":"        #      1 really needs to shard."},{"line_number":1819,"context_line":"        #   But, what if something has already sharded, or has just shrunk, then"},{"line_number":1820,"context_line":"        #   we don\u0027t want to pick that complete path, otherwise we need to shard"},{"line_number":1821,"context_line":"        #   or shrink again. So if it\u0027s \u003e shard_threshold or smaller then shrink"},{"line_number":1822,"context_line":"        #   size, we\u0027ll negate the sign."},{"line_number":1823,"context_line":"        #"},{"line_number":1824,"context_line":"        # We do this because the we want to pick the path with the biggest"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_9032180e","line":1821,"updated":"2020-10-13 05:16:40.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"2fbc1b4249c0ea7c5c5083bf1964765436c813a5"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7949b9a4a6fc267bf9ba60ce93246e64ad16222c","unresolved":false,"context_lines":[{"line_number":1866,"context_line":"            return None"},{"line_number":1867,"context_line":""},{"line_number":1868,"context_line":"        # When finding the best fragment path, let\u0027s make it simple, we want to"},{"line_number":1869,"context_line":"        # build a complete path by inserting a new shard range. So the best path"},{"line_number":1870,"context_line":"        # is a shard range that will fill the smallest gap."},{"line_number":1871,"context_line":""},{"line_number":1872,"context_line":"        # So let\u0027s make an assumption that we want to find the smallest gap"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_f03554f7","line":1869,"updated":"2020-10-13 05:16:40.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"2fbc1b4249c0ea7c5c5083bf1964765436c813a5"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7949b9a4a6fc267bf9ba60ce93246e64ad16222c","unresolved":false,"context_lines":[{"line_number":1887,"context_line":"        while floating:"},{"line_number":1888,"context_line":"            if not min_path:"},{"line_number":1889,"context_line":"                min_floating \u003d min(floating, key\u003dmin_shard_range)"},{"line_number":1890,"context_line":"                min_path.append(self._make_new_range(\u0027\u0027, min_floating[0].lower_str))"},{"line_number":1891,"context_line":"                min_path +\u003d min_floating"},{"line_number":1892,"context_line":"                floating.remove(min_floating)"},{"line_number":1893,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_d03810ee","line":1890,"updated":"2020-10-13 05:16:40.000000000","message":"pep8: E501 line too long (84 \u003e 79 characters)","commit_id":"2fbc1b4249c0ea7c5c5083bf1964765436c813a5"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"a67dc7bd199586c5ff6f84da09324185c56c6c72","unresolved":false,"context_lines":[{"line_number":1857,"context_line":"        #   with anything bigger or smaller then it."},{"line_number":1858,"context_line":"        # - If there is nothing bigger or smaller, but is not pointing at MIN"},{"line_number":1859,"context_line":"        #   or MAX then we need to add a SR that can."},{"line_number":1860,"context_line":"        extra_bounds \u003d set()"},{"line_number":1861,"context_line":"        for frag in self.frags:"},{"line_number":1862,"context_line":"            found_smaller, found_bigger \u003d False, False"},{"line_number":1863,"context_line":"            for f in self.frags:"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_a8e17fff","line":1860,"updated":"2020-11-18 09:51:05.000000000","message":"In the more complex frag test, some frags aren\u0027t getting connected so need to debug into this.","commit_id":"5edc85e66925f42fea3ade89b5290ad6c5ec2924"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"5e2c3c8dedb821018f5357c8b3bd2d2c97e17fc1","unresolved":false,"context_lines":[{"line_number":1875,"context_line":"        extra_ranges \u003d [self._make_new_range(lower, upper)"},{"line_number":1876,"context_line":"                        for lower, upper in extra_bounds]"},{"line_number":1877,"context_line":"        new_range_scanner \u003d RangesScanner("},{"line_number":1878,"context_line":"            self.shard_account, self.root_container, self.ranges + extra_ranges,"},{"line_number":1879,"context_line":"            self.shard_threshold, self.shrink_size)"},{"line_number":1880,"context_line":"        new_range_scanner.scan()"},{"line_number":1881,"context_line":"        if new_range_scanner.has_frags():"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_55d03f54","line":1878,"updated":"2020-11-18 14:20:21.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"5edc85e66925f42fea3ade89b5290ad6c5ec2924"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"5e2c3c8dedb821018f5357c8b3bd2d2c97e17fc1","unresolved":false,"context_lines":[{"line_number":2023,"context_line":"        return path, ranges_to_remove"},{"line_number":2024,"context_line":""},{"line_number":2025,"context_line":"    def writeout_to_broker(self, ranges, account\u003d\u0027a\u0027, container\u003d\u0027c\u0027):"},{"line_number":2026,"context_line":"        # THIS IS JUNK CODE - Just here to help dump to open in mange-shard-ranges graphviz."},{"line_number":2027,"context_line":"        db_file \u003d \"/home/matt/brokers/%s_%s_%f.db\" % (account, container, Timestamp.now())"},{"line_number":2028,"context_line":"        broker \u003d ContainerBroker("},{"line_number":2029,"context_line":"            db_file, account\u003daccount, container\u003dcontainer)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_35d5c344","line":2026,"updated":"2020-11-18 14:20:21.000000000","message":"pep8: E501 line too long (92 \u003e 79 characters)","commit_id":"5edc85e66925f42fea3ade89b5290ad6c5ec2924"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"5e2c3c8dedb821018f5357c8b3bd2d2c97e17fc1","unresolved":false,"context_lines":[{"line_number":2024,"context_line":""},{"line_number":2025,"context_line":"    def writeout_to_broker(self, ranges, account\u003d\u0027a\u0027, container\u003d\u0027c\u0027):"},{"line_number":2026,"context_line":"        # THIS IS JUNK CODE - Just here to help dump to open in mange-shard-ranges graphviz."},{"line_number":2027,"context_line":"        db_file \u003d \"/home/matt/brokers/%s_%s_%f.db\" % (account, container, Timestamp.now())"},{"line_number":2028,"context_line":"        broker \u003d ContainerBroker("},{"line_number":2029,"context_line":"            db_file, account\u003daccount, container\u003dcontainer)"},{"line_number":2030,"context_line":"        broker.initialize()"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_95cad79e","line":2027,"updated":"2020-11-18 14:20:21.000000000","message":"pep8: E501 line too long (90 \u003e 79 characters)","commit_id":"5edc85e66925f42fea3ade89b5290ad6c5ec2924"}],"test/unit/container/test_sharder.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"d816a1b559341d8d49176d377bf435446ee11420","unresolved":false,"context_lines":[{"line_number":5376,"context_line":"        # check idempotency"},{"line_number":5377,"context_line":"        ctx.start()"},{"line_number":5378,"context_line":""},{"line_number":5379,"context_line":"class TestRangeScanner(unittest.TestCase):"},{"line_number":5380,"context_line":"    def setUp(self):"},{"line_number":5381,"context_line":"        self.shard_threshold \u003d 1000"},{"line_number":5382,"context_line":"        self.rangescanner \u003d RangesScanner(\u0027a\u0027, \u0027c\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_5849f58b","line":5379,"updated":"2020-10-09 06:17:09.000000000","message":"pep8: E302 expected 2 blank lines, found 1","commit_id":"a86f65a76ccedc80f6189c08e3a8c94e59d12fae"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7949b9a4a6fc267bf9ba60ce93246e64ad16222c","unresolved":false,"context_lines":[{"line_number":5376,"context_line":"        # check idempotency"},{"line_number":5377,"context_line":"        ctx.start()"},{"line_number":5378,"context_line":""},{"line_number":5379,"context_line":"class TestRangeScanner(unittest.TestCase):"},{"line_number":5380,"context_line":"    def setUp(self):"},{"line_number":5381,"context_line":"        self.shard_threshold \u003d 1000"},{"line_number":5382,"context_line":"        self.rangescanner \u003d RangesScanner(\u0027a\u0027, \u0027c\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_7029449a","line":5379,"updated":"2020-10-13 05:16:40.000000000","message":"pep8: E302 expected 2 blank lines, found 1","commit_id":"2fbc1b4249c0ea7c5c5083bf1964765436c813a5"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7949b9a4a6fc267bf9ba60ce93246e64ad16222c","unresolved":false,"context_lines":[{"line_number":5480,"context_line":"        ranges \u003d self._make_shard_ranges(bounds, timestamp\u003dts_1,"},{"line_number":5481,"context_line":"                                         object_count\u003dobj_count)"},{"line_number":5482,"context_line":""},{"line_number":5483,"context_line":"        # let\u0027s try dropping in each position, this way we test first, last, and"},{"line_number":5484,"context_line":"        # in between."},{"line_number":5485,"context_line":"        for r in ranges:"},{"line_number":5486,"context_line":"            tmp_ranges \u003d list(ranges)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_502400c3","line":5483,"updated":"2020-10-13 05:16:40.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"2fbc1b4249c0ea7c5c5083bf1964765436c813a5"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7949b9a4a6fc267bf9ba60ce93246e64ad16222c","unresolved":false,"context_lines":[{"line_number":5515,"context_line":"        #    +-----+b+-----+f|                              +-+   +-+"},{"line_number":5516,"context_line":"        #    |     +-+     +-+                              |w+---+z+--------+"},{"line_number":5517,"context_line":"        #    |                                              +-+   +-+        |"},{"line_number":5518,"context_line":"        # +--++  +-+   +-+    +-+  +-+        +-+                          +-+-+"},{"line_number":5519,"context_line":"        # |MIN+--+a+---+d|    |g+--+i+--------+m|         +-+   +----------+MAX|"},{"line_number":5520,"context_line":"        # +---+  +-+   +-+    +-+  +-+        +-+         |t+---+x|        +---+"},{"line_number":5521,"context_line":"        #                                                 +-+   +-+"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_b018fc83","line":5518,"updated":"2020-10-13 05:16:40.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"2fbc1b4249c0ea7c5c5083bf1964765436c813a5"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7949b9a4a6fc267bf9ba60ce93246e64ad16222c","unresolved":false,"context_lines":[{"line_number":5516,"context_line":"        #    |     +-+     +-+                              |w+---+z+--------+"},{"line_number":5517,"context_line":"        #    |                                              +-+   +-+        |"},{"line_number":5518,"context_line":"        # +--++  +-+   +-+    +-+  +-+        +-+                          +-+-+"},{"line_number":5519,"context_line":"        # |MIN+--+a+---+d|    |g+--+i+--------+m|         +-+   +----------+MAX|"},{"line_number":5520,"context_line":"        # +---+  +-+   +-+    +-+  +-+        +-+         |t+---+x|        +---+"},{"line_number":5521,"context_line":"        #                                                 +-+   +-+"},{"line_number":5522,"context_line":"        #             +-+ +-+        +-+   +-+    +-+"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_901b387e","line":5519,"updated":"2020-10-13 05:16:40.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"2fbc1b4249c0ea7c5c5083bf1964765436c813a5"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7949b9a4a6fc267bf9ba60ce93246e64ad16222c","unresolved":false,"context_lines":[{"line_number":5517,"context_line":"        #    |                                              +-+   +-+        |"},{"line_number":5518,"context_line":"        # +--++  +-+   +-+    +-+  +-+        +-+                          +-+-+"},{"line_number":5519,"context_line":"        # |MIN+--+a+---+d|    |g+--+i+--------+m|         +-+   +----------+MAX|"},{"line_number":5520,"context_line":"        # +---+  +-+   +-+    +-+  +-+        +-+         |t+---+x|        +---+"},{"line_number":5521,"context_line":"        #                                                 +-+   +-+"},{"line_number":5522,"context_line":"        #             +-+ +-+        +-+   +-+    +-+"},{"line_number":5523,"context_line":"        #             |c+-+e|        |j+---+j+----+o|"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_f00ef43a","line":5520,"updated":"2020-10-13 05:16:40.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"2fbc1b4249c0ea7c5c5083bf1964765436c813a5"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7949b9a4a6fc267bf9ba60ce93246e64ad16222c","unresolved":false,"context_lines":[{"line_number":5536,"context_line":"        #    +-----+b+-----+f|"},{"line_number":5537,"context_line":"        #    |     +-+     +++"},{"line_number":5538,"context_line":"        #    |              |"},{"line_number":5539,"context_line":"        #  +---+            | +-+  +-+        +-+                          +---+"},{"line_number":5540,"context_line":"        #  |MIN|            +-+g+--+i+--------+m|         +-+   +----------+MAX|"},{"line_number":5541,"context_line":"        #  +---+              +-+  +-+        +++         |t+---+x|        +---+"},{"line_number":5542,"context_line":"        #                                      |          +++   +-+"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_d011305e","line":5539,"updated":"2020-10-13 05:16:40.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"2fbc1b4249c0ea7c5c5083bf1964765436c813a5"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7949b9a4a6fc267bf9ba60ce93246e64ad16222c","unresolved":false,"context_lines":[{"line_number":5537,"context_line":"        #    |     +-+     +++"},{"line_number":5538,"context_line":"        #    |              |"},{"line_number":5539,"context_line":"        #  +---+            | +-+  +-+        +-+                          +---+"},{"line_number":5540,"context_line":"        #  |MIN|            +-+g+--+i+--------+m|         +-+   +----------+MAX|"},{"line_number":5541,"context_line":"        #  +---+              +-+  +-+        +++         |t+---+x|        +---+"},{"line_number":5542,"context_line":"        #                                      |          +++   +-+"},{"line_number":5543,"context_line":"        #                                      |  +-+      |"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_300cec40","line":5540,"updated":"2020-10-13 05:16:40.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"2fbc1b4249c0ea7c5c5083bf1964765436c813a5"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7949b9a4a6fc267bf9ba60ce93246e64ad16222c","unresolved":false,"context_lines":[{"line_number":5538,"context_line":"        #    |              |"},{"line_number":5539,"context_line":"        #  +---+            | +-+  +-+        +-+                          +---+"},{"line_number":5540,"context_line":"        #  |MIN|            +-+g+--+i+--------+m|         +-+   +----------+MAX|"},{"line_number":5541,"context_line":"        #  +---+              +-+  +-+        +++         |t+---+x|        +---+"},{"line_number":5542,"context_line":"        #                                      |          +++   +-+"},{"line_number":5543,"context_line":"        #                                      |  +-+      |"},{"line_number":5544,"context_line":"        #                                      +--+o+------+"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_1007281f","line":5541,"updated":"2020-10-13 05:16:40.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"2fbc1b4249c0ea7c5c5083bf1964765436c813a5"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"5e2c3c8dedb821018f5357c8b3bd2d2c97e17fc1","unresolved":false,"context_lines":[{"line_number":5565,"context_line":"            sorted(ranges_to_remove, key\u003dlambda x: x.lower_str))"},{"line_number":5566,"context_line":""},{"line_number":5567,"context_line":""},{"line_number":5568,"context_line":"        best_path, ranges_to_remove \u003d self.rangescanner.find_best_path2()"},{"line_number":5569,"context_line":"        pass"},{"line_number":5570,"context_line":""},{"line_number":5571,"context_line":"    def test_spider_frags_empty_not_better_then_large_shard(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_75cf3bb0","line":5568,"updated":"2020-11-18 14:20:21.000000000","message":"pep8: E303 too many blank lines (2)","commit_id":"5edc85e66925f42fea3ade89b5290ad6c5ec2924"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"b602fb5aaa48d6b7e5abf0992ee3d79c3e1cce1c","unresolved":false,"context_lines":[{"line_number":5566,"context_line":""},{"line_number":5567,"context_line":""},{"line_number":5568,"context_line":"        best_path, ranges_to_remove \u003d self.rangescanner.find_best_path2()"},{"line_number":5569,"context_line":"        pass"},{"line_number":5570,"context_line":""},{"line_number":5571,"context_line":"    def test_spider_frags_empty_not_better_then_large_shard(self):"},{"line_number":5572,"context_line":"        ts_1 \u003d Timestamp.now()"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_88dbe34d","line":5569,"updated":"2020-11-18 09:49:21.000000000","message":"This spider approach here isn\u0027t connecting all the frags.. need to debug. Then will spin a second test to actually properly test this. The pass is so I can brake point afterwards.\n\nSo all WIP","commit_id":"5edc85e66925f42fea3ade89b5290ad6c5ec2924"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"5e2c3c8dedb821018f5357c8b3bd2d2c97e17fc1","unresolved":false,"context_lines":[{"line_number":5593,"context_line":""},{"line_number":5594,"context_line":"        best_path, ranges_to_remove \u003d self.rangescanner.find_best_path2()"},{"line_number":5595,"context_line":"        self.assertListEqual(expected_best_path, best_path)"},{"line_number":5596,"context_line":"        self.assertListEqual(expected_ranges_to_remove, sorted(ranges_to_remove))"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_d5c3af89","line":5596,"updated":"2020-11-18 14:20:21.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"5edc85e66925f42fea3ade89b5290ad6c5ec2924"}]}
