Skip to content
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

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

Open
oehTie opened this issue Nov 11, 2024 · 4 comments
Labels
status: revisions needed This issue requires additional information to be actionable 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.

@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}'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status: revisions needed This issue requires additional information to be actionable type: bug A confirmed report of unexpected behavior in the application
Projects
None yet
Development

No branches or pull requests

4 participants