Fix timeout duration in start_vrrp_service during failovers

The timeout_dict argument was not passed to the
_populate_amphora_api_version, it could have made the failover of broken
amphora really long.

Related-Bug: #2033894

Change-Id: I497f2d8587e25eda0d169aa919cb6fbede7e9fc6
(cherry picked from commit cce348040d)
(cherry picked from commit 54eb1624f5)
(cherry picked from commit 5c98d90133)
(cherry picked from commit 1dadaff530)
(cherry picked from commit 9e5a634015)
This commit is contained in:
Gregory Thiemonge 2023-09-01 11:35:34 -04:00
parent c6dd946b99
commit b44b71fee3
3 changed files with 25 additions and 1 deletions

View File

@ -96,7 +96,8 @@ class KeepalivedAmphoraDriverMixin(driver_base.VRRPDriverMixin):
LOG.info("Start amphora %s VRRP Service.", amphora.id)
self._populate_amphora_api_version(amphora)
self._populate_amphora_api_version(amphora,
timeout_dict=timeout_dict)
self.clients[amphora.api_version].start_vrrp(amphora,
timeout_dict=timeout_dict)

View File

@ -100,6 +100,9 @@ class TestVRRPRestDriver(base.TestCase):
self.keepalived_mixin.start_vrrp_service(self.amphora_mock)
populate_mock = self.keepalived_mixin._populate_amphora_api_version
populate_mock.assert_called_once_with(self.amphora_mock,
timeout_dict=None)
self.clients[API_VERSION].start_vrrp.assert_called_once_with(
self.amphora_mock, timeout_dict=None)
@ -114,6 +117,20 @@ class TestVRRPRestDriver(base.TestCase):
self.clients[API_VERSION].start_vrrp.assert_not_called()
# With timeout_dict
self.clients[API_VERSION].start_vrrp.reset_mock()
populate_mock.reset_mock()
timeout_dict = mock.Mock()
self.keepalived_mixin.start_vrrp_service(self.amphora_mock,
timeout_dict=timeout_dict)
populate_mock = self.keepalived_mixin._populate_amphora_api_version
populate_mock.assert_called_once_with(self.amphora_mock,
timeout_dict=timeout_dict)
self.clients[API_VERSION].start_vrrp.assert_called_once_with(
self.amphora_mock, timeout_dict=timeout_dict)
def test_reload_vrrp_service(self):
self.keepalived_mixin.reload_vrrp_service(self.lb_mock)

View File

@ -0,0 +1,6 @@
---
fixes:
- |
Fixed a too long timeout when attempting to start the VRRP service in an
unreachable amphora during a failover. A specific shorter timeout should be
used during the failovers.