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)
(cherry picked from commit b44b71fee3)
This commit is contained in:
Gregory Thiemonge 2023-09-01 11:35:34 -04:00
parent 77e14a8d79
commit 353b9ed77f
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.