mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
Bulk connect front/rear ports #2348
Closed
opened 2025-12-29 17:25:03 +01:00 by adam
·
28 comments
No Branch/Tag Specified
main
update-changelog-comments-docs
feature-removal-issue-type
20911-dropdown
20239-plugin-menu-classes-mutable-state
21097-graphql-id-lookups
feature
fix_module_substitution
20923-dcim-templates
20044-elevation-stuck-lightmode
feature-ip-prefix-link
v4.5-beta1-release
20068-import-moduletype-attrs
20766-fix-german-translation-code-literals
20378-del-script
7604-filter-modifiers-v3
circuit-swap
12318-case-insensitive-uniqueness
20637-improve-device-q-filter
20660-script-load
19724-graphql
20614-update-ruff
14884-script
02496-max-page
19720-macaddress-interface-generic-relation
19408-circuit-terminations-export-templates
20203-openapi-check
fix-19669-api-image-download
7604-filter-modifiers
19275-fixes-interface-bulk-edit
fix-17794-get_field_value_return_list
11507-show-aggregate-and-rir-on-api
9583-add_column_specific_search_field_to_tables
v4.5.0
v4.4.10
v4.4.9
v4.5.0-beta1
v4.4.8
v4.4.7
v4.4.6
v4.4.5
v4.4.4
v4.4.3
v4.4.2
v4.4.1
v4.4.0
v4.3.7
v4.4.0-beta1
v4.3.6
v4.3.5
v4.3.4
v4.3.3
v4.3.2
v4.3.1
v4.3.0
v4.2.9
v4.3.0-beta2
v4.2.8
v4.3.0-beta1
v4.2.7
v4.2.6
v4.2.5
v4.2.4
v4.2.3
v4.2.2
v4.2.1
v4.2.0
v4.1.11
v4.1.10
v4.1.9
v4.1.8
v4.2-beta1
v4.1.7
v4.1.6
v4.1.5
v4.1.4
v4.1.3
v4.1.2
v4.1.1
v4.1.0
v4.0.11
v4.0.10
v4.0.9
v4.1-beta1
v4.0.8
v4.0.7
v4.0.6
v4.0.5
v4.0.3
v4.0.2
v4.0.1
v4.0.0
v3.7.8
v3.7.7
v4.0-beta2
v3.7.6
v3.7.5
v4.0-beta1
v3.7.4
v3.7.3
v3.7.2
v3.7.1
v3.7.0
v3.6.9
v3.6.8
v3.6.7
v3.7-beta1
v3.6.6
v3.6.5
v3.6.4
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.5.9
v3.6-beta2
v3.5.8
v3.6-beta1
v3.5.7
v3.5.6
v3.5.5
v3.5.4
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.4.10
v3.4.9
v3.5-beta2
v3.4.8
v3.5-beta1
v3.4.7
v3.4.6
v3.4.5
v3.4.4
v3.4.3
v3.4.2
v3.4.1
v3.4.0
v3.3.10
v3.3.9
v3.4-beta1
v3.3.8
v3.3.7
v3.3.6
v3.3.5
v3.3.4
v3.3.3
v3.3.2
v3.3.1
v3.3.0
v3.2.9
v3.2.8
v3.3-beta2
v3.2.7
v3.3-beta1
v3.2.6
v3.2.5
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0
v3.1.11
v3.1.10
v3.2-beta2
v3.1.9
v3.2-beta1
v3.1.8
v3.1.7
v3.1.6
v3.1.5
v3.1.4
v3.1.3
v3.1.2
v3.1.1
v3.1.0
v3.0.12
v3.0.11
v3.0.10
v3.1-beta1
v3.0.9
v3.0.8
v3.0.7
v3.0.6
v3.0.5
v3.0.4
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v2.11.12
v3.0-beta2
v2.11.11
v2.11.10
v3.0-beta1
v2.11.9
v2.11.8
v2.11.7
v2.11.6
v2.11.5
v2.11.4
v2.11.3
v2.11.2
v2.11.1
v2.11.0
v2.10.10
v2.10.9
v2.11-beta1
v2.10.8
v2.10.7
v2.10.6
v2.10.5
v2.10.4
v2.10.3
v2.10.2
v2.10.1
v2.10.0
v2.9.11
v2.10-beta2
v2.9.10
v2.10-beta1
v2.9.9
v2.9.8
v2.9.7
v2.9.6
v2.9.5
v2.9.4
v2.9.3
v2.9.2
v2.9.1
v2.9.0
v2.9-beta2
v2.8.9
v2.9-beta1
v2.8.8
v2.8.7
v2.8.6
v2.8.5
v2.8.4
v2.8.3
v2.8.2
v2.8.1
v2.8.0
v2.7.12
v2.7.11
v2.7.10
v2.7.9
v2.7.8
v2.7.7
v2.7.6
v2.7.5
v2.7.4
v2.7.3
v2.7.2
v2.7.1
v2.7.0
v2.6.12
v2.6.11
v2.6.10
v2.6.9
v2.7-beta1
Solcon-2020-01-06
v2.6.8
v2.6.7
v2.6.6
v2.6.5
v2.6.4
v2.6.3
v2.6.2
v2.6.1
v2.6.0
v2.5.13
v2.5.12
v2.6-beta1
v2.5.11
v2.5.10
v2.5.9
v2.5.8
v2.5.7
v2.5.6
v2.5.5
v2.5.4
v2.5.3
v2.5.2
v2.5.1
v2.5.0
v2.4.9
v2.5-beta2
v2.4.8
v2.5-beta1
v2.4.7
v2.4.6
v2.4.5
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.7
v2.4-beta1
v2.3.6
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.10
v2.3-beta2
v2.2.9
v2.3-beta1
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.6
v2.2-beta2
v2.1.5
v2.2-beta1
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.10
v2.1-beta1
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v2.0.0
v2.0-beta3
v1.9.6
v1.9.5
v2.0-beta2
v1.9.4-r1
v1.9.3
v2.0-beta1
v1.9.2
v1.9.1
v1.9.0-r1
v1.8.4
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.7.3
v1.7.2-r1
v1.7.1
v1.7.0
v1.6.3
v1.6.2-r1
v1.6.1-r1
1.6.1
v1.6.0
v1.5.2
v1.5.1
v1.5.0
v1.4.2
v1.4.1
v1.4.0
v1.3.2
v1.3.1
v1.3.0
v1.2.2
v1.2.1
v1.2.0
v1.1.0
v1.0.7-r1
v1.0.7
v1.0.6
v1.0.5
v1.0.4
v1.0.3-r1
v1.0.3
1.0.0
Labels
Clear labels
beta
breaking change
complexity: high
complexity: low
complexity: medium
needs milestone
netbox
pending closure
plugin candidate
pull-request
severity: high
severity: low
severity: medium
status: accepted
status: backlog
status: blocked
status: duplicate
status: needs owner
status: needs triage
status: revisions needed
status: under review
topic: GraphQL
topic: Internationalization
topic: OpenAPI
topic: UI/UX
topic: cabling
topic: event rules
topic: htmx navigation
topic: industrialization
topic: migrations
topic: plugins
topic: scripts
topic: templating
topic: testing
type: bug
type: deprecation
type: documentation
type: feature
type: housekeeping
type: translation
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/netbox#2348
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @deku-m on GitHub (Feb 5, 2019).
Environment
Proposed Functionality
Normally front/rear ports match so port 1 on front is same as rear port 1 at the same "device" cq. patch panel. As we created front and rear ports on a patch panel So these ports could match each other to fast connect front to rear in a patch panel.
It could also be great if its possible to bulk connect them to different panel. For example we have a panel named M18-M17. Which mean in rack M18 there is a panel towards M17 with fiber with 24 ports (pre-patched). This could also help for port-bundeling.
Use Case
On the same "patch panel". Match port 1 from front to 1 from rear. 1:1, 2:2, etc.
Or provide a bulk connect. With selecting all and let them connect to each other to same panel or different panel to front or rear.
Database Changes
N/A
External Dependencies
N/A
@jeremystretch commented on GitHub (Feb 13, 2019):
This needs much more detail to be actionable. What is the workflow being proposed? What new views and forms would be introduced?
@tb-killa commented on GitHub (Feb 14, 2019):
For the sake of simplicity,
in the bulk-mode there should be an option to 1:1 connect all ports of a patch panel to another.
You Start on your Selected Patchpanel and could select on "edit" in the new view your counterpart.
After selecting and proceeding both a connected 1:1.
Maybe some Sort of Extension of "Closes #2854: Enable bulk editing of pass-through ports" ?
Hint: The counterpart should only be selectable if there isn´t a connection available on this device.
@candlerb commented on GitHub (Feb 14, 2019):
I support this idea, but add it's not always 1:1, e.g. you may be crossing over pairs.
Simple idea: under "Cable" have a "Bulk add" page.
PO[1-12]PO[2,1,4,3,6,5,8,7,10,9,12,11]You could also do it from the device page: with multiple interfaces to be selected, click a "Bulk connect..." button and it can go to the same page, but pre-populate the device A, port type A and range A - the latter as a simple list e.g.
[PO1,PO2,PO3,...]@tb-killa commented on GitHub (Feb 14, 2019):
Yes this is a great solution.
Let's use some regex to build the connections.
I use the term of 1:1 because it's easier to implement.
I think it would be also okay if you get automatic build 1:1 connections and modify them later by hand themselve.
@candlerb commented on GitHub (Feb 14, 2019):
Interesting, regex matching against the actual interface names on a device is possible.
But I think it would be simpler and less confusing to use the interface name generation patterns that already exist, e.g. when bulking adding interfaces.
In the case of 1:1 it would be the same but simpler than the example I gave.
PO[1-12]PO[1-12]Modifying connections is harder than you think, because there's not a way to swap connections; indeed there's not even a way to change one endpoint of a cable at the moment.
You would have to delete two connections and create two new connections, which is worse than not having bulk upload in the first place.
@tb-killa commented on GitHub (Feb 14, 2019):
Yes your right, I test them...
I agree with to use the interface name generation patterns that already exist.
@deku-m commented on GitHub (Feb 20, 2019):
Sorry for late reaction. Think the above comments already give a good view/idea.
My view was almost the same but didnt included the multiple connections / cross connections from front port to rear. We don`t use that for patchpanels. As they mainly are 1on1 connection.
The most common way in my view for patchpanels to implement this is to link the front / rear panel to the same port numbers. 1/1, 2/2, 3/3. So selecting front ports and match / connect them with the rear.
If you think about it. If you create a front panel also the same rear panel is created with same numbering as front so you can also create it on the back-end then so that they are linked. Then you don`t have to bulk edit the front to rear connections in my opinion.
@candlerb commented on GitHub (Mar 6, 2019):
If you correctly model the Front to Rear port connections in the Device Type object, then you should get them created automatically whenever you create a Device instance of that type.
Furthermore, it's already possible to create the Front to Rear connections in bulk in the Device Type.
R[1-24])F[1-24]). At the bottom you'll see a list of rear ports, "R1:1" to "R24:1". Select them all (click on first, shift-click on last)You'll find you have 24 front ports, all linked 1:1 to the 24 rear ports.
Where I would find the real value in bulk-add would be in connecting between two different devices, in particular:
And as described before, I'd like to be able to do this with crossovers rather than just 1:1.
@deku-m commented on GitHub (Mar 13, 2019):
@candlerb
It is correct that they are linked in the device type but they arent connected for cabling.
Yes on front ports i see that its a 1on1 relation. But as soon as you check it in the rack its not connected. So its not a fully path with connected device to patchpanel front to back to another device.
@candlerb commented on GitHub (Mar 13, 2019):
Sorry, I think I am not understanding something.
You can create a cable between device X to the front port on device Y, and you can create a cable between the rear port on device Y to device Z.
The internal connection from the front port on Y to the rear port of device Y is part of the device itself. Whenever you add a front port to a device, you must associate it with a rear port, and that represents the internal connection.
In the original post you said:
But it is impossible to create a front port without connecting it to a rear port. Netbox won't let you create an isolated front port.
So that's a separate issue: if I understand, you want to connect rear ports 1-24 on panel X to rear ports 1-24 on panel Y, without creating 24 separate cables.
That's a reasonable request. There are some proposals above for this. The same could also apply to interface-to-interface or interface-to-front port connections. Those are all "cables". But it doesn't apply to front-to-rear port connections within the same device; those are not cables.
@golec83 commented on GitHub (Mar 20, 2019):
Hi,
I would like to add my request to bulk join rear ports between different patch panels. Thanks!
@rogeriosims commented on GitHub (Apr 16, 2019):
Sorry, I'm new here and in github.
How is the development of this function?
Connect bulk ports between different devices.
Thanks!
@tiffanykaczmarek commented on GitHub (May 14, 2019):
Hey there!
I have encountered the same issue, that's why I decided to develop a tool to bulk connect rear ports between different devices on my own. If you'd like, you can take a look at my project and maybe it can help a few of you out there, until netbox implements the feature.
With best regards, Tiffany Kaczmarek
@lmgonzalezl commented on GitHub (Nov 12, 2019):
Proposed workflow
Visually I see it as follows:
I would keep the current format to select the rear ports but with the option to select both side a and side b and add a pop-up window that allows you to choose cable type, length, color, etc ... this would add it in a table.
Select rear ports on both sides

Pop-up window

Table

What happens if some of the rear ports are already connected, or one panel has more than the other?
As validation is done this will not be a problem because connected ports already are disabled from the selection.
@m384wwn commented on GitHub (Jun 27, 2020):
Mapping the front to back or back to front descriptions would be a huge timesaver. Along with he bulk edit select feature mentioned here https://github.com/netbox-community/netbox/issues/2854#issuecomment-461317108
@stale[bot] commented on GitHub (Jan 1, 2021):
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. NetBox is governed by a small group of core maintainers which means not all opened issues may receive direct feedback. Please see our contributing guide.
@JonathonReinhart commented on GitHub (Jan 3, 2021):
I think the lack of this functionality still represents a large hurdle in modeling large-ish cable plants, often found in an enterprise. Thus, I'd hate to see it closed and lost in the ether. I would be interested in taking a look at implementing this, but I'm not sure yet when I will have the time.
@tvberlin commented on GitHub (Jan 4, 2021):
+1, would appreciate if this can be considered for implementation.
@jeremystretch commented on GitHub (Jan 4, 2021):
@JonathonReinhart @tvberlin are either of you willing to commit to implementing the feature? If not, the "pending closure" label will be re-applied and the issue will likely be closed automatically.
@nikor30 commented on GitHub (Jan 19, 2021):
Hi, so having tow patchpannels directly one to one connected is not an genral netbox feature which should be considered ?
I just aggree with them so having an new site build up in netbox with several patch pannels is hughe effort to (consider without scipting apai etc.) in the gui to click on every port.
So considereing tow pannels to be 1 to 1 linked to each other should be in the standart of netbox.
Regards Niko
@jeremystretch commented on GitHub (Jan 19, 2021):
Of course it should be considered, and it is. That's what we're discussing in this issue. However, it doesn't seem like anyone is interested in committing to the work.
@nikor30 commented on GitHub (Jan 20, 2021):
Understand , so I can do testing if feature is working and sugest also into the design of how it should work and look like.
I am not a programmer so thats my limited contribution I can give here for this topic.
Is it possible to put this topic up to be more visible so we can find one who has programming skills to contribute and work n this feature ?
Regards Niko
@FloMeyer commented on GitHub (Feb 15, 2021):
Hi,
yeah i think 1:1 Mapping between Rear-Ports of two devices would be great.
I think the view could be build like this:
If i got some time i'll have a look into the code if I can make this possible. But I don't know if that's beyond my capabilities...
@github-actions[bot] commented on GitHub (Apr 15, 2021):
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. NetBox is governed by a small group of core maintainers which means not all opened issues may receive direct feedback. Please see our contributing guide.
@github-actions[bot] commented on GitHub (May 4, 2021):
This issue has been automatically closed due to lack of activity. In an effort to reduce noise, please do not comment any further. Note that the core maintainers may elect to reopen this issue at a later date if deemed necessary.
@jaltgen commented on GitHub (May 10, 2021):
It's a shame this got auto-closed. When planning new facilities with lots of structured cabling via patchpanels, this functionality is crucial. Netbox is amazing, the documentation and install was so easy and its so very useable, just, for physical installations, the current manual patching between rear-ports is just to cumbersome if I was to model, say, a 128x128 patch bay.
Any way to reopen this?
@jeremystretch commented on GitHub (May 10, 2021):
This issue was closed because no one wanted to volunteer to do the work. As the discussion period has ended, we won't be re-opening this in the near future, however you're welcome to take a shot at building a plugin that performs this function. Maybe once a working proof-of-concept has been produced we can revisit the proposal to add it to NetBox core.
@jaltgen commented on GitHub (May 10, 2021):
Thanks @jeremystretch I'll have a review with our team and see if I can get back down and dirty with django to come up with a cool solution ;)