diff --git a/netbox/circuits/models.py b/netbox/circuits/models.py index ca792ae2c..57d41a994 100644 --- a/netbox/circuits/models.py +++ b/netbox/circuits/models.py @@ -300,9 +300,6 @@ class CircuitTermination(CableTermination): blank=True ) - # But they are a possible connected endpoint - is_connected_endpoint = True - class Meta: ordering = ['circuit', 'term_side'] unique_together = ['circuit', 'term_side'] diff --git a/netbox/dcim/models/device_components.py b/netbox/dcim/models/device_components.py index 1d6623117..41ebc1cad 100644 --- a/netbox/dcim/models/device_components.py +++ b/netbox/dcim/models/device_components.py @@ -86,9 +86,6 @@ class CableTermination(models.Model): object_id_field='termination_b_id' ) - # Whether this class can be a connected endpoint - is_connected_endpoint = True - class Meta: abstract = True @@ -897,9 +894,6 @@ class FrontPort(CableTermination, ComponentModel): csv_headers = ['device', 'name', 'type', 'rear_port', 'rear_port_position', 'description'] - # Whether this class can be a connected endpoint - is_connected_endpoint = False - class Meta: ordering = ('device', '_name') unique_together = ( @@ -967,9 +961,6 @@ class RearPort(CableTermination, ComponentModel): csv_headers = ['device', 'name', 'type', 'positions', 'description'] - # Whether this class can be a connected endpoint - is_connected_endpoint = False - class Meta: ordering = ('device', '_name') unique_together = ('device', 'name') diff --git a/netbox/dcim/signals.py b/netbox/dcim/signals.py index f5bf43c70..2d0f3aa45 100644 --- a/netbox/dcim/signals.py +++ b/netbox/dcim/signals.py @@ -4,7 +4,7 @@ from django.db.models.signals import post_save, pre_delete from django.dispatch import receiver from .choices import CableStatusChoices -from .models import Cable, Device, VirtualChassis +from .models import Cable, Device, FrontPort, RearPort, VirtualChassis @receiver(post_save, sender=VirtualChassis) @@ -63,7 +63,8 @@ def update_connected_endpoints(instance, **kwargs): endpoint_a = path[0][0] endpoint_b = path[-1][2] if not split_ends and not position_stack else None - if getattr(endpoint_a, 'is_connected_endpoint', False) and getattr(endpoint_b, 'is_connected_endpoint', False): + # Patch panel ports are not connected endpoints, everything else is + if not isinstance(endpoint_a, (FrontPort, RearPort)) and not isinstance(endpoint_b, (FrontPort, RearPort)): logger.debug("Updating path endpoints: {} <---> {}".format(endpoint_a, endpoint_b)) endpoint_a.connected_endpoint = endpoint_b endpoint_a.connection_status = path_status