)]}'
{"ironic/conf/ipmi.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"45128616a758da489510c96ead38473be57e3b17","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                       \u0027interval are passed to ipmitool as parameters, and \u0027"},{"line_number":43,"context_line":"                       \u0027ipmitool will do the retries.  When set to False, \u0027"},{"line_number":44,"context_line":"                       \u0027ironic will retry the ipmitool commands. \u0027"},{"line_number":45,"context_line":"                       \u0027Recommended setting is True\u0027)),"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    cfg.BoolOpt(\u0027kill_on_timeout\u0027,"},{"line_number":48,"context_line":"                default\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_3e4a9f7f","line":45,"updated":"2020-05-26 13:43:07.000000000","message":"I wonder if True is actually a good default.. well, at least it does not change the behavior.","commit_id":"6b1415fd7c2d13ecfe35ce0d2dcee5839f53be5d"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"55b07cc95758c34ac4eda5f6d31ecddce3c11477","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                       \u0027interval are passed to ipmitool as parameters, and \u0027"},{"line_number":43,"context_line":"                       \u0027ipmitool will do the retries.  When set to False, \u0027"},{"line_number":44,"context_line":"                       \u0027ironic will retry the ipmitool commands. \u0027"},{"line_number":45,"context_line":"                       \u0027Recommended setting is True\u0027)),"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    cfg.BoolOpt(\u0027kill_on_timeout\u0027,"},{"line_number":48,"context_line":"                default\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_99aac982","line":45,"in_reply_to":"ff570b3c_3e4a9f7f","updated":"2020-05-27 15:47:49.000000000","message":"Yes it is functionally the same with this default, which will make it a good candidate for backporting.  We can make another change to set default to False.","commit_id":"6b1415fd7c2d13ecfe35ce0d2dcee5839f53be5d"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"63c87a4b3e7e755b2e9611da8295e8c0a0ac5155","unresolved":false,"context_lines":[{"line_number":43,"context_line":"                       \u0027ipmitool will do the retries.  When set to False, \u0027"},{"line_number":44,"context_line":"                       \u0027ironic will retry the ipmitool commands. \u0027"},{"line_number":45,"context_line":"                       \u0027Recommended setting is True\u0027)),"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    cfg.BoolOpt(\u0027kill_on_timeout\u0027,"},{"line_number":48,"context_line":"                default\u003dTrue,"},{"line_number":49,"context_line":"                help\u003d_(\u0027Kill `ipmitool` process invoked by ironic to read \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_1e4cfb74","line":46,"updated":"2020-05-26 13:10:46.000000000","message":"nit: remove blank line","commit_id":"6b1415fd7c2d13ecfe35ce0d2dcee5839f53be5d"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"55b07cc95758c34ac4eda5f6d31ecddce3c11477","unresolved":false,"context_lines":[{"line_number":43,"context_line":"                       \u0027ipmitool will do the retries.  When set to False, \u0027"},{"line_number":44,"context_line":"                       \u0027ironic will retry the ipmitool commands. \u0027"},{"line_number":45,"context_line":"                       \u0027Recommended setting is True\u0027)),"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    cfg.BoolOpt(\u0027kill_on_timeout\u0027,"},{"line_number":48,"context_line":"                default\u003dTrue,"},{"line_number":49,"context_line":"                help\u003d_(\u0027Kill `ipmitool` process invoked by ironic to read \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_b977cd3b","line":46,"in_reply_to":"ff570b3c_1e4cfb74","updated":"2020-05-27 15:47:49.000000000","message":"Done","commit_id":"6b1415fd7c2d13ecfe35ce0d2dcee5839f53be5d"}],"ironic/drivers/modules/ipmitool.py":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"1d684ccd4a869c184d47cb3ece1fd3e062860e0f","unresolved":false,"context_lines":[{"line_number":531,"context_line":"                            + CONF.ipmi.additional_retryable_ipmi_errors)"},{"line_number":532,"context_line":"                        if x in str(e)]"},{"line_number":533,"context_line":"                    # If Ironic is doing retries then retry all errors"},{"line_number":534,"context_line":"                    retry_failures \u003d \\"},{"line_number":535,"context_line":"                        err_list or not CONF.ipmi.use_ipmitool_retries"},{"line_number":536,"context_line":"                    if ((time.time() \u003e end_time)"},{"line_number":537,"context_line":"                        or (num_tries \u003d\u003d 0)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_1be12a2b","line":534,"range":{"start_line":534,"start_character":37,"end_line":534,"end_character":38},"updated":"2020-05-19 08:06:12.000000000","message":"for consistency please use () to split lines","commit_id":"4c9609874b8c55ccf1ad9743ac0d606b67fbcbc7"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"4a10eb6ccc2f7358e9add626365cb07e09761350","unresolved":false,"context_lines":[{"line_number":531,"context_line":"                            + CONF.ipmi.additional_retryable_ipmi_errors)"},{"line_number":532,"context_line":"                        if x in str(e)]"},{"line_number":533,"context_line":"                    # If Ironic is doing retries then retry all errors"},{"line_number":534,"context_line":"                    retry_failures \u003d \\"},{"line_number":535,"context_line":"                        err_list or not CONF.ipmi.use_ipmitool_retries"},{"line_number":536,"context_line":"                    if ((time.time() \u003e end_time)"},{"line_number":537,"context_line":"                        or (num_tries \u003d\u003d 0)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_af11d45f","line":534,"range":{"start_line":534,"start_character":37,"end_line":534,"end_character":38},"in_reply_to":"ff570b3c_1be12a2b","updated":"2020-05-19 12:18:14.000000000","message":"Done","commit_id":"4c9609874b8c55ccf1ad9743ac0d606b67fbcbc7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"cb8be7411b78cfbf0628ddbcd0e397080f6c1518","unresolved":false,"context_lines":[{"line_number":479,"context_line":"    num_tries \u003d max((timeout // CONF.ipmi.min_command_interval), 1)"},{"line_number":480,"context_line":""},{"line_number":481,"context_line":"    if _is_option_supported(\u0027timing\u0027) and CONF.ipmi.use_ipmitool_retries:"},{"line_number":482,"context_line":"        args.append(\u0027-R\u0027)"},{"line_number":483,"context_line":"        args.append(str(num_tries))"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"        args.append(\u0027-N\u0027)"},{"line_number":486,"context_line":"        args.append(str(CONF.ipmi.min_command_interval))"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"    extra_args \u003d {}"},{"line_number":489,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ff570b3c_0d2e61f9","line":486,"range":{"start_line":482,"start_character":0,"end_line":486,"end_character":56},"updated":"2020-05-28 11:48:56.000000000","message":"Sorry, I\u0027ve just remembered: the default value is -R 4 -N 1 (according to `man ipmitool`). We may need to do -R 1 to avoid any retries.","commit_id":"033b1535783a183884cc394282a98f264eabce39"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"b98e816a00f7235f4e9a369b02d08f53f15f6247","unresolved":false,"context_lines":[{"line_number":479,"context_line":"    num_tries \u003d max((timeout // CONF.ipmi.min_command_interval), 1)"},{"line_number":480,"context_line":""},{"line_number":481,"context_line":"    if _is_option_supported(\u0027timing\u0027) and CONF.ipmi.use_ipmitool_retries:"},{"line_number":482,"context_line":"        args.append(\u0027-R\u0027)"},{"line_number":483,"context_line":"        args.append(str(num_tries))"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"        args.append(\u0027-N\u0027)"},{"line_number":486,"context_line":"        args.append(str(CONF.ipmi.min_command_interval))"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"    extra_args \u003d {}"},{"line_number":489,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ff570b3c_183a2197","line":486,"range":{"start_line":482,"start_character":0,"end_line":486,"end_character":56},"in_reply_to":"ff570b3c_0d2e61f9","updated":"2020-05-28 12:23:05.000000000","message":"Thanks, nice catch.  Updated to use 1.","commit_id":"033b1535783a183884cc394282a98f264eabce39"}],"ironic/tests/unit/drivers/modules/test_ipmitool.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"45128616a758da489510c96ead38473be57e3b17","unresolved":false,"context_lines":[{"line_number":1045,"context_line":"    @mock.patch.object(ipmi, \u0027_is_option_supported\u0027, autospec\u003dTrue)"},{"line_number":1046,"context_line":"    @mock.patch.object(ipmi, \u0027_make_password_file\u0027, _make_password_file_stub)"},{"line_number":1047,"context_line":"    @mock.patch.object(utils, \u0027execute\u0027, autospec\u003dTrue)"},{"line_number":1048,"context_line":"    def test__exec_ipmitool_with_ironic_retries("},{"line_number":1049,"context_line":"            self, mock_exec, mock_support):"},{"line_number":1050,"context_line":"        args \u003d ["},{"line_number":1051,"context_line":"            \u0027ipmitool\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_de58c357","line":1048,"updated":"2020-05-26 13:43:07.000000000","message":"This test does not actually exercise any retries, does it? Could you add a test with retries?","commit_id":"6b1415fd7c2d13ecfe35ce0d2dcee5839f53be5d"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"55b07cc95758c34ac4eda5f6d31ecddce3c11477","unresolved":false,"context_lines":[{"line_number":1045,"context_line":"    @mock.patch.object(ipmi, \u0027_is_option_supported\u0027, autospec\u003dTrue)"},{"line_number":1046,"context_line":"    @mock.patch.object(ipmi, \u0027_make_password_file\u0027, _make_password_file_stub)"},{"line_number":1047,"context_line":"    @mock.patch.object(utils, \u0027execute\u0027, autospec\u003dTrue)"},{"line_number":1048,"context_line":"    def test__exec_ipmitool_with_ironic_retries("},{"line_number":1049,"context_line":"            self, mock_exec, mock_support):"},{"line_number":1050,"context_line":"        args \u003d ["},{"line_number":1051,"context_line":"            \u0027ipmitool\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_19acf98a","line":1048,"in_reply_to":"ff570b3c_de58c357","updated":"2020-05-27 15:47:49.000000000","message":"Done","commit_id":"6b1415fd7c2d13ecfe35ce0d2dcee5839f53be5d"}],"releasenotes/notes/ipmitool-use_ipmitool_retries-b55b2b8ed5cab603.yaml":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"45128616a758da489510c96ead38473be57e3b17","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add a new ``[ipmi]use_ipmitool_retries`` option. When set to"},{"line_number":5,"context_line":"    ``True`` and timing is supported by ipmitool, the number of"},{"line_number":6,"context_line":"    retries and command interval will be passed to ipmitool so"},{"line_number":7,"context_line":"    that ipmitool will do the retries.  When set to ``False``,"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"ff570b3c_fe34a7fd","line":4,"updated":"2020-05-26 13:43:07.000000000","message":"nit: Adds","commit_id":"6b1415fd7c2d13ecfe35ce0d2dcee5839f53be5d"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"55b07cc95758c34ac4eda5f6d31ecddce3c11477","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add a new ``[ipmi]use_ipmitool_retries`` option. When set to"},{"line_number":5,"context_line":"    ``True`` and timing is supported by ipmitool, the number of"},{"line_number":6,"context_line":"    retries and command interval will be passed to ipmitool so"},{"line_number":7,"context_line":"    that ipmitool will do the retries.  When set to ``False``,"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"ff570b3c_9998096b","line":4,"in_reply_to":"ff570b3c_fe34a7fd","updated":"2020-05-27 15:47:49.000000000","message":"Done","commit_id":"6b1415fd7c2d13ecfe35ce0d2dcee5839f53be5d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"45128616a758da489510c96ead38473be57e3b17","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    ``True`` and timing is supported by ipmitool, the number of"},{"line_number":6,"context_line":"    retries and command interval will be passed to ipmitool so"},{"line_number":7,"context_line":"    that ipmitool will do the retries.  When set to ``False``,"},{"line_number":8,"context_line":"    ironic will do the retries.  Default is ``True``."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"ff570b3c_1e199b87","line":8,"updated":"2020-05-26 13:43:07.000000000","message":"Let us probably explain why it is needed. Even better, let us create an \"issues\" note (known issues) that explains \"if you see the following symptoms, set use_ipmitool_retries to False\".","commit_id":"6b1415fd7c2d13ecfe35ce0d2dcee5839f53be5d"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"55b07cc95758c34ac4eda5f6d31ecddce3c11477","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    ``True`` and timing is supported by ipmitool, the number of"},{"line_number":6,"context_line":"    retries and command interval will be passed to ipmitool so"},{"line_number":7,"context_line":"    that ipmitool will do the retries.  When set to ``False``,"},{"line_number":8,"context_line":"    ironic will do the retries.  Default is ``True``."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"ff570b3c_799b7565","line":8,"in_reply_to":"ff570b3c_1e199b87","updated":"2020-05-27 15:47:49.000000000","message":"Done","commit_id":"6b1415fd7c2d13ecfe35ce0d2dcee5839f53be5d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"cb8be7411b78cfbf0628ddbcd0e397080f6c1518","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    Some BMCs do not support the ``Channel Cipher Suites`` command"},{"line_number":12,"context_line":"    that newer versions of ipmitool use.  These versions of"},{"line_number":13,"context_line":"    ipmitool will resend this command for each ipmitool retry,"},{"line_number":14,"context_line":"    resulting in long response times."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"ff570b3c_4dea19ac","line":14,"updated":"2020-05-28 11:48:56.000000000","message":"nit:\n\n ... Setting ``[ipmi]use_ipmitool_retries`` to ``false`` will avoid this situation by implementing retries on ironic level.","commit_id":"033b1535783a183884cc394282a98f264eabce39"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"b98e816a00f7235f4e9a369b02d08f53f15f6247","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    Some BMCs do not support the ``Channel Cipher Suites`` command"},{"line_number":12,"context_line":"    that newer versions of ipmitool use.  These versions of"},{"line_number":13,"context_line":"    ipmitool will resend this command for each ipmitool retry,"},{"line_number":14,"context_line":"    resulting in long response times."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"ff570b3c_78419d0b","line":14,"in_reply_to":"ff570b3c_4dea19ac","updated":"2020-05-28 12:23:05.000000000","message":"Done","commit_id":"033b1535783a183884cc394282a98f264eabce39"}]}
