[ckan-dev] Some default previews always created?
Matthew Fullerton
matthew at smartlane.de
Fri May 8 07:29:42 UTC 2015
I'm having a weird and wonderful problem involving harvesting. I harvest 2963 datasets, and 3 of them cause an error (cryptic of course, implying that there is no name value, even though there is). After a lot of digging, I see it is because my resources (which only have one key - 'url', which is enough for a standard CKAN entry) have no name key, and this is upsetting (99% certain) the image preview when it tries to become created. These 3 datasets seem to be the only ones with .jpg resources. This is the stack trace:
Traceback (most recent call last):
File "/usr/lib/ckan/default/src/ckanext-harvest/ckanext/harvest/harvesters/base.py", line 221, in _create_or_update_package
new_package = get_action('package_create_rest')(context, package_dict)
File "/usr/lib/ckan/default/src/ckan/ckan/logic/__init__.py", line 424, in wrapped
result = _action(context, data_dict, **kw)
File "/usr/lib/ckan/default/src/ckan/ckan/logic/action/create.py", line 1115, in package_create_rest
dictized_after = _get_action('package_create')(context, dictized_package)
File "/usr/lib/ckan/default/src/ckan/ckan/logic/__init__.py", line 424, in wrapped
result = _action(context, data_dict, **kw)
File "/usr/lib/ckan/default/src/ckan/ckan/logic/action/create.py", line 212, in package_create
context, {'package': data})
File "/usr/lib/ckan/default/src/ckan/ckan/logic/__init__.py", line 424, in wrapped
result = _action(context, data_dict, **kw)
File "/usr/lib/ckan/default/src/ckan/ckan/logic/action/create.py", line 465, in package_create_default_resource_views
create_datastore_views=create_datastore_views)
File "/usr/lib/ckan/default/src/ckan/ckan/lib/datapreview.py", line 303, in add_views_to_dataset_resources
create_datastore_views)
File "/usr/lib/ckan/default/src/ckan/ckan/lib/datapreview.py", line 269, in add_views_to_resource
view)
File "/usr/lib/ckan/default/src/ckan/ckan/logic/__init__.py", line 424, in wrapped
result = _action(context, data_dict, **kw)
File "/usr/lib/ckan/default/src/ckan/ckan/logic/action/create.py", line 363, in resource_view_create
raise ValidationError(errors)
ValidationError: None - {'name': ['Missing value']}
However, I haven't included ANY resource views in my plugins list, and the I don't set the list of default views to create either. The docs imply that the image preview has to be added explicitly as a plugin - is this really the case?
I'm not sure if its good that resource previews are allowed to have a stricter schema for validation than that of the dataset itself, but that's a separate issue. Right now I would just like to prevent 'package_create_default_resource_views' ever getting called.
I'm on CKAN '2.4' (i.e. fairly recent master).
Thanks for any help - this is driving me slightly crackers!
Matt
More information about the ckan-dev
mailing list