diff options
author | Dmitry Tantsur <dtantsur@protonmail.com> | 2020-09-18 17:30:15 +0200 |
---|---|---|
committer | Dmitry Tantsur <dtantsur@protonmail.com> | 2020-09-18 17:34:35 +0200 |
commit | e6e774f524735cd33863d079e536a668345af262 (patch) | |
tree | 46f07b81bece865b80fcacc2fdec50a9749ad988 /ironic/tests | |
parent | 4633fe937dc12b6cf8a4158d6339bd3b8cba4c0f (diff) | |
download | ironic-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.py | 22 |
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, |