Fix haproxy plugin_driver.update_health_monitor() signature
- add old_health_monitor parameter to the method - the method signature in abstract lbaas driver was also changed to accept pool_id rather than an assoc object as driver only needs pool_id Fixes bug 1190577 Change-Id: Ie199f46e089a16214ed649a3169e985a726e5d99
This commit is contained in:
parent
cc260d5d64
commit
a1b8a10c56
@ -117,7 +117,7 @@ class LoadBalancerAbstractDriver(object):
|
||||
def update_health_monitor(self, context,
|
||||
old_health_monitor,
|
||||
health_monitor,
|
||||
pool_association):
|
||||
pool_id):
|
||||
pass
|
||||
|
||||
@abc.abstractmethod
|
||||
|
@ -271,8 +271,9 @@ class HaproxyOnHostPluginDriver(abstract_driver.LoadBalancerAbstractDriver):
|
||||
self.plugin._delete_db_member(context, member['id'])
|
||||
self.agent_rpc.modify_pool(context, member['pool_id'])
|
||||
|
||||
def update_health_monitor(self, context, healthmon, pool_id):
|
||||
# healthmon is unused here because agent will fetch what is necessary
|
||||
def update_health_monitor(self, context, old_health_monitor,
|
||||
health_monitor, pool_id):
|
||||
# monitors are unused here because agent will fetch what is necessary
|
||||
self.agent_rpc.modify_pool(context, pool_id)
|
||||
|
||||
def delete_health_monitor(self, context, healthmon_id, pool_id):
|
||||
|
@ -166,7 +166,8 @@ class LoadBalancerPlugin(loadbalancer_db.LoadBalancerPluginDb):
|
||||
loadbalancer_db.PoolMonitorAssociation
|
||||
).filter_by(monitor_id=hm['id'])
|
||||
for assoc in qry:
|
||||
self.driver.update_health_monitor(context, old_hm, hm, assoc)
|
||||
self.driver.update_health_monitor(context, old_hm,
|
||||
hm, assoc['pool_id'])
|
||||
return hm
|
||||
|
||||
def _delete_db_pool_health_monitor(self, context, hm_id, pool_id):
|
||||
|
@ -321,3 +321,41 @@ class TestLoadBalancerPluginNotificationWrapper(TestLoadBalancerPluginBase):
|
||||
mock.ANY,
|
||||
vip['vip']['pool_id']
|
||||
)
|
||||
|
||||
def test_update_health_monitor_associated_with_pool(self):
|
||||
with self.health_monitor(type='HTTP') as monitor:
|
||||
with self.pool() as pool:
|
||||
data = {
|
||||
'health_monitor': {
|
||||
'id': monitor['health_monitor']['id'],
|
||||
'tenant_id': self._tenant_id
|
||||
}
|
||||
}
|
||||
req = self.new_create_request(
|
||||
'pools',
|
||||
data,
|
||||
fmt=self.fmt,
|
||||
id=pool['pool']['id'],
|
||||
subresource='health_monitors')
|
||||
res = req.get_response(self.ext_api)
|
||||
self.assertEqual(res.status_int, 201)
|
||||
self.mock_api.modify_pool.assert_called_once_with(
|
||||
mock.ANY,
|
||||
pool['pool']['id']
|
||||
)
|
||||
|
||||
self.mock_api.reset_mock()
|
||||
data = {'health_monitor': {'delay': 20,
|
||||
'timeout': 20,
|
||||
'max_retries': 2,
|
||||
'admin_state_up': False}}
|
||||
req = self.new_update_request("health_monitors",
|
||||
data,
|
||||
monitor['health_monitor']['id'])
|
||||
req.get_response(self.ext_api)
|
||||
self.mock_api.modify_pool.assert_called_once_with(
|
||||
mock.ANY,
|
||||
pool['pool']['id']
|
||||
)
|
||||
|
||||
# TODO(obondarev): improve plugin_driver test coverage (bug 1191007)
|
||||
|
Loading…
Reference in New Issue
Block a user