[ckan-dev] Some default previews always created?

Adrià Mercader adria.mercader at okfn.org
Fri May 8 08:56:20 UTC 2015


This is weird, it definitely looks like is trying to create a resource
view and failing because a "Name" field is not present, but resource
views don't require a "name" field at all.

Perhaps there is some mixup with schemas and the dataset one is
leaking into the context. Definitely something we should check. Is
this the CKAN harvester?

As for why it's trying to create a view, make sure to leave
ckan.views.default_views empty (not commented):

"If not present (or commented), the default value is used. If left
empty, no default views are created."


http://docs.ckan.org/en/latest/maintaining/configuration.html#ckan-views-default-views

On 8 May 2015 at 08:29, Matthew Fullerton <matthew at smartlane.de> wrote:
> 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
> _______________________________________________
> ckan-dev mailing list
> ckan-dev at lists.okfn.org
> https://lists.okfn.org/mailman/listinfo/ckan-dev
> Unsubscribe: https://lists.okfn.org/mailman/options/ckan-dev



More information about the ckan-dev mailing list