Unable to create multi-termination cable between rear ports if front occupied #8694

Closed
opened 2025-12-29 20:40:00 +01:00 by adam · 10 comments
Owner

Originally created by @shepherdjay on GitHub (Sep 28, 2023).

NetBox version

v3.6.3

Python version

3.8

Steps to Reproduce

Prep Device Types and devices

  1. Create generic manufacturer, generic device role, and generic site to hold the devices and device-type definitions.
  2. Create a device type parent "2-bay-device", with two module bays [A,B] positions [A,B]
  3. Create a device type "switch", with at least one interface.
  4. Create a module type "fiber-patch-module"
  5. To module type "fiber-patch-module" add one rear interface "{module}1-6" with 6 positions of type splice
  6. To module type "fiber-patch-module" add six front interfaces "{module}[1-6]" of type LC
  7. Create two devices of "2-bay-device", named "fiber1" and "fiber2" and fully populate with new modules
  8. Create two devices of "switch", "switch1" and "switch2"
  9. Connect interface on "switch1" to front port "A1" on "fiber1"
  10. Connect interface on "switch2" to front port "A1" on "fiber2"

Create bug

  1. Navigate to fiber1 rear ports and select create cable to rear port
  2. For A Side rear ports select fiber1 as device and rear ports as A1-6, B1-6
  3. For B side rear ports select fiber2 as device and rear ports as A1-6, B1-6

Expected Behavior

Cable should be created

Observed Behavior

An AssertionError is raised

From debug it shows as the following

Exception Location : /opt/netbox/netbox/dcim/models/cables.py, line 625, in from_origin
Raised During : dcim.views.CableEditView

Originally created by @shepherdjay on GitHub (Sep 28, 2023). ### NetBox version v3.6.3 ### Python version 3.8 ### Steps to Reproduce Prep Device Types and devices 1. Create generic manufacturer, generic device role, and generic site to hold the devices and device-type definitions. 2. Create a device type parent "2-bay-device", with two module bays [A,B] positions [A,B] 3. Create a device type "switch", with at least one interface. 4. Create a module type "fiber-patch-module" 5. To module type "fiber-patch-module" add one rear interface "{module}1-6" with 6 positions of type splice 6. To module type "fiber-patch-module" add six front interfaces "{module}[1-6]" of type LC 7. Create two devices of "2-bay-device", named "fiber1" and "fiber2" and fully populate with new modules 8. Create two devices of "switch", "switch1" and "switch2" 9. Connect interface on "switch1" to front port "A1" on "fiber1" 10. Connect interface on "switch2" to front port "A1" on "fiber2" Create bug 1. Navigate to fiber1 rear ports and select create cable to rear port 2. For A Side rear ports select fiber1 as device and rear ports as A1-6, B1-6 3. For B side rear ports select fiber2 as device and rear ports as A1-6, B1-6 ### Expected Behavior Cable should be created ### Observed Behavior An AssertionError is raised From debug it shows as the following Exception Location : /opt/netbox/netbox/dcim/models/cables.py, line 625, in from_origin Raised During : dcim.views.CableEditView
adam added the type: bug label 2025-12-29 20:40:00 +01:00
adam closed this issue 2025-12-29 20:40:00 +01:00
Author
Owner

@shepherdjay commented on GitHub (Oct 2, 2023):

Our production version is currently running v3.5.4 and this is working in that version. Bug possibly introduced as part of #13337 ?

@shepherdjay commented on GitHub (Oct 2, 2023): Our production version is currently running v3.5.4 and this is working in that version. Bug possibly introduced as part of #13337 ?
Author
Owner

@DanSheps commented on GitHub (Oct 2, 2023):

For A Side rear ports select fiber1 as device and rear ports as A1-6, B1-6
For B side rear ports select fiber2 as device and rear ports as A1-6, B1-6

