mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
Request cable tag field for all connection types #734
Closed
opened 2025-12-29 16:25:14 +01:00 by adam
·
16 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
status: duplicate
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/netbox#734
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 @flyingrhinonz on GitHub (Feb 28, 2017).
Firstly, thanks for a wonderful program that is so useful to all of us who work in data centers.
Secondly, thanks for making it open source for us to share and improve.
In our data center we tag each cable with a unique code (same code at both ends of the cable), so that any engineer can lookup the code and instantly knows where it connects.
It's worked great for us while our DC maps were in txt and xls files. Now we're moving to netbox and we really miss cable tag functionality that we'd like to associate with connections.
I've added a custom cable-tag field to "circuits" , but as far as I see, there's no way to add a custom field to any of the "connections" . At present we're inserting the cable tag into the connection name (interfaces, power, etc).
I request a feature where either the connections already have a "Cable Tag" text field (about 8+ alphanumeric is enough for us, but other might want longer).
Alternatively, can you add an option to "Custom fields" where this field may be added to Connections ?
Searchable field please.
If the above two are two hard, can you add an option to search the connections names ? Then we'll continue putting the cable tag into the name field.
Finally, is there a way for me to manually configure this ? Like edit some config file ?
I'm not a programmer, so editing the code is beyond my ability :(
Thanks
@quentindavid commented on GitHub (Feb 28, 2017):
+1, but this is a duplicate...
@flyingrhinonz commented on GitHub (Feb 28, 2017):
My apologies, I did look for this feature request before posting mine but didn't spot any. Must have missed it.
@quentindavid commented on GitHub (Feb 28, 2017):
look at #20
@jeremystretch commented on GitHub (Feb 28, 2017):
This is indeed covered by the mega-feature request of #20, but I'll comment:
The reason we don't include a cable label field on a connection is that a connection will likely comprise more than one physical cable. For example, an interface might connect to a patch panel, which connects to another patch panel, and finally to the peer interface. We want to ensure that we can support this model in the future, so we omit the concept of labeling for now to avoid future confusion.
@quentindavid commented on GitHub (Feb 28, 2017):
Hi @jeremystretch, I understand, but a first "simple" solution would be to allow the naming of connections, without consideration for "patch panels".
By the way, could we just imagine patch panels like any other device, with connections from and to it ?
@jeremystretch commented on GitHub (Feb 28, 2017):
Unfortunately, today's "simple" solution inevitably becomes tomorrow's technical debt. If cable labeling is a must-have feature for you, NetBox simply isn't the right solution (yet).
There are two concepts in which we consider links: logically and physically. The logical concept entails the end-to-end connection as an atomic unit; e.g. eth0 on device A connected to ge-0/0/12 on device B. This is what NetBox models today.
The physical concept exists in parallel as a sort of underlay. In this model, we'd track individual cables, patch panels, etc. It would be extremely inefficient to have to parse the physical model only to determine the two logical endpoints of a connection, so we want to model it separately. Additionally, we need a model capable of expressing the many nuances of a cabling plant. For example, we should be able to define a patch panel which has LC fiber connections on the front, and MPO trunks on the back, and still be able to trace a single pair through it.
@quentindavid commented on GitHub (Feb 28, 2017):
I understand, then would it be possible to give an ID to each connection, in a logical point of view ?
Because as I understand, another model to create and to implement is not really easy and quickly possible ^^
Thanks a lot for your work ;)
@flyingrhinonz commented on GitHub (Feb 28, 2017):
Thanks for the responses.
How about the option of adding a custom field to the connection? In this way it is not directly tied to netbox development, yet allows us to manage cable tags.
It's possible to add a custom field to many other tables in netbox, and I assume that every custom field is treated as external data. Therefore, if you allowed us to add a text field to connections (searchable please), then it would serve our purpose, and at the same time not impede any future netbox roadmap.
BTW, in our company, if a cable connects from a server to a switch to another switch to a server, these are counted as 3 separate cables , each cable with a unique tag (identical at it's own two ends).
In any case, netbox is awesome, and without it - we'd be using xls and txt files. Great work !
@quentindavid commented on GitHub (Mar 1, 2017):
indeed, a custom field would be enough :)
@flyingrhinonz commented on GitHub (Mar 2, 2017):
I'm liking the idea of a custom field.
This should not in any way interfere with netbox roadmap.
What's better - Should I open a new issue for this request, or should this thread be reopened ?
Thanks.
Together we'll make a good thing even better !
@jeremystretch commented on GitHub (Mar 2, 2017):
We will not be adding custom fields to interface connections. As discussed, support for labels will be added as part of #20.
@MeisiCB commented on GitHub (Mar 4, 2018):
@quentindavid If your really want the Cable ID (now), just fork this project and change this files:
Made with Version 2.3.1
Change the Database:
ALTER TABLE public.dcim_interfaceconnection ADD COLUMN connection_comments text;
Change File netbox/netbox/dcim/forms.py
Before Line 2052 (class Meta: model = InterfaceConnection ) insert
connection_comments = forms.CharField(max_length=100, required=False, label='Cable ID')some lines below change
fields = ['interface_a', 'site_b', 'rack_b', 'device_b', 'interface_b', 'livesearch', 'connection_status']
to
fields = ['interface_a', 'site_b', 'rack_b', 'device_b', 'interface_b', 'livesearch', 'connection_status','connection_comments']After Line 1518 (connection_status = models.Boolean ...) insert
connection_comments = models.TextField(blank=True)On Line 50 change
<span title="{{ connected_iface.get_form_factor_display }}">{{ connected_iface }}</span>to
After Line 82 ( {% render_field form.connection_status ...) insert
{% render_field form.connection_comments %}service supervisor restart
You will get this:
@flyingrhinonz commented on GitHub (Mar 5, 2018):
Thanks for the tip. I'll try that out.
Meanwhile I already did my own workaround last year by putting the cable IDs into the interface name. It doesn't search, but it does give visibility. At present I have many machines in netbox commented this way.
@martin8883 commented on GitHub (Apr 18, 2018):
Thank you for the workaround, works great.
Until #20 is done here an addition to show the Cable ID in the interface connection table:
In file netbox/netbox/dcim/tables.py add after line 594 (in v2.3.2) (interface_b = tables.Column(verbose_name='Interface B'))
connection_comments = tables.Column(verbose_name='Cable ID')and change following
fields = ('device_a', 'interface_a', 'device_b', 'interface_b')to
fields = ('device_a', 'interface_a', 'device_b', 'interface_b', 'connection_comments')@Atoms commented on GitHub (Jul 4, 2018):
our use case would be mark connections created by script so script does not delete manually created connections, manually created connections in our case is cause not all our devices provide LLDP
@robbagithub commented on GitHub (Oct 4, 2018):
Propper adoption of the Cable ID is the only thing stopping us rolling this out for all data centres.
It really is becoming an important component of DC management.