summaryrefslogtreecommitdiff
path: root/ironic/tests
diff options
context:
space:
mode:
authorDmitry Tantsur <dtantsur@protonmail.com>2020-09-18 17:30:15 +0200
committerDmitry Tantsur <dtantsur@protonmail.com>2020-09-18 17:34:35 +0200
commite6e774f524735cd33863d079e536a668345af262 (patch)
tree46f07b81bece865b80fcacc2fdec50a9749ad988 /ironic/tests
parent4633fe937dc12b6cf8a4158d6339bd3b8cba4c0f (diff)
downloadironic-e6e774f524735cd33863d079e536a668345af262.tar.gz
Do not retry locking when heartbeating
IPA will retry any heartbeats anyway, by not retrying on the ironic side, we 1) make heartbeats quicker, 2) avoid several heartbeats queuing up on a really busy systems with short heartbeating interval. Change-Id: If030340a780c759f6433d37b6423d17b72e1a548 Story: #2008167 Task: #40918
Diffstat (limited to 'ironic/tests')
-rw-r--r--ironic/tests/unit/conductor/test_task_manager.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/ironic/tests/unit/conductor/test_task_manager.py b/ironic/tests/unit/conductor/test_task_manager.py
index 8a57d7dea..e49982d59 100644
--- a/ironic/tests/unit/conductor/test_task_manager.py
+++ b/ironic/tests/unit/conductor/test_task_manager.py
@@ -200,6 +200,28 @@ class TaskManagerTestCase(db_base.DbTestCase):
reserve_mock.assert_called_once_with(self.context, self.host,
'fake-node-id')
+ def test_excl_lock_upgade_exception_no_retries(
+ self, get_voltgt_mock, get_volconn_mock, get_portgroups_mock,
+ get_ports_mock, build_driver_mock,
+ reserve_mock, release_mock, node_get_mock):
+ retry_attempts = 3
+ self.config(node_locked_retry_attempts=retry_attempts,
+ group='conductor')
+
+ node_get_mock.return_value = self.node
+ # Fail on the first lock attempt, succeed on the second.
+ reserve_mock.side_effect = [exception.NodeLocked(node='foo',
+ host='foo'),
+ self.node]
+
+ task = task_manager.TaskManager(self.context, 'fake-node-id',
+ shared=True)
+ self.assertRaises(exception.NodeLocked,
+ task.upgrade_lock, retry=False)
+
+ reserve_mock.assert_called_once_with(self.context, self.host,
+ 'fake-node-id')
+
def test_excl_lock_reserve_exception(
self, get_voltgt_mock, get_volconn_mock, get_portgroups_mock,
get_ports_mock, build_driver_mock,