mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
Unable to select VLANs on Device Interfaces where they are scoped by Cluster or Cluster Groups #8141
Closed
opened 2025-12-29 20:33:01 +01:00 by adam
·
9 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#8141
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 @stuntguy3000 on GitHub (May 31, 2023).
NetBox version
v3.5.3-dev
Python version
3.8
Expected Behavior
I expect the available VLANs to include those defined by Cluster or Cluster Group scopes.
Observed Behavior
They are not shown as available options.
Steps to Reproduce
Create the following Virtualization objects:
Generic Cluster TypeCluster Group 1Ungrouped ClusterGrouped Cluster(Group:Cluster Group 1)Ungrouped Cluster VM(Cluster:Ungrouped Cluster)Grouped Cluster VM(Cluster:Grouped Cluster)Create the following IPAM objects:
Cluster Group 1 VG(Scope:Cluster Group,Cluster Group 1)Grouped Cluster VG(Scope:Cluster,Grouped Cluster)Alpha(Group:Cluster Group 1 VG)Beta(Group:Grouped Cluster VG)Create the following Organization objects:
Generic SiteCreate the following Device objects:
Generic ManufacturerGeneric Model(Manufacturer:Generic Manufacturer)Generic RoleGrouped Cluster Device(Role:Generic Role, Type:Generic Model, Site:Generic Site, Virtualization Cluster:Grouped Cluster)Ungrouped Cluster Device(Role:Generic Role, Type:Generic Model, Site:Generic Site, Virtualization Cluster:Ungrouped Cluster)Grouped Cluster DevicenamedGeneric InterfaceUngrouped Cluster DevicenamedGeneric InterfaceFinally... replicate the issue:
This is the issue - no VLANS will be present, including those which should be
Notes
This issue has been resolved in a branch in my fork. If this issue has been resolved this will be submitted as a new PR addressing this specific issue.
This issue only applies to Devices, but not Virtual Machines.
I hope this isn't death by information, please let me know if I can do anything more to get this accepted and resolved (including a video walkthrough or database object dump).
References
This section of code already exists and performs the correct filtering.
This section of the code are my changes which adds this correct filtering/resolves this issue.
@stuntguy3000 commented on GitHub (May 31, 2023):
Ready for review.
@stuntguy3000 commented on GitHub (Jun 11, 2023):
Sorry for the bump @jeremystretch, I've got a code fix for this ready to go as you requested in the previous issue - will create a PR if/when this is accepted.
@SteveRodrigue commented on GitHub (Jul 28, 2023):
@stuntguy3000 : Thanks to have reformatted the original issue. Also, thank you very to have proposed a solution.
I just tested https://demo.netbox.dev and I confirm the problem is still present. The current workaround I found is to assign vlan(s) using the API directly.
@stuntguy3000 commented on GitHub (Jul 29, 2023):
I still have a PR for this, https://github.com/netbox-community/netbox/pull/12708
@jsenecal commented on GitHub (Aug 4, 2023):
@DanSheps as you already interacted with issue https://github.com/netbox-community/netbox/issues/12690, do you feel the steps described here are sufficient to replicate the issue ? Feels like the solution is simple enough.
@jeremystretch commented on GitHub (Sep 21, 2023):
@stuntguy3000 thank you for providing comprehensive reproduction steps.
While I believe I understand the use case, I'll posit a conflicting use case. Consider a scenario wherein a VLAN is shared among virtual machines within a cluster, but not available to the host device. (This is a quite common solution to providing isolated L2 domains.) In such a scenario, I definitely don't want to consider the VLAN as being available on the host device, which is why the
available_on_deviceVLAN filter does not currently consider cluster assignment.This should really be a feature request rather than a bug report, proposing that cluster assignment be considered when determining the VLANs available on a device.
@stuntguy3000 commented on GitHub (Sep 23, 2023):
I definitely follow you, in that scenario then it makes sense to not show the vlan. However, I believe that usage would be less common than people who use fully-connected virtual groups and hosts.
My rationale is that, simply put, not having VLANs visible make it harder to document entire Clusters and Cluster Groups where VLANs are usually stretched across VM Hosts and their associated VMs.
Alternatively, I could see an introduction of VM Groups within Clusters, hypothetically where these isolated VLANs could be scoped too. These groups would roughly represent Folders that contain VMs. I believe that is an elegant solution to your use case.
@Chiniquy commented on GitHub (Oct 11, 2023):
Just ran into the same issue when trying to model VLAN usage for virtual interfaces on a Palo Alto firewall. What is required as a next step to get something actionable here? A feature request?
@jeremystretch commented on GitHub (Dec 26, 2023):
Closing this out as this is not an actionable bug report per the above discussion. Anyone is welcome to open a feature request proposing that the described behavior be implemented, along with a compelling use case.