From 7f08e166199ef7b8f74bb9c2d40012ff9b9211dd Mon Sep 17 00:00:00 2001 From: Oleg Bondarev Date: Mon, 5 Aug 2013 12:39:22 +0400 Subject: [PATCH] LBaaS: pass the complete healthmonitor object to driver Fixes bug: #1208372 Change-Id: I72198446f4de3907d92fc9c2bbdb403cf2e87341 --- neutron/services/loadbalancer/plugin.py | 4 +++- .../db/loadbalancer/test_db_loadbalancer.py | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/neutron/services/loadbalancer/plugin.py b/neutron/services/loadbalancer/plugin.py index 2f6e2de84..d3903b67b 100644 --- a/neutron/services/loadbalancer/plugin.py +++ b/neutron/services/loadbalancer/plugin.py @@ -206,8 +206,10 @@ class LoadBalancerPlugin(loadbalancer_db.LoadBalancerPluginDb, health_monitor, pool_id ) + monitor_id = health_monitor['health_monitor']['id'] + hm = self.get_health_monitor(context, monitor_id) self.driver.create_pool_health_monitor( - context, health_monitor, pool_id) + context, hm, pool_id) return retval def delete_pool_health_monitor(self, context, id, pool_id): diff --git a/neutron/tests/unit/db/loadbalancer/test_db_loadbalancer.py b/neutron/tests/unit/db/loadbalancer/test_db_loadbalancer.py index 9ccab978d..697b1cd46 100644 --- a/neutron/tests/unit/db/loadbalancer/test_db_loadbalancer.py +++ b/neutron/tests/unit/db/loadbalancer/test_db_loadbalancer.py @@ -1193,6 +1193,23 @@ class TestLoadBalancer(LoadBalancerPluginDbTestCase): health_mon2['health_monitor']['id']]}, res) + def test_driver_call_create_pool_health_monitor(self): + with mock.patch.object(self.plugin.driver, + 'create_pool_health_monitor') as driver_call: + with contextlib.nested( + self.pool(), + self.health_monitor() + ) as (pool, hm): + data = {"health_monitor": { + "id": hm['health_monitor']['id'], + 'tenant_id': self._tenant_id}} + self.plugin.create_pool_health_monitor( + context.get_admin_context(), + data, pool['pool']['id'] + ) + driver_call.assert_called_once_with( + mock.ANY, hm['health_monitor'], pool['pool']['id']) + def test_create_pool_healthmon_invalid_pool_id(self): with self.health_monitor() as healthmon: self.assertRaises(loadbalancer.PoolNotFound, -- 2.45.2