From 1e2aec16c504423fe39780e527f424ee0a48aa0b Mon Sep 17 00:00:00 2001 From: Carlos Goncalves Date: Tue, 23 Jun 2020 10:54:32 +0200 Subject: [PATCH] Add missing reload method in amphora noop driver The reload method was also missing in the abstract class. Task: 40140 Story: 2007847 Change-Id: I2328b3dc4d5b95c8771a305d3d4bb1dee6019117 (cherry picked from commit 89123c0fc117e095c44ed21e360394974d3e15a5) --- octavia/amphorae/drivers/driver_base.py | 14 ++++++++++++++ octavia/amphorae/drivers/noop_driver/driver.py | 11 +++++++++++ .../test_noop_amphoraloadbalancer_driver.py | 8 ++++++++ 3 files changed, 33 insertions(+) diff --git a/octavia/amphorae/drivers/driver_base.py b/octavia/amphorae/drivers/driver_base.py index ed613e654b..b78c68174a 100644 --- a/octavia/amphorae/drivers/driver_base.py +++ b/octavia/amphorae/drivers/driver_base.py @@ -64,6 +64,20 @@ class AmphoraLoadBalancerDriver(object, metaclass=abc.ABCMeta): add more function along with the development. """ + @abc.abstractmethod + def reload(self, loadbalancer, amphora): + """Reload the listeners on the amphora. + + :param loadbalancer: loadbalancer object to reload listeners + :type loadbalancer: octavia.db.models.LoadBalancer + :param amphora: Amphora to start. If None, reload on all amphora + :type amphora: octavia.db.models.Amphora + :returns: return a value list (listener, vip, status flag--enable) + + At this moment, we just build the basic structure for testing, will + add more function along with the development. + """ + @abc.abstractmethod def delete(self, listener): """Delete the listener on the vip. diff --git a/octavia/amphorae/drivers/noop_driver/driver.py b/octavia/amphorae/drivers/noop_driver/driver.py index 74d12917d0..75670150fc 100644 --- a/octavia/amphorae/drivers/noop_driver/driver.py +++ b/octavia/amphorae/drivers/noop_driver/driver.py @@ -64,6 +64,13 @@ class NoopManager(object): (loadbalancer.id, amphora.id)] = (loadbalancer, amphora, 'start') + def reload(self, loadbalancer, amphora=None): + LOG.debug("Amphora %s no-op, reload listeners, lb %s, amp %s", + self.__class__.__name__, loadbalancer.id, amphora) + self.amphoraconfig[ + (loadbalancer.id, amphora.id)] = (loadbalancer, amphora, + 'reload') + def delete(self, listener): LOG.debug("Amphora %s no-op, delete listener %s, vip %s", self.__class__.__name__, @@ -142,6 +149,10 @@ class NoopAmphoraLoadBalancerDriver( self.driver.start(loadbalancer, amphora) + def reload(self, loadbalancer, amphora=None): + + self.driver.reload(loadbalancer, amphora) + def delete(self, listener): self.driver.delete(listener) 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 c4e786f533..e4c2d8a49c 100644 --- a/octavia/tests/unit/amphorae/drivers/test_noop_amphoraloadbalancer_driver.py +++ b/octavia/tests/unit/amphorae/drivers/test_noop_amphoraloadbalancer_driver.py @@ -95,6 +95,14 @@ class TestNoopAmphoraLoadBalancerDriver(base.TestCase): self.driver.driver.amphoraconfig[( self.load_balancer.id, '321')]) + def test_reload(self): + mock_amphora = mock.MagicMock() + mock_amphora.id = '321' + self.driver.reload(self.load_balancer, amphora=mock_amphora) + self.assertEqual((self.load_balancer, mock_amphora, 'reload'), + self.driver.driver.amphoraconfig[( + self.load_balancer.id, '321')]) + def test_delete(self): self.driver.delete(self.listener) self.assertEqual((self.listener, self.vip, 'delete'),