)]}'
{"ironic/cmd/ipmitool_wrapper.py":[{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"5b23fe685ac06c1cf1262bb1380611b408d88a19","unresolved":false,"context_lines":[{"line_number":24,"context_line":"def main():"},{"line_number":25,"context_line":"    # Split the command line on \u0027--\u0027 into arguments for our script and the"},{"line_number":26,"context_line":"    # ipmitool command itself."},{"line_number":27,"context_line":"    ours \u003d True"},{"line_number":28,"context_line":"    our_args \u003d []"},{"line_number":29,"context_line":"    ipmitool_args \u003d []"},{"line_number":30,"context_line":"    for arg in sys.argv[1:]:"},{"line_number":31,"context_line":"        if arg \u003d\u003d \u0027--\u0027:"},{"line_number":32,"context_line":"            ours \u003d False"},{"line_number":33,"context_line":"            continue"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        if ours:"},{"line_number":36,"context_line":"            our_args.append(arg)"},{"line_number":37,"context_line":"        else:"},{"line_number":38,"context_line":"            ipmitool_args.append(arg)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    CONF.register_opts(options, group\u003d\u0027console\u0027)"},{"line_number":41,"context_line":"    CONF(our_args, project\u003d\u0027ironic\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_acfd1b6f","line":38,"range":{"start_line":27,"start_character":2,"end_line":38,"end_character":37},"updated":"2019-03-12 12:44:14.000000000","message":"nit: may be\n\ntry:\n    idx \u003d sys.argv.index(\u0027--\u0027)\n\n    our_args \u003d sys.argv[:idx]\n    ipmitool_args \u003d sys.argv[idx:]\n\nexcept ValueError:\n    our_args \u003d sys.argv","commit_id":"53aaed355a57881cebd5ea0984d6b5fc83d7786b"},{"author":{"_account_id":8745,"name":"Lars Kellogg-Stedman","email":"lars@redhat.com","username":"lars"},"change_message_id":"225b1becca68fb2a8a630c435a6a8734f5da54be","unresolved":false,"context_lines":[{"line_number":24,"context_line":"def main():"},{"line_number":25,"context_line":"    # Split the command line on \u0027--\u0027 into arguments for our script and the"},{"line_number":26,"context_line":"    # ipmitool command itself."},{"line_number":27,"context_line":"    ours \u003d True"},{"line_number":28,"context_line":"    our_args \u003d []"},{"line_number":29,"context_line":"    ipmitool_args \u003d []"},{"line_number":30,"context_line":"    for arg in sys.argv[1:]:"},{"line_number":31,"context_line":"        if arg \u003d\u003d \u0027--\u0027:"},{"line_number":32,"context_line":"            ours \u003d False"},{"line_number":33,"context_line":"            continue"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        if ours:"},{"line_number":36,"context_line":"            our_args.append(arg)"},{"line_number":37,"context_line":"        else:"},{"line_number":38,"context_line":"            ipmitool_args.append(arg)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    CONF.register_opts(options, group\u003d\u0027console\u0027)"},{"line_number":41,"context_line":"    CONF(our_args, project\u003d\u0027ironic\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_77e860e1","line":38,"range":{"start_line":27,"start_character":2,"end_line":38,"end_character":37},"in_reply_to":"5fc1f717_acfd1b6f","updated":"2019-03-12 13:18:11.000000000","message":"Sure.","commit_id":"53aaed355a57881cebd5ea0984d6b5fc83d7786b"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"b2874338db979baecfa8ae8315fd3f43a3331413","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    if ("},{"line_number":44,"context_line":"            CONF.console.force_sol_deactivate and"},{"line_number":45,"context_line":"            ipmitool_args[-2:] \u003d\u003d [\u0027sol\u0027, \u0027activate\u0027]"},{"line_number":46,"context_line":"    ):"},{"line_number":47,"context_line":"        cmd \u003d ipmitool_args[:-2] + [\u0027sol\u0027, \u0027deactivate\u0027]"},{"line_number":48,"context_line":"        with open(os.devnull, \u0027w+\u0027) as null:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_146b07f1","line":45,"updated":"2019-03-13 05:41:08.000000000","message":"nit: the syntax formally is this:\n\n  ipmitool sol activate [usesolkeepalive | nokeepalive] [instance\u003d\u003cnumber\u003e]\n\nSo`-2:` may cut off the wrong piece it seems...","commit_id":"53aaed355a57881cebd5ea0984d6b5fc83d7786b"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"5b23fe685ac06c1cf1262bb1380611b408d88a19","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        with open(os.devnull, \u0027w+\u0027) as null:"},{"line_number":49,"context_line":"            subprocess.call(cmd, stdout\u003dnull, stderr\u003dnull, stdin\u003dnull)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    os.execvp(ipmitool_args[0], ipmitool_args)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_ac32fb5c","line":51,"updated":"2019-03-12 12:44:14.000000000","message":"Is this called unconditionally?","commit_id":"53aaed355a57881cebd5ea0984d6b5fc83d7786b"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"b2874338db979baecfa8ae8315fd3f43a3331413","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        with open(os.devnull, \u0027w+\u0027) as null:"},{"line_number":49,"context_line":"            subprocess.call(cmd, stdout\u003dnull, stderr\u003dnull, stdin\u003dnull)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    os.execvp(ipmitool_args[0], ipmitool_args)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_149d4709","line":51,"in_reply_to":"5fc1f717_77d14023","updated":"2019-03-13 05:41:08.000000000","message":"Makes sense, I misread the indentation, sorry.","commit_id":"53aaed355a57881cebd5ea0984d6b5fc83d7786b"},{"author":{"_account_id":8745,"name":"Lars Kellogg-Stedman","email":"lars@redhat.com","username":"lars"},"change_message_id":"225b1becca68fb2a8a630c435a6a8734f5da54be","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        with open(os.devnull, \u0027w+\u0027) as null:"},{"line_number":49,"context_line":"            subprocess.call(cmd, stdout\u003dnull, stderr\u003dnull, stdin\u003dnull)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    os.execvp(ipmitool_args[0], ipmitool_args)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_77d14023","line":51,"in_reply_to":"5fc1f717_ac32fb5c","updated":"2019-03-12 13:18:11.000000000","message":"I\u0027m not sure I follow your question here. This is called unconditionally, yes, because it represents whatever command the caller was actually trying to run.  The exit code is returned to the caller.","commit_id":"53aaed355a57881cebd5ea0984d6b5fc83d7786b"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"56a3e61614abe73943f969d2d5e8457516f1e706","unresolved":false,"context_lines":[{"line_number":29,"context_line":"CONF \u003d cfg.CONF"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"options \u003d ["},{"line_number":32,"context_line":"    cfg.BoolOpt(\u0027force-sol-deactivate\u0027,"},{"line_number":33,"context_line":"                default\u003dTrue,"},{"line_number":34,"context_line":"                help\u003d_(\u0027Deactivating sol session before starting a new one\u0027))"},{"line_number":35,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_b99d9fbc","line":32,"updated":"2019-03-21 14:11:25.000000000","message":"nit: all other config options use underscores (force_sol_deactivate).","commit_id":"fe47beb7ee9f3973f8f1dfc4cd2571ec74cc11d5"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"56a3e61614abe73943f969d2d5e8457516f1e706","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    cfg.BoolOpt(\u0027force-sol-deactivate\u0027,"},{"line_number":33,"context_line":"                default\u003dTrue,"},{"line_number":34,"context_line":"                help\u003d_(\u0027Deactivating sol session before starting a new one\u0027))"},{"line_number":35,"context_line":"]"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"def main():"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_39644fe5","line":35,"updated":"2019-03-21 14:11:25.000000000","message":"Hm, can we define this in ironic/conf/console.py instead? If we define it here, there\u0027s some things we\u0027ll need to update to have it published in docs, etc. Plus it just makes it hard to find. :)\n\nOr do we explicitly not want to document this as an ironic config, and have it only used in this script? if so, this seems fine, and you can ignore the nit above, too :)","commit_id":"fe47beb7ee9f3973f8f1dfc4cd2571ec74cc11d5"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"56a3e61614abe73943f969d2d5e8457516f1e706","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    if ("},{"line_number":49,"context_line":"            CONF.console.force_sol_deactivate and"},{"line_number":50,"context_line":"            ipmitool_args[-2:] \u003d\u003d [\u0027sol\u0027, \u0027activate\u0027]"},{"line_number":51,"context_line":"    ):"},{"line_number":52,"context_line":"        cmd \u003d ipmitool_args[:-2] + [\u0027sol\u0027, \u0027deactivate\u0027]"},{"line_number":53,"context_line":"        with open(os.devnull, \u0027w+\u0027) as null:"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_59cb5ba4","line":50,"updated":"2019-03-21 14:11:25.000000000","message":"I guess I worry about etingof\u0027s comment on PS1 here, too. We control all of these calls, so it\u0027s fine for now, it just may be buggy later.","commit_id":"fe47beb7ee9f3973f8f1dfc4cd2571ec74cc11d5"}]}
