Fixes #9575: Add exception handling to services

This commit is contained in:
Hunter Johnston 2022-06-22 20:47:59 -04:00
parent 575e2c443b
commit c0316f3169

View File

@ -680,13 +680,16 @@ class IPAddressView(generic.ObjectView):
service_filter = Q(ipaddresses=instance) service_filter = Q(ipaddresses=instance)
# Find services listening on all IPs on the assigned device/vm # Find services listening on all IPs on the assigned device/vm
if instance.assigned_object and instance.assigned_object.parent_object: try:
parent_object = instance.assigned_object.parent_object if instance.assigned_object and instance.assigned_object.parent_object:
parent_object = instance.assigned_object.parent_object
if isinstance(parent_object, VirtualMachine): if isinstance(parent_object, VirtualMachine):
service_filter |= (Q(virtual_machine=parent_object) & Q(ipaddresses=None)) service_filter |= (Q(virtual_machine=parent_object) & Q(ipaddresses=None))
elif isinstance(parent_object, Device): elif isinstance(parent_object, Device):
service_filter |= (Q(device=parent_object) & Q(ipaddresses=None)) service_filter |= (Q(device=parent_object) & Q(ipaddresses=None))
except AttributeError:
pass
services = Service.objects.restrict(request.user, 'view').filter(service_filter) services = Service.objects.restrict(request.user, 'view').filter(service_filter)