Skip to content

when editing vlans with the api, vlans without a group are considered as one group, resulting in duplicate-errors #17979

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
oehTie opened this issue Nov 11, 2024 · 7 comments
Labels
status: duplicate This issue has already been raised type: bug A confirmed report of unexpected behavior in the application

Comments

@oehTie
Copy link

oehTie commented Nov 11, 2024

Deployment Type

Self-hosted

Triage priority

N/A

NetBox Version

v4.1.6

Python Version

3.10

Steps to Reproduce

Using the API, create a vlan without a group,
using the api, create a second vlan with the same vlan-id, this works.
using the api, create a third vlan with a different vlan-id, also without a group, this works.
using the api, change the first vlan to have the same vlan id as the second one, still without a group. This results in an error that the vlan is duplicate.

Expected Behavior

as the vlans have no group, duplicates should be allowed.

When the same steps to reproduce are executed using the Netbox Gui, it works as expected.

Observed Behavior

Error: The fields group, vid must make a unique set.

exact api calls as already posted:"

@jeremystretch here is the API call flow that will result in the error:

POST ungrouped VLAN with vid 1000 -> Success with ID 1

curl -X 'POST'
'http://localhost:8000/api/ipam/vlans/'
-H 'accept: application/json'
-H 'Authorization: Token ***'
-H 'Content-Type: application/json'
-H 'X-CSRFTOKEN: ***'
-d '{"comments":"","description":"","group":null,"name":"VLAN-1","role":1,"status":"active","vid":1000}'

POST ungrouped VLAN with vid 1000 -> Success with ID 2

curl -X 'POST'
'http://localhost:8000/api/ipam/vlans/'
-H 'accept: application/json'
-H 'Authorization: Token ***'
-H 'Content-Type: application/json'
-H 'X-CSRFTOKEN: ***'
-d '{"comments":"","description":"","group":null,"name":"VLAN-2","role":1,"status":"active","vid":1000}'
POST ungrouped VLAN with vid 1001 -> Success with ID 3

curl -X 'POST'
'http://localhost:8000/api/ipam/vlans/'
-H 'accept: application/json'
-H 'Authorization: Token ***'
-H 'Content-Type: application/json'
-H 'X-CSRFTOKEN: ***'
-d '{"comments":"","description":"","group":null,"name":"VLAN-3","role":1,"status":"active","vid":1001}'
PUT VLAN with ID 1 to update VID to 1001 -> Error: Bad request: {"non_field_errors": ["The fields group, vid must make a unique set."]}

curl -X 'PUT'
'http://localhost:8000/api/ipam/vlans/1/'
-H 'accept: application/json'
-H 'Authorization: Token ***'
-H 'Content-Type: application/json'
-H 'X-CSRFTOKEN: ***'
-d '{"comments":"","description":"","group":null,"name":"VLAN-1","role":1,"status":"active","vid":1001}'
PATCH VLAN with ID 1 to update VID to 1001 -> Error: Bad request: {"non_field_errors": ["The fields group, vid must make a unique set."]}

curl -X 'PATCH'
'http://localhost:8000/api/ipam/vlans/1/'
-H 'accept: application/json'
-H 'Authorization: Token ***'
-H 'Content-Type: application/json'
-H 'X-CSRFTOKEN: ***'
-d '{"vid":1001}'

@oehTie oehTie added status: needs triage This issue is awaiting triage by a maintainer type: bug A confirmed report of unexpected behavior in the application labels Nov 11, 2024
@oehTie
Copy link
Author

oehTie commented Nov 11, 2024

the exact api call:

curl -X 'PUT'
'http://localhost:8000/api/ipam/vlans/4060/'
-H 'accept: application/json'
-H 'Authorization: Token *****************************'
-H 'Content-Type: application/json'
-H 'X-CSRFTOKEN: ********************************************'
-d '{"comments":"","description":"","group":null,"interfaces":[],"name":"VLAN-3","role":3,"status":"active","vid":1000}'

response:

Error: Bad request: {
"non_field_errors": [
"The fields group, vid must make a unique set."
  ]
}

