[ADMIN_API] Handle case that shouldn't happen

If a device fails and there is no VIP assigned an exception is thrown.

This state shouldn't happen but did in a 4.18 setup that was upgrade to 4.19
The device in question would have gone wrong in 4.18

Change-Id: I8173e4eb34fed456b679df751181aad3ac78b534
This commit is contained in:
Andrew Hutchings
2013-11-13 20:17:19 +00:00
parent ad567a12c0
commit aee7b89049

View File

@@ -111,7 +111,8 @@ class DbDriver(AlertDriver):
new_device = session.query(Device).\ new_device = session.query(Device).\
filter(Device.id == new_device_id).first() filter(Device.id == new_device_id).first()
vip = session.query(Vip).filter(Vip.device == device_id).first() vip = session.query(Vip).filter(Vip.device == device_id).first()
vip.device = new_device_id if vip:
vip.device = new_device_id
device = session.query(Device).\ device = session.query(Device).\
filter(Device.id == device_id).first() filter(Device.id == device_id).first()
device.status = 'DELETED' device.status = 'DELETED'
@@ -120,12 +121,13 @@ class DbDriver(AlertDriver):
filter(Device.id == new_device_id).all() filter(Device.id == new_device_id).all()
for lb in lbs: for lb in lbs:
lb.errmsg = "Load Balancer rebuild on new device" lb.errmsg = "Load Balancer rebuild on new device"
LOG.info( if vip:
"Moving IP {0} and marking device {1} for deletion" LOG.info(
.format(str(ipaddress.IPv4Address(vip.ip)), device_id) "Moving IP {0} and marking device {1} for deletion"
) .format(str(ipaddress.IPv4Address(vip.ip)), device_id)
submit_vip_job( )
'ASSIGN', new_device_name, vip.id submit_vip_job(
) 'ASSIGN', new_device_name, vip.id
)
new_device.status = 'ONLINE' new_device.status = 'ONLINE'
session.commit() session.commit()