[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:
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user