)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"705511df8a6ff3f1aae8c4db798e7c992218cbe1","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Tim Burke \u003ctim.burke@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-11-06 13:17:06 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"ring: Allow 32-bit (or even 8-bit) device IDs"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I6cb8e9950b142b8a12cf24252f35193562f662fc"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1f621f24_5d546b21","line":7,"range":{"start_line":7,"start_character":20,"end_line":7,"end_character":33},"updated":"2020-11-06 21:19:40.000000000","message":"Mostly just so we can exercise switching from one width to another without going *completely* crazy ;-)","commit_id":"1cc1b80d1b137972ca32fedb5071485994352901"}],"swift/cli/ringbuilder.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f5fdac01c1f02d25b99f5495d4bad5e09a9cf8df","unresolved":false,"context_lines":[{"line_number":1439,"context_line":"            print(Commands.set_dev_id_bytes.__doc__.strip())"},{"line_number":1440,"context_line":"            print(err)"},{"line_number":1441,"context_line":"            exit(EXIT_ERROR)"},{"line_number":1442,"context_line":"        print(\u0027The ring now supports device IDs through %d.\u0027 % builder.max_dev_id)"},{"line_number":1443,"context_line":"        print(\u0027The change will take effect after the next write_ring.\u0027)"},{"line_number":1444,"context_line":"        builder.save(builder_file)"},{"line_number":1445,"context_line":"        exit(EXIT_SUCCESS)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_f825855d","line":1442,"updated":"2020-11-06 22:16:20.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"1cc1b80d1b137972ca32fedb5071485994352901"}],"swift/common/ring/builder.py":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"e9990fe04800e7ac16fcd761b6f0e7d1426ed7c4","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        if self.dev_id_bytes not in BYTES_TO_TYPE_CODE:"},{"line_number":163,"context_line":"            # We should be guarding against ever setting a bad value elsewhere,"},{"line_number":164,"context_line":"            # but just in case..."},{"line_number":165,"context_line":"            raise ValueError(\u0027Unexpected dev_id_bytes: %s\u0027 % self.dev_id_bytes)"},{"line_number":166,"context_line":"        return BYTES_TO_TYPE_CODE[self.dev_id_bytes]"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_7275ffca","line":165,"updated":"2020-11-10 00:50:47.000000000","message":"I think it\u0027s an unsupported value, rather than unexpected.","commit_id":"1cc1b80d1b137972ca32fedb5071485994352901"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"e9990fe04800e7ac16fcd761b6f0e7d1426ed7c4","unresolved":false,"context_lines":[{"line_number":366,"context_line":"        self.dev_id_bytes \u003d new_dev_id_bytes"},{"line_number":367,"context_line":"        new_replica2part2dev \u003d ["},{"line_number":368,"context_line":"            array(self.dev_id_type_code, ("},{"line_number":369,"context_line":"                new_max_dev_id if dev_id \u003d\u003d old_max_dev_id else dev_id"},{"line_number":370,"context_line":"                for dev_id in replica))"},{"line_number":371,"context_line":"            for replica in self._replica2part2dev]"},{"line_number":372,"context_line":"        self._replica2part2dev \u003d new_replica2part2dev"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_0d9d8ebb","line":369,"updated":"2020-11-10 00:50:47.000000000","message":"Are you sure that you didn\u0027t confuse max_dev_id and none_dev_id in this re-arrangement?","commit_id":"1cc1b80d1b137972ca32fedb5071485994352901"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"5600d0fd1dbddc937fcdd1ad5b1562080db8b283","unresolved":false,"context_lines":[{"line_number":366,"context_line":"        self.dev_id_bytes \u003d new_dev_id_bytes"},{"line_number":367,"context_line":"        new_replica2part2dev \u003d ["},{"line_number":368,"context_line":"            array(self.dev_id_type_code, ("},{"line_number":369,"context_line":"                new_max_dev_id if dev_id \u003d\u003d old_max_dev_id else dev_id"},{"line_number":370,"context_line":"                for dev_id in replica))"},{"line_number":371,"context_line":"            for replica in self._replica2part2dev]"},{"line_number":372,"context_line":"        self._replica2part2dev \u003d new_replica2part2dev"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_30c89520","line":369,"in_reply_to":"1f621f24_0d9d8ebb","updated":"2020-11-10 16:56:10.000000000","message":"I definitely did -- good spot!\n\n(Honestly, I\u0027m not sure how we ever end up with a ring on disk that has none_dev_id assignments, but I figured I ought to account for it anyway.)","commit_id":"1cc1b80d1b137972ca32fedb5071485994352901"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"e9990fe04800e7ac16fcd761b6f0e7d1426ed7c4","unresolved":false,"context_lines":[{"line_number":468,"context_line":"        if dev[\u0027id\u0027] \u003c len(self.devs) and self.devs[dev[\u0027id\u0027]] is not None:"},{"line_number":469,"context_line":"            raise exceptions.DuplicateDeviceError("},{"line_number":470,"context_line":"                \u0027Duplicate device id: %d\u0027 % dev[\u0027id\u0027])"},{"line_number":471,"context_line":"        if dev[\u0027id\u0027] \u003e self.max_dev_id:"},{"line_number":472,"context_line":"            raise ValueError(\u0027Device id %d is too large for ring (max %d)\u0027 % ("},{"line_number":473,"context_line":"                dev[\u0027id\u0027], self.max_dev_id))"},{"line_number":474,"context_line":"        # Add holes to self.devs to ensure self.devs[dev[\u0027id\u0027]] will be the dev"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_4da30601","line":471,"updated":"2020-11-10 00:50:47.000000000","message":"See, you\u0027re allowing max_dev_id as any other value. So, only none_dev_id is special.","commit_id":"1cc1b80d1b137972ca32fedb5071485994352901"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f5fdac01c1f02d25b99f5495d4bad5e09a9cf8df","unresolved":false,"context_lines":[{"line_number":1048,"context_line":"                for part, replica in self._each_part_replica():"},{"line_number":1049,"context_line":"                    dev_id \u003d self._replica2part2dev[replica][part]"},{"line_number":1050,"context_line":"                    if dev_id in dev_ids:"},{"line_number":1051,"context_line":"                        self._replica2part2dev[replica][part] \u003d self.none_dev_id"},{"line_number":1052,"context_line":"                        self._set_part_moved(part)"},{"line_number":1053,"context_line":"                        assign_parts[part].append(replica)"},{"line_number":1054,"context_line":"                        self.logger.debug("}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_98345195","line":1051,"updated":"2020-11-06 22:16:20.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"1cc1b80d1b137972ca32fedb5071485994352901"}],"swift/common/ring/ring.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"ea25e858b179149f103e8d0990fe4415ac528032","unresolved":true,"context_lines":[{"line_number":208,"context_line":"    def serialize_v1(self, file_obj):"},{"line_number":209,"context_line":"        # Write out new-style serialization magic and version:"},{"line_number":210,"context_line":"        file_obj.write(struct.pack(\u0027!4sH\u0027, b\u0027R1NG\u0027, ("},{"line_number":211,"context_line":"            1 if self.dev_id_bytes \u003d\u003d 2 else 2)))"},{"line_number":212,"context_line":"        ring \u003d self.to_dict()"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"        # Only include next_part_power if it is set in the"}],"source_content_type":"text/x-python","patch_set":4,"id":"f3028506_fe3fbcc5","line":211,"updated":"2021-08-18 21:37:12.000000000","message":"ewww *gross* at least change the function name, hard NO","commit_id":"f99479b428fdba7905bba8d81a96b92b088e5cef"}],"test/unit/common/ring/test_builder.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f5fdac01c1f02d25b99f5495d4bad5e09a9cf8df","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        self.assertEqual(rb.version, 9)"},{"line_number":208,"context_line":"        rb.set_dev_id_bytes(1)"},{"line_number":209,"context_line":"        self.assertEqual(rb.version, 10)"},{"line_number":210,"context_line":"        #rb.rebalance()"},{"line_number":211,"context_line":"        r \u003d rb.get_ring()"},{"line_number":212,"context_line":"        self.assertIsNot(r, wide_ring)"},{"line_number":213,"context_line":"        self.assertEqual(rb.version, 10)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_d82a492a","line":210,"updated":"2020-11-06 22:16:20.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"1cc1b80d1b137972ca32fedb5071485994352901"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"82a7356381662b896a0ad91f40c015c94a75ce4f","unresolved":true,"context_lines":[{"line_number":207,"context_line":"        self.assertEqual(rb.version, 9)"},{"line_number":208,"context_line":"        rb.set_dev_id_bytes(1)"},{"line_number":209,"context_line":"        self.assertEqual(rb.version, 10)"},{"line_number":210,"context_line":"        #rb.rebalance()"},{"line_number":211,"context_line":"        r \u003d rb.get_ring()"},{"line_number":212,"context_line":"        self.assertIsNot(r, wide_ring)"},{"line_number":213,"context_line":"        self.assertEqual(rb.version, 10)"}],"source_content_type":"text/x-python","patch_set":2,"id":"efa77a4b_44d05975","line":210,"updated":"2020-12-03 01:14:16.000000000","message":"bet this is going to fail PEP8 again","commit_id":"cb37d3fd0db4b62bc163d438586d13150d516135"}]}
