From 7e0528c80555f31e6d0ae4a08812ddaabcfed498 Mon Sep 17 00:00:00 2001 From: Michael Johnson Date: Wed, 22 Aug 2018 19:04:04 -0700 Subject: [PATCH] Fix the amphora noop driver The amphora no-op driver did not get updated properly for the multi-amphora failover fix. This patch fixes that issue and corrects the doc strings for the haproxy amphora driver update_amphora_listeners method. Change-Id: Ib0d63da7c5599069f5ea50f0dfbc59eefba58c84 (cherry picked from commit c8074cd18a8c6ccdae7a490c8e9615acc2cadaf4) --- octavia/amphorae/drivers/haproxy/rest_api_driver.py | 6 ++++-- octavia/amphorae/drivers/noop_driver/driver.py | 11 +++++++---- .../drivers/test_noop_amphoraloadbalancer_driver.py | 3 ++- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/octavia/amphorae/drivers/haproxy/rest_api_driver.py b/octavia/amphorae/drivers/haproxy/rest_api_driver.py index f719456656..dc287337f2 100644 --- a/octavia/amphorae/drivers/haproxy/rest_api_driver.py +++ b/octavia/amphorae/drivers/haproxy/rest_api_driver.py @@ -68,8 +68,10 @@ class HaproxyAmphoraLoadBalancerDriver( :param listeners: List of listeners to update. :type listener: list - :param amphora_id: The ID of the amphora to update - :type amphora_id: string + :param amphora_index: The index of the amphora to update + :type amphora_index: integer + :param amphorae: List of amphorae + :type amphorae: list :param timeout_dict: Dictionary of timeout values for calls to the amphora. May contain: req_conn_timeout, req_read_timeout, conn_max_retries, diff --git a/octavia/amphorae/drivers/noop_driver/driver.py b/octavia/amphorae/drivers/noop_driver/driver.py index 8c641ae774..837ea375e5 100644 --- a/octavia/amphorae/drivers/noop_driver/driver.py +++ b/octavia/amphorae/drivers/noop_driver/driver.py @@ -37,7 +37,9 @@ class NoopManager(object): super(NoopManager, self).__init__() self.amphoraconfig = {} - def update_amphora_listeners(self, listeners, amphora_id, timeout_dict): + def update_amphora_listeners(self, listeners, amphora_index, + amphorae, timeout_dict): + amphora_id = amphorae[amphora_index].id for listener in listeners: LOG.debug("Amphora noop driver update_amphora_listeners, " "listener %s, amphora %s, timeouts %s", listener.id, @@ -114,10 +116,11 @@ class NoopAmphoraLoadBalancerDriver( super(NoopAmphoraLoadBalancerDriver, self).__init__() self.driver = NoopManager() - def update_amphora_listeners(self, listeners, amphora_id, timeout_dict): + def update_amphora_listeners(self, listeners, amphora_index, + amphorae, timeout_dict): - self.driver.update_amphora_listeners(listeners, amphora_id, - timeout_dict) + self.driver.update_amphora_listeners(listeners, amphora_index, + amphorae, timeout_dict) def update(self, listener, vip): diff --git a/octavia/tests/unit/amphorae/drivers/test_noop_amphoraloadbalancer_driver.py b/octavia/tests/unit/amphorae/drivers/test_noop_amphoraloadbalancer_driver.py index 8abacbb203..8f23eeb0de 100644 --- a/octavia/tests/unit/amphorae/drivers/test_noop_amphoraloadbalancer_driver.py +++ b/octavia/tests/unit/amphorae/drivers/test_noop_amphoraloadbalancer_driver.py @@ -69,7 +69,8 @@ class TestNoopAmphoraLoadBalancerDriver(base.TestCase): constants.CONN_RETRY_INTERVAL: 4} def test_update_amphora_listeners(self): - self.driver.update_amphora_listeners([self.listener], self.amphora.id, + amphorae = [self.amphora] + self.driver.update_amphora_listeners([self.listener], 0, amphorae, self.timeout_dict) self.assertEqual((self.listener, self.amphora.id, self.timeout_dict, 'update_amp'),