@jeremystretch
Copy link
Member

Please edit your post above to include the specific values and REST API query used in the creation of each object. This is necessary for someone to attempt to reproduce the behavior.

@jeremystretch jeremystretch added status: revisions needed This issue requires additional information to be actionable and removed status: needs triage This issue is awaiting triage by a maintainer labels Nov 12, 2024
@bctiemann
Copy link
Contributor

Maybe a duplicate of (or at least related to) #17810 ?

@jorritberendsen-forefreedom
Copy link

jorritberendsen-forefreedom commented Nov 13, 2024

@jeremystretch here is the API call flow that will result in the error:

POST ungrouped VLAN with vid 1000 -> Success with ID 1

curl -X 'POST' \
  'http://localhost:8000/api/ipam/vlans/' \
  -H 'accept: application/json' \
  -H 'Authorization: Token ***' \
  -H 'Content-Type: application/json' \
  -H 'X-CSRFTOKEN: ***' \
  -d '{"comments":"","description":"","group":null,"name":"VLAN-1","role":1,"status":"active","vid":1000}'

POST ungrouped VLAN with vid 1000 -> Success with ID 2

curl -X 'POST' \
  'http://localhost:8000/api/ipam/vlans/' \
  -H 'accept: application/json' \
  -H 'Authorization: Token ***' \
  -H 'Content-Type: application/json' \
  -H 'X-CSRFTOKEN: ***' \
  -d '{"comments":"","description":"","group":null,"name":"VLAN-2","role":1,"status":"active","vid":1000}'

POST ungrouped VLAN with vid 1001 -> Success with ID 3

curl -X 'POST' \
  'http://localhost:8000/api/ipam/vlans/' \
  -H 'accept: application/json' \
  -H 'Authorization: Token ***' \
  -H 'Content-Type: application/json' \
  -H 'X-CSRFTOKEN: ***' \
  -d '{"comments":"","description":"","group":null,"name":"VLAN-3","role":1,"status":"active","vid":1001}'

PUT VLAN with ID 1 to update VID to 1001 -> Error: Bad request: {"non_field_errors": ["The fields group, vid must make a unique set."]}

curl -X 'PUT' \
  'http://localhost:8000/api/ipam/vlans/1/' \
  -H 'accept: application/json' \
  -H 'Authorization: Token ***' \
  -H 'Content-Type: application/json' \
  -H 'X-CSRFTOKEN: ***' \
  -d '{"comments":"","description":"","group":null,"name":"VLAN-1","role":1,"status":"active","vid":1001}'

PATCH VLAN with ID 1 to update VID to 1001 -> Error: Bad request: {"non_field_errors": ["The fields group, vid must make a unique set."]}

curl -X 'PATCH' \
  'http://localhost:8000/api/ipam/vlans/1/' \
  -H 'accept: application/json' \
  -H 'Authorization: Token ***' \
  -H 'Content-Type: application/json' \
  -H 'X-CSRFTOKEN: ***' \
  -d '{"vid":1001}'

Copy link
Contributor

This is a reminder that additional information is needed in order to further triage this issue. If the requested details are not provided, the issue will soon be closed automatically.

@github-actions github-actions bot added the pending closure Requires immediate attention to avoid being closed for inactivity label Nov 21, 2024
@oehTie
Copy link
Author

oehTie commented Dec 1, 2024

info added to starting post

@jeremystretch
Copy link
Member

This seems like another instance of the root issue recently resolved under bug #17810, which should be fixed in the next release (v4.1.8). I'm going to mark this as resolved, but please feel free to ask that it be re-opened if you're able to reproduce the behavior on v4.1.8 once it has been released.

@jeremystretch jeremystretch added status: duplicate This issue has already been raised and removed status: revisions needed This issue requires additional information to be actionable pending closure Requires immediate attention to avoid being closed for inactivity labels Dec 5, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 6, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
status: duplicate This issue has already been raised type: bug A confirmed report of unexpected behavior in the application
Projects
None yet
Development

No branches or pull requests

4 participants