Check wait_for_lb_ready method's return value
After deleting a loadbalancer or adding a member to lbass pool we need to check the loadbalancer's status, and check the return value. Change-Id: Id3fb8e99557963786468390352035e6a4a2133fa
This commit is contained in:
parent
ad8afb46de
commit
3fc725ce70
|
@ -132,20 +132,33 @@ class LoadBalancerDriver(base.DriverBase):
|
||||||
healthmonitor_id = kwargs.pop('healthmonitor', None)
|
healthmonitor_id = kwargs.pop('healthmonitor', None)
|
||||||
if healthmonitor_id:
|
if healthmonitor_id:
|
||||||
self.nc().healthmonitor_delete(healthmonitor_id)
|
self.nc().healthmonitor_delete(healthmonitor_id)
|
||||||
self._wait_for_lb_ready(lb_id)
|
res = self._wait_for_lb_ready(lb_id)
|
||||||
|
if res is False:
|
||||||
|
msg = _LE('Failed in deleting healthmonitor '
|
||||||
|
'(%s).') % healthmonitor_id
|
||||||
|
return False, msg
|
||||||
|
|
||||||
pool_id = kwargs.pop('pool', None)
|
pool_id = kwargs.pop('pool', None)
|
||||||
if pool_id:
|
if pool_id:
|
||||||
self.nc().pool_delete(pool_id)
|
self.nc().pool_delete(pool_id)
|
||||||
self._wait_for_lb_ready(lb_id)
|
res = self._wait_for_lb_ready(lb_id)
|
||||||
|
if res is False:
|
||||||
|
msg = _LE('Failed in deleting pool (%s).') % pool_id
|
||||||
|
return False, msg
|
||||||
|
|
||||||
listener_id = kwargs.pop('listener', None)
|
listener_id = kwargs.pop('listener', None)
|
||||||
if listener_id:
|
if listener_id:
|
||||||
self.nc().listener_delete(listener_id)
|
self.nc().listener_delete(listener_id)
|
||||||
self._wait_for_lb_ready(lb_id)
|
res = self._wait_for_lb_ready(lb_id)
|
||||||
|
if res is False:
|
||||||
|
msg = _LE('Failed in deleting listener (%s).') % listener_id
|
||||||
|
return False, msg
|
||||||
|
|
||||||
self.nc().loadbalancer_delete(lb_id)
|
self.nc().loadbalancer_delete(lb_id)
|
||||||
self._wait_for_lb_ready(lb_id, ignore_not_found=True)
|
res = self._wait_for_lb_ready(lb_id, ignore_not_found=True)
|
||||||
|
if res is False:
|
||||||
|
msg = _LE('Failed in deleting loadbalancer (%s).') % lb_id
|
||||||
|
return False, msg
|
||||||
|
|
||||||
return True, _('LB deletion succeeded')
|
return True, _('LB deletion succeeded')
|
||||||
|
|
||||||
|
@ -178,7 +191,10 @@ class LoadBalancerDriver(base.DriverBase):
|
||||||
address = addresses[net_name]
|
address = addresses[net_name]
|
||||||
member = self.nc().pool_member_create(pool_id, address, port,
|
member = self.nc().pool_member_create(pool_id, address, port,
|
||||||
subnet_obj.id)
|
subnet_obj.id)
|
||||||
self._wait_for_lb_ready(lb_id)
|
res = self._wait_for_lb_ready(lb_id)
|
||||||
|
if res is False:
|
||||||
|
LOG.error(_LE('Failed in creating pool member (%s).') % member.id)
|
||||||
|
return None
|
||||||
|
|
||||||
return member.id
|
return member.id
|
||||||
|
|
||||||
|
@ -192,12 +208,15 @@ class LoadBalancerDriver(base.DriverBase):
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
self.nc().pool_member_delete(pool_id, member_id)
|
self.nc().pool_member_delete(pool_id, member_id)
|
||||||
self._wait_for_lb_ready(lb_id)
|
|
||||||
except Exception as ex:
|
except Exception as ex:
|
||||||
LOG.error(_LE('Failed in removing member %(m)s from pool %(p)s: '
|
LOG.error(_LE('Failed in removing member %(m)s from pool %(p)s: '
|
||||||
'%(ex)s'),
|
'%(ex)s'),
|
||||||
{'m': member_id, 'p': pool_id, 'ex': six.text_type(ex)})
|
{'m': member_id, 'p': pool_id, 'ex': six.text_type(ex)})
|
||||||
return False
|
return False
|
||||||
|
res = self._wait_for_lb_ready(lb_id)
|
||||||
|
if res is False:
|
||||||
|
LOG.error(_LE('Failed in deleting pool member (%s).') % member_id)
|
||||||
|
return None
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
|
@ -409,7 +409,7 @@ class TestNeutronLBaaSDriver(base.SenlinTestCase):
|
||||||
self.nc.pool_member_delete.assert_called_once_with(pool_id, member_id)
|
self.nc.pool_member_delete.assert_called_once_with(pool_id, member_id)
|
||||||
|
|
||||||
self.nc.pool_member_delete.side_effect = None
|
self.nc.pool_member_delete.side_effect = None
|
||||||
self.lb_driver._wait_for_lb_ready.side_effect = Exception('')
|
self.lb_driver._wait_for_lb_ready.return_value = False
|
||||||
res = self.lb_driver.member_remove(lb_id, pool_id, member_id)
|
res = self.lb_driver.member_remove(lb_id, pool_id, member_id)
|
||||||
self.assertFalse(res)
|
self.assertEqual(None, res)
|
||||||
self.lb_driver._wait_for_lb_ready.assert_called_once_with(lb_id)
|
self.lb_driver._wait_for_lb_ready.assert_called_once_with(lb_id)
|
||||||
|
|
Loading…
Reference in New Issue