From a7445d9f85cd06b7f919714efebe8ada0f2c25e7 Mon Sep 17 00:00:00 2001
From: Bob Fournier <bfournie@redhat.com>
Date: Fri, 10 Jul 2020 09:36:57 -0400
Subject: [PATCH] Use min_command_interval when ironic does IPMI retries

For certain BMCs the default of 1 second is too short for the ipmitool
minimum command interval (-N).  The configured
``[ipmi]min_command_interval`` should be used.

Story: 2007914
Task: 40317

Change-Id: I07f17a7321582e9829ac422efb51b571a17c5ca8
---
 ironic/drivers/modules/ipmitool.py                          | 5 +----
 ironic/tests/unit/drivers/modules/test_ipmitool.py          | 2 +-
 .../ipmi-retries-min-command-interval-070cd7eff5eb74dd.yaml | 6 ++++++
 3 files changed, 8 insertions(+), 5 deletions(-)
 create mode 100644 releasenotes/notes/ipmi-retries-min-command-interval-070cd7eff5eb74dd.yaml

diff --git a/ironic/drivers/modules/ipmitool.py b/ironic/drivers/modules/ipmitool.py
index 4dfa6ce59d..92b9500e6b 100644
--- a/ironic/drivers/modules/ipmitool.py
+++ b/ironic/drivers/modules/ipmitool.py
@@ -486,10 +486,7 @@ def _exec_ipmitool(driver_info, command, check_exit_code=None,
             args.append('1')
 
         args.append('-N')
-        if CONF.ipmi.use_ipmitool_retries:
-            args.append(str(CONF.ipmi.min_command_interval))
-        else:
-            args.append('1')
+        args.append(str(CONF.ipmi.min_command_interval))
 
     extra_args = {}
 
diff --git a/ironic/tests/unit/drivers/modules/test_ipmitool.py b/ironic/tests/unit/drivers/modules/test_ipmitool.py
index ad41d0ba16..f01c2f4248 100644
--- a/ironic/tests/unit/drivers/modules/test_ipmitool.py
+++ b/ironic/tests/unit/drivers/modules/test_ipmitool.py
@@ -1057,7 +1057,7 @@ class IPMIToolPrivateMethodTestCase(
             '-U', self.info['username'],
             '-v',
             '-R', '1',
-            '-N', '1',
+            '-N', '5',
             '-f', awesome_password_filename,
             'A', 'B', 'C',
         ]
diff --git a/releasenotes/notes/ipmi-retries-min-command-interval-070cd7eff5eb74dd.yaml b/releasenotes/notes/ipmi-retries-min-command-interval-070cd7eff5eb74dd.yaml
new file mode 100644
index 0000000000..413224b028
--- /dev/null
+++ b/releasenotes/notes/ipmi-retries-min-command-interval-070cd7eff5eb74dd.yaml
@@ -0,0 +1,6 @@
+---
+fixes:
+  - |
+    When Ironic is doing IPMI retries the configured ``min_command_interval``
+    should be used instead of a default value of ``1``, which may be too short
+    for some BMCs.