)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"3c218afdf2d6d4300510365e89157dc4fb0d641f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f80213fb_02ae2fc6","updated":"2022-08-31 13:59:58.000000000","message":"create a ring you can\u0027t use?  maybe if we guard all the methods that need a valid hash-suffix with self.config_has_been_validated - then you can get an unsafe-ring, but if you use it unsafely it blows up in your face.\n\nor maybe this is sensible as-is, but it seems like more trouble than it\u0027s worth\n\n","commit_id":"fb3faf57a4ff41e20615563637960b7a930ac25c"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"2f9504e00f869e771bc91f4a4057f9c1d83e3576","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"cf014d33_740ea8b6","in_reply_to":"f80213fb_02ae2fc6","updated":"2022-09-06 19:06:46.000000000","message":"Grabbed a ring from prod so I could do some benchmarking of ring formats. Of course, my dev machine doesn\u0027t have /etc/swift (even if it\u0027s got a VM or two that *do*). Felt weird.","commit_id":"fb3faf57a4ff41e20615563637960b7a930ac25c"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"206cabf61757f123371c8ef6b14bd5046071c970","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"a44a5eed_e03b4e48","updated":"2022-09-06 21:02:25.000000000","message":"I think this is ok but not super high prio","commit_id":"b8ae7fd2863288e50fd3e98e8cb7a4ce37c4e3e5"}],"swift/cli/ringbuilder.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"3c218afdf2d6d4300510365e89157dc4fb0d641f","unresolved":true,"context_lines":[{"line_number":1321,"context_line":"            stderr.write(\"WARNING: default min_part_hours may not match \""},{"line_number":1322,"context_line":"                         \"the value in the lost builder.\\n\")"},{"line_number":1323,"context_line":"            min_part_hours \u003d 24"},{"line_number":1324,"context_line":"        ring \u003d Ring(ring_file, validate_config\u003dFalse)"},{"line_number":1325,"context_line":"        for dev in ring.devs:"},{"line_number":1326,"context_line":"            if dev is None:"},{"line_number":1327,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"84870a1f_6609f6a2","line":1324,"updated":"2022-08-31 13:59:58.000000000","message":"i don\u0027t like adding a lever that when you pull it you get back a poisened ring - maybe just catch the error and monkey patch","commit_id":"fb3faf57a4ff41e20615563637960b7a930ac25c"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"2f9504e00f869e771bc91f4a4057f9c1d83e3576","unresolved":true,"context_lines":[{"line_number":1321,"context_line":"            stderr.write(\"WARNING: default min_part_hours may not match \""},{"line_number":1322,"context_line":"                         \"the value in the lost builder.\\n\")"},{"line_number":1323,"context_line":"            min_part_hours \u003d 24"},{"line_number":1324,"context_line":"        ring \u003d Ring(ring_file, validate_config\u003dFalse)"},{"line_number":1325,"context_line":"        for dev in ring.devs:"},{"line_number":1326,"context_line":"            if dev is None:"},{"line_number":1327,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"d53ba33e_13d554aa","line":1324,"in_reply_to":"84870a1f_6609f6a2","updated":"2022-09-06 19:06:46.000000000","message":"*shrug* Sure, I guess? I could envision more tooling for ring analysis that might want to open up a ring without any ability to do real lookups, and it doesn\u0027t seem great to push that particular wheel-reinvention on them... but I also don\u0027t have any such tools already dreamed up, much less implemented.\n\n(Side note: it feels weird to have you of all people suggesting that monkey patching is the better solution!)","commit_id":"fb3faf57a4ff41e20615563637960b7a930ac25c"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"3f4c48acf16669a6a561cf96ad45e4843281b2a9","unresolved":true,"context_lines":[{"line_number":1321,"context_line":"            stderr.write(\"WARNING: default min_part_hours may not match \""},{"line_number":1322,"context_line":"                         \"the value in the lost builder.\\n\")"},{"line_number":1323,"context_line":"            min_part_hours \u003d 24"},{"line_number":1324,"context_line":"        ring \u003d Ring(ring_file, validate_config\u003dFalse)"},{"line_number":1325,"context_line":"        for dev in ring.devs:"},{"line_number":1326,"context_line":"            if dev is None:"},{"line_number":1327,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"c49f5b4c_a3cb2200","line":1324,"in_reply_to":"849a5397_08557afe","updated":"2022-09-12 21:18:24.000000000","message":"From poking at making a new ring utility (that still doesn\u0027t need to do any lookups) in https://review.opendev.org/c/openstack/swift/+/857234, I wonder if we could get away with using a RingData here instead of a Ring proper...","commit_id":"fb3faf57a4ff41e20615563637960b7a930ac25c"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"206cabf61757f123371c8ef6b14bd5046071c970","unresolved":true,"context_lines":[{"line_number":1321,"context_line":"            stderr.write(\"WARNING: default min_part_hours may not match \""},{"line_number":1322,"context_line":"                         \"the value in the lost builder.\\n\")"},{"line_number":1323,"context_line":"            min_part_hours \u003d 24"},{"line_number":1324,"context_line":"        ring \u003d Ring(ring_file, validate_config\u003dFalse)"},{"line_number":1325,"context_line":"        for dev in ring.devs:"},{"line_number":1326,"context_line":"            if dev is None:"},{"line_number":1327,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"849a5397_08557afe","line":1324,"in_reply_to":"d53ba33e_13d554aa","updated":"2022-09-06 21:02:25.000000000","message":"*shrug* \"practicality beats purity\" is a lesson I try to keep in mind... \n\nI don\u0027t have any (other?) tools in mind either, but if we\u0027re looking for a more \"pure\" solution, maybe a DeadRing class that \"works\" but you can\u0027t do lookups on names?  We could totally use that here or other places and leave the config validation methods in the *real* Ring class.","commit_id":"fb3faf57a4ff41e20615563637960b7a930ac25c"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"206cabf61757f123371c8ef6b14bd5046071c970","unresolved":true,"context_lines":[{"line_number":1325,"context_line":"            ring \u003d Ring(ring_file)"},{"line_number":1326,"context_line":"        except SystemExit:"},{"line_number":1327,"context_line":"            # no hash prefix/suffix set, presumably?"},{"line_number":1328,"context_line":"            utils.HASH_PATH_PREFIX \u003d b\u0027not used\u0027"},{"line_number":1329,"context_line":"            ring \u003d Ring(ring_file)"},{"line_number":1330,"context_line":"        for dev in ring.devs:"},{"line_number":1331,"context_line":"            if dev is None:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9be2beca_05262c72","line":1328,"updated":"2022-09-06 21:02:25.000000000","message":"I don\u0027t *think* I really have anything against this in this tight context in a short lived cli tool?  I definately like it better than the \"do_validation\u003dFalse\u0027 or whatever in the previous version...","commit_id":"b8ae7fd2863288e50fd3e98e8cb7a4ce37c4e3e5"}]}
