)]}'
{"swift/cli/manage_shard_ranges.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d8074f341236981e4f641c190c41f3524cf4ffb2","unresolved":true,"context_lines":[{"line_number":918,"context_line":"        print(\u0027Error opening config file %s: %s\u0027 % (args.conf_file, exc),"},{"line_number":919,"context_line":"              file\u003dsys.stderr)"},{"line_number":920,"context_line":"        return EXIT_ERROR"},{"line_number":921,"context_line":"    except (TypeError, ValueError) as exc:"},{"line_number":922,"context_line":"        print(\u0027Error loading config: %s\u0027 % exc, file\u003dsys.stderr)"},{"line_number":923,"context_line":"        return EXIT_INVALID_ARGS"},{"line_number":924,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"76222d88_12e13dab","line":921,"updated":"2021-06-28 19:57:08.000000000","message":"Can we drop this block now?","commit_id":"cd1e59f372331e5cca4480d9f16f697a23ad8cde"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"c9b42108c3f9453a38b6b0967b0a23509916f764","unresolved":true,"context_lines":[{"line_number":918,"context_line":"        print(\u0027Error opening config file %s: %s\u0027 % (args.conf_file, exc),"},{"line_number":919,"context_line":"              file\u003dsys.stderr)"},{"line_number":920,"context_line":"        return EXIT_ERROR"},{"line_number":921,"context_line":"    except (TypeError, ValueError) as exc:"},{"line_number":922,"context_line":"        print(\u0027Error loading config: %s\u0027 % exc, file\u003dsys.stderr)"},{"line_number":923,"context_line":"        return EXIT_INVALID_ARGS"},{"line_number":924,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"0b4bb3cf_e1df1f27","line":921,"in_reply_to":"76222d88_12e13dab","updated":"2021-07-14 22:13:38.000000000","message":"No, and tests exercise it:\n\n ERROR: test_conf_file_invalid (test.unit.cli.test_manage_shard_ranges.TestManageShardRanges)\n ----------------------------------------------------------------------\n Traceback (most recent call last):\n   File \".../swift/common/utils.py\", line 474, in config_positive_int_value\n     raise ValueError()\n ValueError\n \n During handling of the above exception, another exception occurred:\n \n Traceback (most recent call last):\n   File \".../swift/container/sharder.py\", line 595, in get_val\n     return validator(conf.get(key, default))\n   File \".../swift/common/utils.py\", line 476, in config_positive_int_value\n     raise ValueError(\nValueError: Config option must be an positive int number, not \"0\".\n \n During handling of the above exception, another exception occurred:\n \n Traceback (most recent call last):\n   File \".../test/unit/cli/test_manage_shard_ranges.py\", line 382, in test_conf_file_invalid\n     ret \u003d main([db_file, \u0027--config\u0027, conf_file, \u0027compact\u0027])\n   File \".../swift/cli/manage_shard_ranges.py\", line 923, in main\n     conf_args \u003d ContainerSharderConf(conf)\n   File \".../swift/container/sharder.py\", line 599, in __init__\n     self.shard_container_threshold \u003d get_val(\n   File \".../swift/container/sharder.py\", line 597, in get_val\n     raise ValueError(\u0027Error setting %s: %s\u0027 % (key, err))\n ValueError: Error setting shard_container_threshold: Config option must be an positive int number, not \"0\".","commit_id":"cd1e59f372331e5cca4480d9f16f697a23ad8cde"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d8074f341236981e4f641c190c41f3524cf4ffb2","unresolved":true,"context_lines":[{"line_number":925,"context_line":"    for k, v in vars(args).items():"},{"line_number":926,"context_line":"        # set any un-set cli args from conf_args"},{"line_number":927,"context_line":"        if v is USE_SHARDER_DEFAULT:"},{"line_number":928,"context_line":"            setattr(args, k, getattr(conf_args, k))"},{"line_number":929,"context_line":""},{"line_number":930,"context_line":"    try:"},{"line_number":931,"context_line":"        ContainerSharderConf.validate_conf(args)"}],"source_content_type":"text/x-python","patch_set":2,"id":"dc5c4f6a_46458792","line":928,"updated":"2021-06-28 19:57:08.000000000","message":"So this subbing in of calculated defaults is why we need to split __init__ from validate, yeah?","commit_id":"cd1e59f372331e5cca4480d9f16f697a23ad8cde"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"c9b42108c3f9453a38b6b0967b0a23509916f764","unresolved":true,"context_lines":[{"line_number":920,"context_line":"            conf \u003d readconf(args.conf_file, \u0027container-sharder\u0027)"},{"line_number":921,"context_line":"        conf.update(dict((k, v) for k, v in vars(args).items()"},{"line_number":922,"context_line":"                         if v !\u003d USE_SHARDER_DEFAULT))"},{"line_number":923,"context_line":"        conf_args \u003d ContainerSharderConf(conf)"},{"line_number":924,"context_line":"    except (OSError, IOError) as exc:"},{"line_number":925,"context_line":"        print(\u0027Error opening config file %s: %s\u0027 % (args.conf_file, exc),"},{"line_number":926,"context_line":"              file\u003dsys.stderr)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ed9f0f36_beef3e0f","line":923,"range":{"start_line":923,"start_character":20,"end_line":923,"end_character":40},"updated":"2021-07-14 22:13:38.000000000","message":"I think I hadn\u0027t quite realized -- we only use this to back-fill the args Namespace, we never actually pass the ContainerSharderConf object around... interesting.","commit_id":"9b94c278f19781467cc86df4298011f47667e997"}]}
