Connecting two front ports to one interface #10223

Closed
opened 2025-12-29 21:28:34 +01:00 by adam · 6 comments
Owner

Originally created by @Zidrenn on GitHub (Sep 11, 2024).

Originally assigned to: @DanSheps on GitHub.

Deployment Type

Self-hosted

NetBox Version

v4.10.0

Python Version

3.10

Steps to Reproduce

  1. Create device A on rack. This device its going to have 2 rear ports and 2 front ports. Each rear port to one front.
  2. Create device B in another rack. This device should be the same as A. He will have 2 rear ports and 2 fronts. Each rear port to one front.
  3. Now connect the 4 rear ports with the same cable.
  4. Create a device in the same rack whre is located the device A. This device needs to have 1 interface.
  5. Now connect the 2 fronts ports from device A to this interface. this will cause an error.

Expected Behavior

It should make the connection and not give any error. I want to have 2 front ports connected to one interface. In my solution 2 fronts ports its just one cable but with two plugs (4 pglus if you count the two ends).
issue ex

I tried this simulation in the demo version of netbox too, and it give me error there too.

Observed Behavior

Environment:

Request Method: POST
Request URL: https://stg-netbox/dcim/cables/add/?a_terminations_type=dcim.frontport&a_terminations=20626&b_terminations_type=dcim.interface&termination_b_site=73&termination_b_rack=274&return_url=/dcim/devices/2441/front-ports/

Django Version: 5.0.9
Python Version: 3.12.3
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.humanize',
'django.forms',
'corsheaders',
'debug_toolbar',
'django_filters',
'django_htmx',
'django_tables2',
'django_prometheus',
'strawberry_django',
'mptt',
'rest_framework',
'social_django',
'taggit',
'timezone_field',
'core',
'account',
'circuits',
'dcim',
'ipam',
'extras',
'tenancy',
'users',
'utilities',
'virtualization',
'vpn',
'wireless',
'django_rq',
'drf_spectacular',
'drf_spectacular_sidecar',
'netbox_reorder_rack.NetboxReorderRackConfig',
'netbox_branching.AppConfig']
Installed Middleware:
['strawberry_django.middlewares.debug_toolbar.DebugToolbarMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django_htmx.middleware.HtmxMiddleware',
'netbox.middleware.RemoteUserMiddleware',
'netbox.middleware.CoreMiddleware',
'netbox.middleware.MaintenanceModeMiddleware',
'netbox_branching.middleware.BranchMiddleware']

