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 cce348040d43b92b59146adeb15a4f1486946a64) (cherry picked from commit 54eb1624f5762e9b848f10f712152faf02f8b84d) (cherry picked from commit 5c98d901337cb0d6e4c575e3280cb77839720cfe) (cherry picked from commit 1dadaff530e252e8e96ea8b4c6dcec902a797516) (cherry picked from commit 9e5a6340156113ec3a014e64b3bad6617cd1c082)
This commit is contained in:
parent
c6dd946b99
commit
b44b71fee3
@ -96,7 +96,8 @@ class KeepalivedAmphoraDriverMixin(driver_base.VRRPDriverMixin):
|
|||||||
|
|
||||||
LOG.info("Start amphora %s VRRP Service.", amphora.id)
|
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,
|
self.clients[amphora.api_version].start_vrrp(amphora,
|
||||||
timeout_dict=timeout_dict)
|
timeout_dict=timeout_dict)
|
||||||
|
|
||||||
|
@ -100,6 +100,9 @@ class TestVRRPRestDriver(base.TestCase):
|
|||||||
|
|
||||||
self.keepalived_mixin.start_vrrp_service(self.amphora_mock)
|
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.clients[API_VERSION].start_vrrp.assert_called_once_with(
|
||||||
self.amphora_mock, timeout_dict=None)
|
self.amphora_mock, timeout_dict=None)
|
||||||
|
|
||||||
@ -114,6 +117,20 @@ class TestVRRPRestDriver(base.TestCase):
|
|||||||
|
|
||||||
self.clients[API_VERSION].start_vrrp.assert_not_called()
|
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):
|
def test_reload_vrrp_service(self):
|
||||||
|
|
||||||
self.keepalived_mixin.reload_vrrp_service(self.lb_mock)
|
self.keepalived_mixin.reload_vrrp_service(self.lb_mock)
|
||||||
|
@ -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.
|
Loading…
x
Reference in New Issue
Block a user