This step is incorrect (and impossible in the real world). You are essentially saying:

  1. Take Cable #1, and connect it to "A" on Fiber panel 1, but "A and B" on fiber panel 2
  2. Take Cable #2, and connect it to "B" on Fiber panel 1, but "A and B" on fiber panel 2

The correct step would be either:

  1. Create a cable from fiber1:A1-6 to fiber2:A1-6
  2. Create a cable from fiber1:B1-6 to fiber2:B1-6

or

  1. Create a cable from fiber1:A1-6 and fiber1:B1-6 to fiber2:A1-6 and fiber2:B1-6

There is an assert on the second one, I need to investigate the variable stack to figure out why, but I suspect we just need to always push rear-port positions instead of just sometimes pushing them.

Could you confirm whehther the step is the second variant or if you are just incorrectly applying the cable creation logic?

@DanSheps commented on GitHub (Oct 2, 2023): > For A Side rear ports select fiber1 as device and rear ports as A1-6, B1-6 > For B side rear ports select fiber2 as device and rear ports as A1-6, B1-6 This step is incorrect (and impossible in the real world). You are essentially saying: 1. Take Cable #1, and connect it to "A" on Fiber panel 1, but "A and B" on fiber panel 2 2. Take Cable #2, and connect it to "B" on Fiber panel 1, but "A and B" on fiber panel 2 The correct step would be either: 1. Create a cable from fiber1:A1-6 to fiber2:A1-6 2. Create a cable from fiber1:B1-6 to fiber2:B1-6 or 1. Create a cable from fiber1:A1-6 and fiber1:B1-6 to fiber2:A1-6 and fiber2:B1-6 There is an assert on the second one, I need to investigate the variable stack to figure out why, but I suspect we just need to always push rear-port positions instead of just sometimes pushing them. Could you confirm whehther the step is the second variant or if you are just incorrectly applying the cable creation logic?
Author
Owner

@shepherdjay commented on GitHub (Oct 3, 2023):

This step is incorrect (and impossible in the real world).

But then

Create a cable from fiber1:A1-6 and fiber1:B1-6 to fiber2:A1-6 and fiber2:B1-6

This is what that step stated to do. Perhaps in my attempt to be precise and verbose for a bug report it was needlessly confusing? After clicking on one of the two rear ports on fiber1 to create a cable you are given a form to fill out that labels it A Side and B Side. The steps under create bug are all refering to only the single form. There is otherwise no form to create a cable directly except via clicking on a port first or knowing the url to add cable.

To be clear this should be the topology I'm trying to recreate:

We have modular fiber panels. The 2u variant accepts two modules (a and b)... if at the beginning of a build we populate both with 12 strand modules then a single 24 strand cable is ran. If however we populate only a single 12 strand module and then at a later date another 12 strand module then we are going to have ran 2x 12 strand cables.

For completeness mermaid of the panel close up

