-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
Validate all headers/fields when bulk import objects #11617
Comments
It this a regression? Did it used to throw an error? Are we sure this is actually wanted behavior before I look into this? |
I just tried it in v3.09. It raises a |
Also checked versions 3.2.0, 3.3.0 and 3.4.0. The import works with version 3.4.0, before raises an |
@arthanson - Can you take a look at this as it's part of the bulk import stuff you changed. I tried just adding the following validation on L147 here: netbox/netbox/utilities/forms/forms.py Lines 134 to 153 in 56c7a23
for header in headers.keys():
if header not in self.fields:
raise forms.ValidationError(f'Unexpected column header "{header}" found.') But the ValidationError is caught here and discarded: netbox/netbox/netbox/views/generic/bulk_views.py Lines 461 to 462 in 56c7a23
|
We should consider JSON/YAML imports as well as CSV. If we're concerned about checking for extraneous CSV headers (and IMO we should be), then this functionality should exist for JSON- and YAML-formatted data as well. Unlike CSV, which specifies a single row of headers, the fields for each object expressed in JSON or YAML can vary with each object, so each object will need to be validated individually. I think it's reasonable to replicate this pattern for CSV data, even if it's not technically necessary. |
NetBox version
v3.4.3
Python version
3.8
Steps to Reproduce
prefix,status,testa,testb
10.10.10.0/24,active,a,b
Expected Behavior
Fields which are not stated in Field Options should throw an error, or a warning that some data was ignored.
Observed Behavior
Import is done without any complains, Looks like all data was imported correct, although some fields were ignored
The text was updated successfully, but these errors were encountered: