mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
Create cable groups to model structured cabling #5730
Closed
opened 2025-12-29 19:31:58 +01:00 by adam
·
6 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
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/netbox#5730
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 @joaolucasmacedo on GitHub (Dec 3, 2021).
NetBox version
v3.0.11
Feature type
New functionality
Proposed functionality
Create "cable groups" to represent horizontal structured cabling systems. Each cable group may represent a set of horizontal cables that may belong to a rack, like a set of cables that begin in a user work area(usually a wall keystone) and terminate inside a rack.
Each cable group may have a number of cables in witch each side represent a rear port(keystone in user's work area) and a front port(the may connect to a patch panel rear port).
Each cable edge inside cable groups may belong to a location, so we can see in which work area inside a site it is located.
Each cable group may belong to a rack.
Each cable group may have a tenant.
Each cable inside a cable group may have length, color, labels, type, etc.
Use case
Today I often use fictional devices to represent what I'm calling "cable groups", to represent set of laying cables inside a building or building area. Each device has a number of front and rear ports, so I can connect each rear port to a patch panel inside a rack. So, each front port (in one of these fictional devices) represents a keystone plug at the desk of a user, and each cable created is a laying horizontal cable.

It is important to me because I model a set of cable just after people has finished the installation project, and I have all certification reports. This way, I can model/document all my cables without necessarily having other device connected on user's side.
I describe each location(work area) where a cable/keystone goes to in the front port's description field of each fictional device because it is not possible to associate with NetBox locations.
So, if there was possible to implement a functionality to represent these set of cables, it would be a great leap forward on cable management and documentation, like where we are involved on cabling projects. Then we could represent all cable infrastructure without necessarily have devices connected to it and document all project details.
Database changes
No response
External dependencies
No response
@tb-killa commented on GitHub (Dec 3, 2021):
I like the idea.
I think about something similar but want to call them cable bound because sometimes you have multiple cables in one cable stage for Racks.
It should allow to track multiple cables inside one bound via trace too.
@DanSheps commented on GitHub (Dec 3, 2021):
What is different from using a cable group model compared to a "fictional" device under your proposal?
I put "fictional" in quotes because even though you call it fictional, from other persons perspectives a RJ45 connector on a wall is a real device. A device doesn't have to have an IP address, a console connection, a power connection, a OS. A device in NetBox can represent anything physical.
Please fill out your proposal more in-depth. There will be some changes so you should at least propose some changes
@joaolucasmacedo commented on GitHub (Dec 4, 2021):
Well, it may be clearer for cabling management/modeling to ha a specific object do handle and shelter a number of cables that belong to a given area. Additionally, it may solve the problem where you want to locate where a specific cable point is, associating it to a NetBox Location, then we can have a much more detailed representation of cabling system. I understand when you say that NetBox can represent anything physical, but I think it is more close to a real world thing than creating a object that have multiple keystones that are not actually inside a rack and have a number of peaces placed on multiple locations.
Maybe if we have a object to shelter some cables an handle them it can be closer to real world and ease the handling of multiple cables inside a building. Also, when we model some connections, typically inside a rack, like routers and servers, it makes sense to connect each cable to ensure a level of true representation. But when modeling large sets of cables connected in a sequential manner on patch panels and on user's desk on the other side is much more complex to do and to (almost) manually create them and connect to each path panel.
If we have a object/functionality like this it may be easier to manage and understand the representation of large access level cabling and enhance the way we create batches of cables. Also, as we associate each end to a specific location it eliminates the need of checking the building's blue print to show where a cable point is.
OBS: I've just figured out the in my picture, on the patch panel, rear ports and front ports are inverted. So, switchs actually connects to front ports.
@DanSheps commented on GitHub (Dec 4, 2021):
I still don't see the draw to this approach as opposed to:
Switch [Interface] <=> [Front Port] Patch Panel (Device with type "Patch Panel") [Rear Port] <=> [Rear Port] Termination (Device with DT of "Wall Plate" [Front Port] <=> [Interface] End User Device
Infact, I would argue this is the most correct way to do this type of modelling. Sure, it is a bit of a pain to initially build out, but your inside plant should be relatively static.
I don't see us adding a cable model to already accomodate something that is already currently do-able in NetBox. If you have difficulty adding devices, etc, I suggest you look into scripts to make those tasks easier.
This can all be done in NetBox currently. The only thing I could possibly see is allowing cable groups to "bundle" cables (example 2 cables going to 1 location, or just logically grouping cables per panel). I could also see a model for a generic End-User device, but this is arguably already do-able as well.
So, perhaps only legitimate model(s) are:
@joaolucasmacedo commented on GitHub (Dec 4, 2021):
That's fair enough. But I still support the idea of cable groups to bundle cables and associate it (optionally) to locations, sites, and racks, just as you said. So it would be easier to locate where cable terminations are inside buildings and work areas.
@DanSheps commented on GitHub (Dec 6, 2021):
The problem with that is the location, site, rack can easily be obtained by searching in the endpoints themselves. A filter could be added but think about this. Lets say you have a 300ft Cat6. That could span 1 room, yes, but more then likely there are going to be a bunch of rooms, hallways and other things in between. With a cable group, you would only be able to model one of those.
If you want to re-adjust your FR to just add the cable group for now and nothing else we can give it another look.