Traceback (most recent call last):
File "/opt/netbox/venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/venv/lib/python3.12/site-packages/django/views/generic/base.py", line 104, in view
return self.dispatch(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/netbox/netbox/views/generic/object_views.py", line 180, in dispatch
return super().dispatch(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/netbox/netbox/views/generic/base.py", line 26, in dispatch
return super().dispatch(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/netbox/utilities/views.py", line 125, in dispatch
return super().dispatch(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/netbox/utilities/views.py", line 39, in dispatch
return super().dispatch(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/venv/lib/python3.12/site-packages/django/views/generic/base.py", line 143, in dispatch
return handler(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/netbox/netbox/views/generic/object_views.py", line 276, in post
obj = form.save()
^^^^^^^^^^^
File "/opt/netbox/venv/lib/python3.12/site-packages/django/forms/models.py", line 552, in save
self.instance.save()
^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/netbox/dcim/models/cables.py", line 242, in save
trace_paths.send(Cable, instance=self, created=_created)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/venv/lib/python3.12/site-packages/django/dispatch/dispatcher.py", line 189, in send
response = receiver(signal=self, sender=sender, **named)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/netbox/dcim/signals.py", line 98, in update_connected_endpoints
create_cablepath(nodes)
^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/netbox/dcim/utils.py", line 43, in create_cablepath
cp = CablePath.from_origin(terminations)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/netbox/dcim/models/cables.py", line 654, in from_origin
assert len(remote_terminations) == len(positions)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Exception Type: AssertionError at /dcim/cables/add/
Exception Value:

Originally created by @Zidrenn on GitHub (Sep 11, 2024). Originally assigned to: @DanSheps on GitHub. ### Deployment Type Self-hosted ### NetBox Version v4.10.0 ### Python Version 3.10 ### Steps to Reproduce 1. Create device A on rack. This device its going to have 2 rear ports and 2 front ports. Each rear port to one front. 2. Create device B in another rack. This device should be the same as A. He will have 2 rear ports and 2 fronts. Each rear port to one front. 3. Now connect the 4 rear ports with the same cable. 4. Create a device in the same rack whre is located the device A. This device needs to have 1 interface. 5. Now connect the 2 fronts ports from device A to this interface. this will cause an error. ### Expected Behavior It should make the connection and not give any error. I want to have 2 front ports connected to one interface. In my solution 2 fronts ports its just one cable but with two plugs (4 pglus if you count the two ends). ![issue ex](https://github.com/user-attachments/assets/f1c60720-69fa-41fc-971c-719419d3a26f) I tried this simulation in the demo version of netbox too, and it give me error there too. ### Observed Behavior Environment: Request Method: POST Request URL: https://stg-netbox/dcim/cables/add/?a_terminations_type=dcim.frontport&a_terminations=20626&b_terminations_type=dcim.interface&termination_b_site=73&termination_b_rack=274&return_url=/dcim/devices/2441/front-ports/ Django Version: 5.0.9 Python Version: 3.12.3 Installed Applications: ['django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'django.forms', 'corsheaders', 'debug_toolbar', 'django_filters', 'django_htmx', 'django_tables2', 'django_prometheus', 'strawberry_django', 'mptt', 'rest_framework', 'social_django', 'taggit', 'timezone_field', 'core', 'account', 'circuits', 'dcim', 'ipam', 'extras', 'tenancy', 'users', 'utilities', 'virtualization', 'vpn', 'wireless', 'django_rq', 'drf_spectacular', 'drf_spectacular_sidecar', 'netbox_reorder_rack.NetboxReorderRackConfig', 'netbox_branching.AppConfig'] Installed Middleware: ['strawberry_django.middlewares.debug_toolbar.DebugToolbarMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', 'django_htmx.middleware.HtmxMiddleware', 'netbox.middleware.RemoteUserMiddleware', 'netbox.middleware.CoreMiddleware', 'netbox.middleware.MaintenanceModeMiddleware', 'netbox_branching.middleware.BranchMiddleware'] Traceback (most recent call last): File "/opt/netbox/venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) ^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 197, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/venv/lib/python3.12/site-packages/django/views/generic/base.py", line 104, in view return self.dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/netbox/views/generic/object_views.py", line 180, in dispatch return super().dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/netbox/views/generic/base.py", line 26, in dispatch return super().dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/utilities/views.py", line 125, in dispatch return super().dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/utilities/views.py", line 39, in dispatch return super().dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/venv/lib/python3.12/site-packages/django/views/generic/base.py", line 143, in dispatch return handler(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/netbox/views/generic/object_views.py", line 276, in post obj = form.save() ^^^^^^^^^^^ File "/opt/netbox/venv/lib/python3.12/site-packages/django/forms/models.py", line 552, in save self.instance.save() ^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/dcim/models/cables.py", line 242, in save trace_paths.send(Cable, instance=self, created=_created) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/venv/lib/python3.12/site-packages/django/dispatch/dispatcher.py", line 189, in send response = receiver(signal=self, sender=sender, **named) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/dcim/signals.py", line 98, in update_connected_endpoints create_cablepath(nodes) ^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/dcim/utils.py", line 43, in create_cablepath cp = CablePath.from_origin(terminations) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/dcim/models/cables.py", line 654, in from_origin assert len(remote_terminations) == len(positions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Exception Type: AssertionError at /dcim/cables/add/ Exception Value:
adam closed this issue 2025-12-29 21:28:34 +01:00
Author
Owner

@DanSheps commented on GitHub (Sep 11, 2024):

Thank you for opening a bug report. I was unable to reproduce the reported behavior on NetBox v4.1.0. Please re-confirm the reported behavior on the current stable release and adjust your post above as necessary. Remember to provide detailed steps that someone else can follow using a clean installation of NetBox to reproduce the issue. Remember to include the steps taken to create any initial objects or other data.

@DanSheps commented on GitHub (Sep 11, 2024): Thank you for opening a bug report. I was unable to reproduce the reported behavior on NetBox v4.1.0. Please re-confirm the reported behavior on the current stable release and adjust your post above as necessary. Remember to provide detailed steps that someone else can follow using a clean installation of NetBox to reproduce the issue. Remember to include the steps taken to create any initial objects or other data.
Author
Owner

@Zidrenn commented on GitHub (Sep 12, 2024):

Ok, i will make the simulation again setp by step and then i will comment here the tutorial the most explainable possible. I will try to make this tomorrow.

@Zidrenn commented on GitHub (Sep 12, 2024): Ok, i will make the simulation again setp by step and then i will comment here the tutorial the most explainable possible. I will try to make this tomorrow.
Author
Owner

@jsenecal commented on GitHub (Sep 12, 2024):

@Zidrenn This assertion error is often caused by a mismatched number of "splits" in a cable path, ie different number of interface-front-rear<->rear-front-interface positions somewhere in the path, FYI

@jsenecal commented on GitHub (Sep 12, 2024): @Zidrenn This assertion error is often caused by a mismatched number of "splits" in a cable path, ie different number of interface-front-rear<->rear-front-interface positions somewhere in the path, FYI
Author
Owner

@Zidrenn commented on GitHub (Sep 13, 2024):

I think its easier if i show you what i want to documentate. Im gonna attach an example image.

netbox problem

I cant do this today, in every method that a tried i get errors.
In my netbox platform i already have ervery device for tests and i have all the middle connections done (rear with rear ports and that passive patch on C-FIBER.PATCH.PANEL. I dont have the interfaces connections because its when i get the error.

This is the error i get:

Environment:

Request Method: POST
Request URL: https://stg-netbox/dcim/cables/add/?a_terminations_type=dcim.frontport&a_terminations=20786&b_terminations_type=dcim.interface&termination_b_site=73&termination_b_rack=278&return_url=/dcim/devices/2454/front-ports/

Django Version: 5.0.9
Python Version: 3.12.3
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.humanize',
'django.forms',
'corsheaders',
'debug_toolbar',
'django_filters',
'django_htmx',
'django_tables2',
'django_prometheus',
'strawberry_django',
'mptt',
'rest_framework',
'social_django',
'taggit',
'timezone_field',
'core',
'account',
'circuits',
'dcim',
'ipam',
'extras',
'tenancy',
'users',
'utilities',
'virtualization',
'vpn',
'wireless',
'django_rq',
'drf_spectacular',
'drf_spectacular_sidecar',
'netbox_reorder_rack.NetboxReorderRackConfig',
'netbox_branching.AppConfig']
Installed Middleware:
['strawberry_django.middlewares.debug_toolbar.DebugToolbarMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django_htmx.middleware.HtmxMiddleware',
'netbox.middleware.RemoteUserMiddleware',
'netbox.middleware.CoreMiddleware',
'netbox.middleware.MaintenanceModeMiddleware',
'netbox_branching.middleware.BranchMiddleware']

Traceback (most recent call last):
File "/opt/netbox/venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/venv/lib/python3.12/site-packages/django/views/generic/base.py", line 104, in view
return self.dispatch(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/netbox/netbox/views/generic/object_views.py", line 180, in dispatch
return super().dispatch(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/netbox/netbox/views/generic/base.py", line 26, in dispatch
return super().dispatch(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/netbox/utilities/views.py", line 125, in dispatch
return super().dispatch(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/netbox/utilities/views.py", line 39, in dispatch
return super().dispatch(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/venv/lib/python3.12/site-packages/django/views/generic/base.py", line 143, in dispatch
return handler(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/netbox/netbox/views/generic/object_views.py", line 276, in post
obj = form.save()
^^^^^^^^^^^
File "/opt/netbox/venv/lib/python3.12/site-packages/django/forms/models.py", line 552, in save
self.instance.save()
^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/netbox/dcim/models/cables.py", line 242, in save
trace_paths.send(Cable, instance=self, created=_created)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/venv/lib/python3.12/site-packages/django/dispatch/dispatcher.py", line 189, in send
response = receiver(signal=self, sender=sender, **named)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/netbox/dcim/signals.py", line 98, in update_connected_endpoints
create_cablepath(nodes)
^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/netbox/dcim/utils.py", line 43, in create_cablepath
cp = CablePath.from_origin(terminations)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/netbox/dcim/models/cables.py", line 553, in from_origin
assert all(t.parent_object == terminations[0].parent_object for t in terminations[1:])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Exception Type: AssertionError at /dcim/cables/add/
Exception Value:

@Zidrenn commented on GitHub (Sep 13, 2024): I think its easier if i show you what i want to documentate. Im gonna attach an example image. ![netbox problem](https://github.com/user-attachments/assets/b5260d71-caea-47e5-8fb5-5063f3ab2045) I cant do this today, in every method that a tried i get errors. In my netbox platform i already have ervery device for tests and i have all the middle connections done (rear with rear ports and that passive patch on C-FIBER.PATCH.PANEL. I dont have the interfaces connections because its when i get the error. This is the error i get: Environment: Request Method: POST Request URL: https://stg-netbox/dcim/cables/add/?a_terminations_type=dcim.frontport&a_terminations=20786&b_terminations_type=dcim.interface&termination_b_site=73&termination_b_rack=278&return_url=/dcim/devices/2454/front-ports/ Django Version: 5.0.9 Python Version: 3.12.3 Installed Applications: ['django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'django.forms', 'corsheaders', 'debug_toolbar', 'django_filters', 'django_htmx', 'django_tables2', 'django_prometheus', 'strawberry_django', 'mptt', 'rest_framework', 'social_django', 'taggit', 'timezone_field', 'core', 'account', 'circuits', 'dcim', 'ipam', 'extras', 'tenancy', 'users', 'utilities', 'virtualization', 'vpn', 'wireless', 'django_rq', 'drf_spectacular', 'drf_spectacular_sidecar', 'netbox_reorder_rack.NetboxReorderRackConfig', 'netbox_branching.AppConfig'] Installed Middleware: ['strawberry_django.middlewares.debug_toolbar.DebugToolbarMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', 'django_htmx.middleware.HtmxMiddleware', 'netbox.middleware.RemoteUserMiddleware', 'netbox.middleware.CoreMiddleware', 'netbox.middleware.MaintenanceModeMiddleware', 'netbox_branching.middleware.BranchMiddleware'] Traceback (most recent call last): File "/opt/netbox/venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) ^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 197, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/venv/lib/python3.12/site-packages/django/views/generic/base.py", line 104, in view return self.dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/netbox/views/generic/object_views.py", line 180, in dispatch return super().dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/netbox/views/generic/base.py", line 26, in dispatch return super().dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/utilities/views.py", line 125, in dispatch return super().dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/utilities/views.py", line 39, in dispatch return super().dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/venv/lib/python3.12/site-packages/django/views/generic/base.py", line 143, in dispatch return handler(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/netbox/views/generic/object_views.py", line 276, in post obj = form.save() ^^^^^^^^^^^ File "/opt/netbox/venv/lib/python3.12/site-packages/django/forms/models.py", line 552, in save self.instance.save() ^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/dcim/models/cables.py", line 242, in save trace_paths.send(Cable, instance=self, created=_created) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/venv/lib/python3.12/site-packages/django/dispatch/dispatcher.py", line 189, in send response = receiver(signal=self, sender=sender, **named) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/dcim/signals.py", line 98, in update_connected_endpoints create_cablepath(nodes) ^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/dcim/utils.py", line 43, in create_cablepath cp = CablePath.from_origin(terminations) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/dcim/models/cables.py", line 553, in from_origin assert all(t.parent_object == terminations[0].parent_object for t in terminations[1:]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Exception Type: AssertionError at /dcim/cables/add/ Exception Value:
Author
Owner

@DanSheps commented on GitHub (Sep 16, 2024):

Yes, this would 100% not be a supported connecton at this point in time.

@DanSheps commented on GitHub (Sep 16, 2024): Yes, this would 100% not be a supported connecton at this point in time.
Author
Owner

@DanSheps commented on GitHub (Sep 16, 2024):

Thank you for opening a bug report. It seems that the described functionality is intended behavior. If you meant to open a feature request instead, please close this issue and open a new one using the feature request template. Otherwise, please revise your post above to elaborate on why you believe the observed behavior is flawed.

@DanSheps commented on GitHub (Sep 16, 2024): Thank you for opening a bug report. It seems that the described functionality is intended behavior. If you meant to open a feature request instead, please close this issue and open a new one using the [feature request template](https://github.com/netbox-community/netbox/issues/new?template=feature_request.md). Otherwise, please revise your post above to elaborate on why you believe the observed behavior is flawed.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#10223