)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"187b9e26b9227009edde7ae246ceca11545765b4","unresolved":true,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"IPMI operation method/function using _exec_ipmitool retries"},{"line_number":10,"context_line":"IPMI operation until timeout reaches."},{"line_number":11,"context_line":"This patch add argument to specify the number of IPMI retry."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ifb1c6a7b91e9ece68582cc334dd77a1934055916"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"d3176bf5_b7820bb8","line":11,"updated":"2023-01-10 16:10:00.000000000","message":"So I guess I\u0027m a little confused, given that we already have retry support. What this patch is really doing is allowing an explicit override to be declared and then passed down through by python method callers. Potentially in unsafe locations.\n\nI guess I\u0027m struggling to understand why this was needed when existing ipmi internal retrys[0], or the via an addition to the internal list of errors which we will automatically retry [1].\n\nI guess my over arching concern is that explicit overrides might create conditions where an operator may exhaust resources on the conductor or potentially set BMCs into unsafe conditions, which means we ultimately need to better understand why, and if this is usable. Right now, only python code can leverage this.\n\n[0]: https://github.com/openstack/ironic/blob/master/ironic/conf/ipmi.py#L40\n[1]: https://github.com/openstack/ironic/blob/master/ironic/conf/ipmi.py#L64","commit_id":"735691bd9ae6ae68cb31f47fc310a8b3aea24464"}],"/PATCHSET_LEVEL":[{"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":"96ac52ecc0798a86394f600b8a3f757d49b1dbab","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"679ad9c7_d9546322","updated":"2023-01-10 23:17:03.000000000","message":"This patch, as described in the commit message and as written, is not acceptable. We can\u0027t have python API for dictating how often to retry when we expose the values that calculate into that in configuration.\n\nIf you need (as mentioned in one of the other iRMC patches) the ability to do a ipmi request *with no retries at all*, that\u0027s acceptable, but it should have a default value of \"True\" and IMO should only be set in the few places you don\u0027t want retries -- like when checking to see if the IPMI interface is enabled at all.","commit_id":"735691bd9ae6ae68cb31f47fc310a8b3aea24464"},{"author":{"_account_id":30566,"name":"Vanou Ishii","email":"ishii.vanou@fujitsu.com","username":"vanou"},"change_message_id":"5a9beecd7e0b6995f196f97abdbb577cd4532f53","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"14481ade_d751ffbc","updated":"2022-12-19 12:18:27.000000000","message":"recheck","commit_id":"735691bd9ae6ae68cb31f47fc310a8b3aea24464"},{"author":{"_account_id":30566,"name":"Vanou Ishii","email":"ishii.vanou@fujitsu.com","username":"vanou"},"change_message_id":"0406f8f2b2568b9d1e2457c4ad13a58da0b2d5a3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"60831ad0_59c4d5d3","updated":"2022-12-21 08:27:26.000000000","message":"recheck","commit_id":"735691bd9ae6ae68cb31f47fc310a8b3aea24464"},{"author":{"_account_id":30566,"name":"Vanou Ishii","email":"ishii.vanou@fujitsu.com","username":"vanou"},"change_message_id":"f151f60ccb0d85913364a385a8c3a220494d2532","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"696d5895_4b98513d","updated":"2022-12-31 02:44:18.000000000","message":"recheck","commit_id":"735691bd9ae6ae68cb31f47fc310a8b3aea24464"},{"author":{"_account_id":30566,"name":"Vanou Ishii","email":"ishii.vanou@fujitsu.com","username":"vanou"},"change_message_id":"b14c8e660b300ca070f3927601738d34a77cb268","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b77b8eee_81d587ef","updated":"2022-12-20 10:40:38.000000000","message":"recheck","commit_id":"735691bd9ae6ae68cb31f47fc310a8b3aea24464"},{"author":{"_account_id":30566,"name":"Vanou Ishii","email":"ishii.vanou@fujitsu.com","username":"vanou"},"change_message_id":"6af0f4b4efb503f6cc22cf56271050fd79c5403a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"bb2d21c4_a1df454d","updated":"2022-12-21 00:35:23.000000000","message":"recheck\n\nBased on past test result, this failure is not due to this patch change.","commit_id":"735691bd9ae6ae68cb31f47fc310a8b3aea24464"},{"author":{"_account_id":30566,"name":"Vanou Ishii","email":"ishii.vanou@fujitsu.com","username":"vanou"},"change_message_id":"57f03d137beaece725b9f2332698273ca7020dac","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3913abf5_91f35968","updated":"2022-12-20 13:21:40.000000000","message":"recheck\n\nI think this Zuul failure is not caused by this patch\u0027s change because failed Zuul job is different between recheck.","commit_id":"735691bd9ae6ae68cb31f47fc310a8b3aea24464"}],"ironic/drivers/modules/ipmitool.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"0be13b8c58e2fbd8bd3cd08edeec3438f846eb87","unresolved":true,"context_lines":[{"line_number":598,"context_line":"    :param num_tries: Number of attempts of IPMI operation. IPMI operation"},{"line_number":599,"context_line":"        will be retried until timeout reaches or number of attempts specified"},{"line_number":600,"context_line":"        through this is done. If set to 0, retries IPMI operation till timeout"},{"line_number":601,"context_line":"        reaches. Default timeout value is set in [ipmi] command_retry_timeout"},{"line_number":602,"context_line":"    :returns: (stdout, stderr) from executing the command."},{"line_number":603,"context_line":"    :raises: PasswordFileFailedToCreate from creating or writing to the"},{"line_number":604,"context_line":"             temporary file."}],"source_content_type":"text/x-python","patch_set":2,"id":"f5fb750c_a2e7c110","line":601,"updated":"2023-01-10 16:18:55.000000000","message":"This is being driven by https://review.opendev.org/c/openstack/ironic/+/865075/10/ironic/drivers/modules/irmc/management.py#303 but it looks like we\u0027re just needing a generalized \"don\u0027t retry\" option instead of a numeric value to override the logic. What do you think?","commit_id":"735691bd9ae6ae68cb31f47fc310a8b3aea24464"},{"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":"96ac52ecc0798a86394f600b8a3f757d49b1dbab","unresolved":true,"context_lines":[{"line_number":598,"context_line":"    :param num_tries: Number of attempts of IPMI operation. IPMI operation"},{"line_number":599,"context_line":"        will be retried until timeout reaches or number of attempts specified"},{"line_number":600,"context_line":"        through this is done. If set to 0, retries IPMI operation till timeout"},{"line_number":601,"context_line":"        reaches. Default timeout value is set in [ipmi] command_retry_timeout"},{"line_number":602,"context_line":"    :returns: (stdout, stderr) from executing the command."},{"line_number":603,"context_line":"    :raises: PasswordFileFailedToCreate from creating or writing to the"},{"line_number":604,"context_line":"             temporary file."}],"source_content_type":"text/x-python","patch_set":2,"id":"c2e12748_470f2bd1","line":601,"in_reply_to":"f5fb750c_a2e7c110","updated":"2023-01-10 23:17:03.000000000","message":"++ Given we allow operators to configure values around retrying; we should make this a boolean of \"retry\" or \"don\u0027t retry\", so that if we retry, we respect the operator configuration.","commit_id":"735691bd9ae6ae68cb31f47fc310a8b3aea24464"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"187b9e26b9227009edde7ae246ceca11545765b4","unresolved":true,"context_lines":[{"line_number":1702,"context_line":"        :param task: a task from TaskManager"},{"line_number":1703,"context_line":"        :param num_tries: Number of attempts of IPMI operation. IPMI operation"},{"line_number":1704,"context_line":"            will be retried until timeout reaches or number of attempts"},{"line_number":1705,"context_line":"            specified through this is done. If set to 0, retries IPMI operation"},{"line_number":1706,"context_line":"            till timeout reaches. Default timeout value is set in"},{"line_number":1707,"context_line":"            [ipmi] command_retry_timeout"},{"line_number":1708,"context_line":"        :raises: InvalidParameterValue if required ipmi parameters are missing"}],"source_content_type":"text/x-python","patch_set":2,"id":"0e502e2a_47154fc1","line":1705,"range":{"start_line":1705,"start_character":44,"end_line":1705,"end_character":56},"updated":"2023-01-10 16:10:00.000000000","message":"I\u0027d revise this text, the python method default is 0.","commit_id":"735691bd9ae6ae68cb31f47fc310a8b3aea24464"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"187b9e26b9227009edde7ae246ceca11545765b4","unresolved":true,"context_lines":[{"line_number":1704,"context_line":"            will be retried until timeout reaches or number of attempts"},{"line_number":1705,"context_line":"            specified through this is done. If set to 0, retries IPMI operation"},{"line_number":1706,"context_line":"            till timeout reaches. Default timeout value is set in"},{"line_number":1707,"context_line":"            [ipmi] command_retry_timeout"},{"line_number":1708,"context_line":"        :raises: InvalidParameterValue if required ipmi parameters are missing"},{"line_number":1709,"context_line":"        :raises: PasswordFileFailedToCreate if unable to create a file"},{"line_number":1710,"context_line":"                 containing the password"}],"source_content_type":"text/x-python","patch_set":2,"id":"6b13e58a_6660cf79","line":1707,"updated":"2023-01-10 16:10:00.000000000","message":"from a python api standpoint, this is confusing. How does the ipmi command retry timeout relevant here? It *is* the overall timeout for all ipmi commands, it just seems weird to see it mentioned here. When reading, my mind also immediately thinks this implies the default.\n\nI\u0027d honestly keep it more vague. \":param num_tries: Number of IPMI operation command invocation retry attempts. Defaults to 0.\"","commit_id":"735691bd9ae6ae68cb31f47fc310a8b3aea24464"},{"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":"96ac52ecc0798a86394f600b8a3f757d49b1dbab","unresolved":true,"context_lines":[{"line_number":1704,"context_line":"            will be retried until timeout reaches or number of attempts"},{"line_number":1705,"context_line":"            specified through this is done. If set to 0, retries IPMI operation"},{"line_number":1706,"context_line":"            till timeout reaches. Default timeout value is set in"},{"line_number":1707,"context_line":"            [ipmi] command_retry_timeout"},{"line_number":1708,"context_line":"        :raises: InvalidParameterValue if required ipmi parameters are missing"},{"line_number":1709,"context_line":"        :raises: PasswordFileFailedToCreate if unable to create a file"},{"line_number":1710,"context_line":"                 containing the password"}],"source_content_type":"text/x-python","patch_set":2,"id":"960c0a19_88333b1d","line":1707,"in_reply_to":"6b13e58a_6660cf79","updated":"2023-01-10 23:17:03.000000000","message":"This should not even be exposed here, I think... or really throughout. Lets leave all the stuff about how and how often to retry in the config, with a toggle to \"not retry\" for cases where you need to do something you don\u0027t want retried (e.g. checking if IPMI is even enabled).","commit_id":"735691bd9ae6ae68cb31f47fc310a8b3aea24464"}],"releasenotes/notes/add-ipmi-argument-to-explicitly-specify-retry-num-e9818c14466827a1.yaml":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"187b9e26b9227009edde7ae246ceca11545765b4","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add argument to IPMI modules functions and methods to explicitly specify"},{"line_number":5,"context_line":"    the number of IPMI attempt. If not specified (set to default value 0),"},{"line_number":6,"context_line":"    IPMI operation will be tried till timeout reaches as before this commit"},{"line_number":7,"context_line":"    enters."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"b81a5981_a637c42f","line":5,"range":{"start_line":5,"start_character":18,"end_line":5,"end_character":30},"updated":"2023-01-10 16:10:00.000000000","message":"s/IPMI attempt/IPMI retry attempt(s)/ ?","commit_id":"735691bd9ae6ae68cb31f47fc310a8b3aea24464"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"187b9e26b9227009edde7ae246ceca11545765b4","unresolved":true,"context_lines":[{"line_number":4,"context_line":"    Add argument to IPMI modules functions and methods to explicitly specify"},{"line_number":5,"context_line":"    the number of IPMI attempt. If not specified (set to default value 0),"},{"line_number":6,"context_line":"    IPMI operation will be tried till timeout reaches as before this commit"},{"line_number":7,"context_line":"    enters."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"400fafe5_b4501a84","line":7,"updated":"2023-01-10 16:10:00.000000000","message":"Realistically, the feature is a python API feature, not an end user feature, so this is a little confusing reading wise. Also, I\u0027m worried this is going to be confused with the existing retry support. https://github.com/openstack/ironic/blob/master/ironic/conf/ipmi.py#L40","commit_id":"735691bd9ae6ae68cb31f47fc310a8b3aea24464"}]}
