)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8b3f0d1588d927444d3d53122e00a3fe2a4532a2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"9bcfc940_d94e6944","updated":"2026-04-08 16:43:14.000000000","message":"Couple of small nits. I suspect most of these apply to already past and future patches in this series so they likely don\u0027t need to be fixed here. Might be worth fixing in a follow-up at the end of the series though","commit_id":"08fd279c69555494165f27287ad32a4cbc34866e"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"8a5e01e682ab8f08894d77304dfd6acab5a02260","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"b81ae14c_61a6dc07","updated":"2026-04-15 15:52:29.000000000","message":"Reapplying my +2. I paired with Karan on this to resolve PR feedback and uploaded a rebase-squashed version but the primary code was still written by him.","commit_id":"fbebc2f5c74836fe2a39cea487be54e755674e57"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"c9b24e0fc9df34d858c28f549ed12845fe8cc231","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c1272718_91c09f9b","updated":"2026-04-11 14:28:02.000000000","message":"Recheck post failure","commit_id":"fbebc2f5c74836fe2a39cea487be54e755674e57"}],"ironicclient/common/utils.py":[{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"7415ab34bbc7b463d4619c43890ed4c03e3f0255","unresolved":true,"context_lines":[{"line_number":454,"context_line":""},{"line_number":455,"context_line":""},{"line_number":456,"context_line":"def handle_json_arg("},{"line_number":457,"context_line":"    json_arg: str | None,"},{"line_number":458,"context_line":"    info_desc: str,"},{"line_number":459,"context_line":") -\u003e list[Any] | dict[str, Any] | None:"},{"line_number":460,"context_line":"    \"\"\"Read a JSON argument from stdin, file or string."}],"source_content_type":"text/x-python","patch_set":3,"id":"e8e09f33_00e6a9c5","line":457,"updated":"2026-04-08 16:54:47.000000000","message":"The doc comment below no longer matches the API","commit_id":"98bfdeb7ed09ff0b9c750b75b0b8ae0e1959a4b3"}],"ironicclient/osc/v1/baremetal_node.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"744577e5a35cfdc1e9868c8a2d39f81ea626a616","unresolved":true,"context_lines":[{"line_number":52,"context_line":"    \"being used, network configuration may or may not been served to the \""},{"line_number":53,"context_line":"    \"node for offline network configuration.\")"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"SUPPORTED_INTERFACES: list[str] \u003d ["},{"line_number":56,"context_line":"    \u0027bios\u0027, \u0027boot\u0027, \u0027console\u0027, \u0027deploy\u0027, \u0027firmware\u0027,"},{"line_number":57,"context_line":"    \u0027inspect\u0027, \u0027management\u0027, \u0027network\u0027, \u0027power\u0027, \u0027raid\u0027,"},{"line_number":58,"context_line":"    \u0027rescue\u0027, \u0027storage\u0027, \u0027vendor\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"8971df7b_d174134f","line":55,"updated":"2026-04-08 17:00:38.000000000","message":"nit: shouldn\u0027t be needed?","commit_id":"98bfdeb7ed09ff0b9c750b75b0b8ae0e1959a4b3"}],"ironicclient/osc/v1/baremetal_runbook.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8b3f0d1588d927444d3d53122e00a3fe2a4532a2","unresolved":true,"context_lines":[{"line_number":40,"context_line":"class CreateBaremetalRunbook(command.ShowOne):"},{"line_number":41,"context_line":"    \"\"\"Create a new runbook\"\"\""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    log: logging.Logger \u003d logging.getLogger("},{"line_number":44,"context_line":"        __name__ + \".CreateBaremetalRunbook\")"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def get_parser(self, prog_name: str) -\u003e command.CliffArgumentParser:"},{"line_number":47,"context_line":"        parser: command.CliffArgumentParser"}],"source_content_type":"text/x-python","patch_set":2,"id":"6526b23c_47540b68","line":44,"range":{"start_line":43,"start_character":0,"end_line":44,"end_character":45},"updated":"2026-04-08 16:43:14.000000000","message":"nit: This type should be inferred and should not be necessary\n\n```suggestion\n    log: logging.Logger \u003d logging.getLogger(\n        __name__ + \".CreateBaremetalRunbook\")\n```\n\nSame comments below.","commit_id":"08fd279c69555494165f27287ad32a4cbc34866e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8b3f0d1588d927444d3d53122e00a3fe2a4532a2","unresolved":true,"context_lines":[{"line_number":44,"context_line":"        __name__ + \".CreateBaremetalRunbook\")"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def get_parser(self, prog_name: str) -\u003e command.CliffArgumentParser:"},{"line_number":47,"context_line":"        parser: command.CliffArgumentParser"},{"line_number":48,"context_line":"        parser \u003d super().get_parser(prog_name)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":2,"id":"6ef2e912_78f04453","line":47,"updated":"2026-04-08 16:43:14.000000000","message":"Ditto. Also, I believe this is now wrong since https://review.opendev.org/c/openstack/requirements/+/983697 merged","commit_id":"08fd279c69555494165f27287ad32a4cbc34866e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"744577e5a35cfdc1e9868c8a2d39f81ea626a616","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        __name__ + \".CreateBaremetalRunbook\")"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def get_parser(self, prog_name: str) -\u003e command.CliffArgumentParser:"},{"line_number":47,"context_line":"        parser: command.CliffArgumentParser"},{"line_number":48,"context_line":"        parser \u003d super().get_parser(prog_name)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":2,"id":"6bf6b3f2_1f1c453e","line":47,"in_reply_to":"6ef2e912_78f04453","updated":"2026-04-08 17:00:38.000000000","message":"Done","commit_id":"08fd279c69555494165f27287ad32a4cbc34866e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8b3f0d1588d927444d3d53122e00a3fe2a4532a2","unresolved":true,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        steps \u003d utils.handle_json_arg(parsed_args.steps, \u0027runbook steps\u0027)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        field_list: list[str] \u003d [\u0027name\u0027, \u0027uuid\u0027, \u0027owner\u0027, \u0027public\u0027, \u0027extra\u0027]"},{"line_number":99,"context_line":"        fields \u003d dict((k, v) for (k, v) in vars(parsed_args).items()"},{"line_number":100,"context_line":"                      if k in field_list and v is not None)"},{"line_number":101,"context_line":"        if parsed_args.public is not None:"}],"source_content_type":"text/x-python","patch_set":2,"id":"59323666_c8fff128","line":98,"updated":"2026-04-08 16:43:14.000000000","message":"Again, another one that can be inferred\n\n```suggestion\n        field_list \u003d [\u0027name\u0027, \u0027uuid\u0027, \u0027owner\u0027, \u0027public\u0027, \u0027extra\u0027]\n```","commit_id":"08fd279c69555494165f27287ad32a4cbc34866e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8b3f0d1588d927444d3d53122e00a3fe2a4532a2","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        data \u003d dict([(f, getattr(runbook, f, \u0027\u0027)) for f in"},{"line_number":109,"context_line":"                     res_fields.RUNBOOK_DETAILED_RESOURCE.fields])"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        return cast("},{"line_number":112,"context_line":"            tuple[tuple[str, ...], tuple[Any, ...]],"},{"line_number":113,"context_line":"            self.dict2columns(data),"},{"line_number":114,"context_line":"        )"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"class ShowBaremetalRunbook(command.ShowOne):"}],"source_content_type":"text/x-python","patch_set":2,"id":"e6f799cc_1d1f06c3","line":114,"range":{"start_line":110,"start_character":1,"end_line":114,"end_character":9},"updated":"2026-04-08 16:43:14.000000000","message":"I was going to comment again that this can be fixed by exploding the zip output into two variables but the patch that you\u0027ve fixed this comes at the end of the series","commit_id":"08fd279c69555494165f27287ad32a4cbc34866e"}]}