@shepherdjay commented on GitHub (Oct 3, 2023): > This step is incorrect (and impossible in the real world). But then > Create a cable from fiber1:A1-6 and fiber1:B1-6 to fiber2:A1-6 and fiber2:B1-6 This is what that step stated to do. Perhaps in my attempt to be precise and verbose for a bug report it was needlessly confusing? After clicking on one of the two rear ports on `fiber1` to create a cable you are given a form to fill out that labels it A Side and B Side. The steps under create bug are all refering to only the single form. There is otherwise no form to create a cable directly except via clicking on a port first or knowing the url to add cable. To be clear this should be the topology I'm trying to recreate: [![](https://mermaid.ink/img/pako:eNqVU8tugzAQ_BVrzyESqOqBW6Vcc2pvOIf1A7BkbGSM0ijKv9fgQgOISuE03pnZnbXwHbgVEnIotb3yGp0nXydqSPi6q_K8Tp8P2QAXLEmOhIK2leKoKRyTSblSJRTOVvRakg_S2jAlpRCqCSkVky5tMOrHU9ZgoMieYzmgZ5XDtiZtfeuGDIQj08pUkZ57fnNrjOS-yN5I5x0aEeuXlS6dZqfZr657Djq12bjYa645drRvQxQR5Jgm79uMbKLZkpZG7Oz9X7xsuv0XXWxvn2zVLgwoKEQ4bkThspGwPwlbS-a9AoADNNI1qET4a-9DmYKvZSMp5AEKWWKvPQVqHkGKvbefN8Mh966XB-hbgV6eFIa4DeQl6i5UpVDeunN8CeODePwACx3w_w?type=png)](https://mermaid.live/edit#pako:eNqVU8tugzAQ_BVrzyESqOqBW6Vcc2pvOIf1A7BkbGSM0ijKv9fgQgOISuE03pnZnbXwHbgVEnIotb3yGp0nXydqSPi6q_K8Tp8P2QAXLEmOhIK2leKoKRyTSblSJRTOVvRakg_S2jAlpRCqCSkVky5tMOrHU9ZgoMieYzmgZ5XDtiZtfeuGDIQj08pUkZ57fnNrjOS-yN5I5x0aEeuXlS6dZqfZr657Djq12bjYa645drRvQxQR5Jgm79uMbKLZkpZG7Oz9X7xsuv0XXWxvn2zVLgwoKEQ4bkThspGwPwlbS-a9AoADNNI1qET4a-9DmYKvZSMp5AEKWWKvPQVqHkGKvbefN8Mh966XB-hbgV6eFIa4DeQl6i5UpVDeunN8CeODePwACx3w_w) We have modular fiber panels. The 2u variant accepts two modules (a and b)... if at the beginning of a build we populate both with 12 strand modules then a single 24 strand cable is ran. If however we populate only a single 12 strand module and then at a later date another 12 strand module then we are going to have ran 2x 12 strand cables. For completeness mermaid of the panel close up [![](https://mermaid.ink/img/pako:eNp9089rwyAUB_B_JbzTBkmpGlPjcfS603paU8YzmjXQxGINW1f6vy9thiOw6enx_PjjC3qB2moDEpqD_aj36HyyWVd9Mo7ToN4dHvdJ0yrjyNTUrTO1b22fPG2mzjT7hmQ7VRLJLsmy7GeiwzmjgdEYY4GxGMsDy2OMB8ZjrAisiDAVkqp5UjVnIamiMRaSKhZjIanKYywkVTzGQlJV_M86ta0gRM2K5MEZdI8V7GYKfxX-oUyvIYXOuA5bPT60y61dgd-bzlQgx1KbBoeDr6DqryPFwduXc1-D9G4wKQxHjd6sWxxfYweywcNp7B6xB3mBT5BiteCELQXjlDHBSp7CGSQlC8FIIfiKUkFyTug1hS9rxx2Wi5ItaUlpLlaUi5KQFIxuvXXP01-4f4n7Ea_3Bbd7XL8B1j34Bg?type=png)](https://mermaid.live/edit#pako:eNp9089rwyAUB_B_JbzTBkmpGlPjcfS603paU8YzmjXQxGINW1f6vy9thiOw6enx_PjjC3qB2moDEpqD_aj36HyyWVd9Mo7ToN4dHvdJ0yrjyNTUrTO1b22fPG2mzjT7hmQ7VRLJLsmy7GeiwzmjgdEYY4GxGMsDy2OMB8ZjrAisiDAVkqp5UjVnIamiMRaSKhZjIanKYywkVTzGQlJV_M86ta0gRM2K5MEZdI8V7GYKfxX-oUyvIYXOuA5bPT60y61dgd-bzlQgx1KbBoeDr6DqryPFwduXc1-D9G4wKQxHjd6sWxxfYweywcNp7B6xB3mBT5BiteCELQXjlDHBSp7CGSQlC8FIIfiKUkFyTug1hS9rxx2Wi5ItaUlpLlaUi5KQFIxuvXXP01-4f4n7Ea_3Bbd7XL8B1j34Bg)
Author
Owner

@ThomasADavis commented on GitHub (Oct 3, 2023):

I'm the original bug author for the #11079 - and finally getting around to testing things out.

Not working for me at all; same thing as above, modular patch panel, the 6 lc front port, 1 MPO rear port, except before, we could attach an interface to multiple front ports as long as those front ports was associated with just a single rear port (aka, same module). Now, it doesn't work at all.

this is from v3.5.9:

Screenshot_2023-10-02_18-55-37

Doing this:

turn on debug in netbox config.
create patch panel.
create module bay in patch panel.
create module, 6 lc front port, 1 MPO rear port.
create device
create network interface on device

create cable from network interface to a front port LC on the patch panel.

aka

Screenshot_2023-10-02_18-50-00

Get this error:

Internal Server Error: /dcim/cables/add/
Traceback (most recent call last):
  File "/opt/netbox/venv/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/venv/lib/python3.11/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.11/site-packages/django/views/generic/base.py", line 104, in view
    return self.dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/netbox/dcim/views.py", line 3198, in dispatch
    return super().dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/netbox/netbox/views/generic/object_views.py", line 170, 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 99, in dispatch
    return super().dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/venv/lib/python3.11/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 264, in post
    obj = form.save()
          ^^^^^^^^^^^
  File "/opt/netbox/venv/lib/python3.11/site-packages/django/forms/models.py", line 542, in save
    self.instance.save()
  File "/opt/netbox/netbox/dcim/models/cables.py", line 229, in save
    trace_paths.send(Cable, instance=self, created=_created)
  File "/opt/netbox/venv/lib/python3.11/site-packages/django/dispatch/dispatcher.py", line 176, in send
    return [
           ^
  File "/opt/netbox/venv/lib/python3.11/site-packages/django/dispatch/dispatcher.py", line 177, in <listcomp>
    (receiver, 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 625, in from_origin
    assert len(remote_terminations) == len(positions)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError
10.42.1.26 - - [03/Oct/2023:01:27:54 +0000] "POST /dcim/cables/add/?a_terminations_type=dcim.interface&a_terminations=10461&b_terminations_type=dcim.frontport&return_url=/dcim/interfaces/10461/ HTTP/1.1" 500 167089 "https://netbox-dev.nersc.gov/dcim/cables/add/?a_terminations_type=dcim.interface&a_terminations=10461&b_terminations_type=dcim.frontport&return_url=/dcim/interfaces/10461/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"

The actual post data is:

Screenshot_2023-10-02_18-54-14

Example of the patch panel:

Screenshot_2023-10-02_18-56-50

@ThomasADavis commented on GitHub (Oct 3, 2023): I'm the original bug author for the #11079 - and finally getting around to testing things out. Not working for me at all; same thing as above, modular patch panel, the 6 lc front port, 1 MPO rear port, except before, we could attach an interface to multiple front ports as long as those front ports was associated with just a single rear port (aka, same module). Now, it doesn't work at all. this is from v3.5.9: ![Screenshot_2023-10-02_18-55-37](https://github.com/netbox-community/netbox/assets/12158973/c2c3b2c8-f573-4003-b825-b76d38d665de) Doing this: turn on debug in netbox config. create patch panel. create module bay in patch panel. create module, 6 lc front port, 1 MPO rear port. create device create network interface on device create cable from network interface to a front port LC on the patch panel. aka ![Screenshot_2023-10-02_18-50-00](https://github.com/netbox-community/netbox/assets/12158973/9a21c319-ff4c-49b1-96cc-3c623c503670) Get this error: ``` Internal Server Error: /dcim/cables/add/ Traceback (most recent call last): File "/opt/netbox/venv/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) ^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/venv/lib/python3.11/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.11/site-packages/django/views/generic/base.py", line 104, in view return self.dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/dcim/views.py", line 3198, in dispatch return super().dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/netbox/views/generic/object_views.py", line 170, 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 99, in dispatch return super().dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/venv/lib/python3.11/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 264, in post obj = form.save() ^^^^^^^^^^^ File "/opt/netbox/venv/lib/python3.11/site-packages/django/forms/models.py", line 542, in save self.instance.save() File "/opt/netbox/netbox/dcim/models/cables.py", line 229, in save trace_paths.send(Cable, instance=self, created=_created) File "/opt/netbox/venv/lib/python3.11/site-packages/django/dispatch/dispatcher.py", line 176, in send return [ ^ File "/opt/netbox/venv/lib/python3.11/site-packages/django/dispatch/dispatcher.py", line 177, in <listcomp> (receiver, 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 625, in from_origin assert len(remote_terminations) == len(positions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AssertionError 10.42.1.26 - - [03/Oct/2023:01:27:54 +0000] "POST /dcim/cables/add/?a_terminations_type=dcim.interface&a_terminations=10461&b_terminations_type=dcim.frontport&return_url=/dcim/interfaces/10461/ HTTP/1.1" 500 167089 "https://netbox-dev.nersc.gov/dcim/cables/add/?a_terminations_type=dcim.interface&a_terminations=10461&b_terminations_type=dcim.frontport&return_url=/dcim/interfaces/10461/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36" ``` The actual post data is: ![Screenshot_2023-10-02_18-54-14](https://github.com/netbox-community/netbox/assets/12158973/1e7b29de-1fae-4662-bc58-fc90d5b0e7a3) Example of the patch panel: ![Screenshot_2023-10-02_18-56-50](https://github.com/netbox-community/netbox/assets/12158973/2109550e-4544-4461-bd58-031617de6b6f)
Author
Owner

@DanSheps commented on GitHub (Oct 3, 2023):

Thanks for getting back.

So, unfortunately this is still an unsupported connection.

With multiple positions, you cannot determine which is the "peer" for the rear port. Example:

  • Is the peer for MPO1-12 positions 1-6 MPO2-6 or is it MPO3-6?
  • Is the peer for MPO1-12 positions 7-12 MPO2-6 or MPO3-6?

There currently is no easy way to track this as there is no association between rear-port positions and their peers. It does work if you use 2 separate caables but what you are trying to do will likely always be unsuported unless we go deeper on cabling (strands, buffer, jacket). I understand what you are trying to do though, and I would recommend breaking it out into separate cables and giving them the same name. It isn't the "correct" way to do it but it is the best way.

@DanSheps commented on GitHub (Oct 3, 2023): Thanks for getting back. So, unfortunately this is still an unsupported connection. With multiple positions, you cannot determine which is the "peer" for the rear port. Example: * Is the peer for MPO1-12 positions 1-6 MPO2-6 or is it MPO3-6? * Is the peer for MPO1-12 positions 7-12 MPO2-6 or MPO3-6? There currently is no **easy** way to track this as there is no association between rear-port positions and their peers. It does work if you use 2 separate caables but what you are trying to do will likely always be unsuported unless we go deeper on cabling (strands, buffer, jacket). I understand what you are trying to do though, and I would recommend breaking it out into separate cables and giving them the same name. It isn't the "correct" way to do it but it is the best way.
Author
Owner

@DanSheps commented on GitHub (Oct 3, 2023):

To be clear this should be the topology I'm trying to recreate:

You should likely model these as 2 separate cables, as if you get down to it, then MPO is likely 2 separate MPO connectors and as such should be 2 separate cables.

@DanSheps commented on GitHub (Oct 3, 2023): > To be clear this should be the topology I'm trying to recreate: > > [![](https://camo.githubusercontent.com/dacf3105e12cd9664f7659e3797cd4b36f3a2a89bbc3a19ae0514084cb9af72d/68747470733a2f2f6d65726d6169642e696e6b2f696d672f70616b6f3a654e715655387475677a41515f4256727a794553714f714257365663633270764f4966314137426b6247534d30696a4b7639666751674f495375453033706e5a6e62587748626756456e496f746233794770306e5879647153506936715f4b3854703850325141584c456d4f68494b326c654b6f4b52795453626c534a52544f567652616b675f53326a416c7052437143536b566b7935744d4f724855395a676f4d6965597a6d675a35584474695a74666575474449516a303870556b5a3537666e4e726a4f532d794e354935783061456575586c5336645a71665a72363537446a713132626a59613634356472527651785152354a676d3739754d624b4c5a6b705a47374f7a395837787375763058585778766e327a564c67776f4b455134626b54687370477750776c62532d6139416f41444e4e493171455434612d39446d594b765a534d703541454b57574b7650515671486b474b766265664e384d6839363658422d686267563665464961344465516c3669355570564465756e4e3843654f4465507741437833775f773f747970653d706e67)](https://mermaid.live/edit#pako:eNqVU8tugzAQ_BVrzyESqOqBW6Vcc2pvOIf1A7BkbGSM0ijKv9fgQgOISuE03pnZnbXwHbgVEnIotb3yGp0nXydqSPi6q_K8Tp8P2QAXLEmOhIK2leKoKRyTSblSJRTOVvRakg_S2jAlpRCqCSkVky5tMOrHU9ZgoMieYzmgZ5XDtiZtfeuGDIQj08pUkZ57fnNrjOS-yN5I5x0aEeuXlS6dZqfZr657Djq12bjYa645drRvQxQR5Jgm79uMbKLZkpZG7Oz9X7xsuv0XXWxvn2zVLgwoKEQ4bkThspGwPwlbS-a9AoADNNI1qET4a-9DmYKvZSMp5AEKWWKvPQVqHkGKvbefN8Mh966XB-hbgV6eFIa4DeQl6i5UpVDeunN8CeODePwACx3w_w) You should likely model these as 2 separate cables, as if you get down to it, then MPO is likely 2 separate MPO connectors and as such should be 2 separate cables.
Author
Owner

@DanSheps commented on GitHub (Oct 3, 2023):

Going to close this out as this is not a bug, just an unsupported path connection.

@DanSheps commented on GitHub (Oct 3, 2023): Going to close this out as this is not a bug, just an unsupported path connection.
Author
Owner

@shepherdjay commented on GitHub (Oct 3, 2023):

@DanSheps -- I'm not sure this should be closed. Understood its not a supported connection topology but previously this type of connection could be performed and would show a path split on the cable trace. Now this type of connection creates an assertion failure. At a minimum that should be captured by the form and presented to the user as a friendly error.

@shepherdjay commented on GitHub (Oct 3, 2023): @DanSheps -- I'm not sure this should be closed. Understood its not a supported connection topology but previously this type of connection could be performed and would show a path split on the cable trace. Now this type of connection creates an assertion failure. At a minimum that should be captured by the form and presented to the user as a friendly error.
Author
Owner

@shepherdjay commented on GitHub (Oct 3, 2023):

@DanSheps -- Importantly in regards to this bug report, this trace only appears if the front port is connected to another device. It does allow you to create the rear port connections if the front is completely empty.

@shepherdjay commented on GitHub (Oct 3, 2023): @DanSheps -- Importantly in regards to this bug report, this trace only appears if the front port is connected to another device. It does allow you to create the rear port connections if the front is completely empty.
Author
Owner

@jcollie commented on GitHub (Oct 3, 2023):

Going to close this out as this is not a bug, just an unsupported path connection.

That seems bad. There should not be an assertion, even if it's unsupported. An unsupported connection should result in an error message to user as suggested by @shepherdjay .

@jcollie commented on GitHub (Oct 3, 2023): > Going to close this out as this is not a bug, just an unsupported path connection. That seems bad. There should not be an assertion, even if it's unsupported. An unsupported connection should result in an error message to user as suggested by @shepherdjay .
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#8694