[ckan-dev] Problem registering plugin that implements IDatasetForm interface
Haq, Salman
Salman.Haq at neustar.biz
Wed Jun 6 13:06:53 UTC 2012
No, I hadn't. :( See I knew it was something trivial like that. Thank you
very much!
On 6/6/12 5:31 AM, "Sean Hammond" <sean.hammond at okfn.org> wrote:
>Have you enabled your plugin in your ini file (e.g. development.ini)?
>
>On Tue, Jun 05, 2012 at 04:01:17PM -0400, Haq, Salman wrote:
>> I am working on an extension that has three plugins (DataSourcePlugin,
>>DataSourcePackageController, and DataSourceDatasetForm) that implement
>>various interfaces.
>> One of those plugins implements the IDatasetForm interface
>>(DataSourceDatasetForm), however it is not being registered with the
>>plugin environment.
>> I know this for a fact because calling `PluginGlobals.pprint` from
>>inside one of my controller actions pretty prints the list of installed
>>plugins and the plugin in question is not listed.
>>
>> Snippet from setup.py:
>>
>> entry_points=\
>> """
>> [ckan.plugins]
>> datasource = ckanext.datasource.plugin:DataSourcePlugin
>> datasource_form = ckanext.datasource.forms:DataSourceDatasetForm
>> datasource_controller =
>>ckanext.datasource.controller:DataSourcePackageController
>>
>> """,
>>
>> And the relevant snippet from ckanext/datasource/forms.py:
>>
>> class DataSourceDatasetForm (SingletonPlugin, DefaultDatasetForm):
>>
>> implements(IDatasetForm, inherit=True)
>>
>> def is_fallback(self):
>> log.info('is_fallback')
>> return True
>>
>> def package_types(self):
>> log.info('package_types')
>> return ["dataset"]
>>
>> def setup_template_variables(self, context, data_dict=None):
>> log.info('setup_template_variables')
>> log.debug(context)
>> log.debug(data_dict)
>> log.debug(c)
>>
>> None of above log statements get called at any point.
>>
>> The full output from PluginGlobals.pprint:
>>
>> --------------------------------------------------------------
>> Registered Environments
>> --------------------------------------------------------------
>> <default>
>> pca
>>
>> --------------------------------------------------------------
>> Environment Stack
>> --------------------------------------------------------------
>> Level=1 name=<default>
>> Level=2 name=pca
>>
>> --------------------------------------------------------------
>> Interfaces Declared
>> --------------------------------------------------------------
>> IActions
>> IAuthFunctions
>> IAuthorizer
>> IConfigurable
>> IConfigurer
>> IDatasetForm
>> IDomainObjectModification
>> IGenshiStreamFilter
>> IGroupController
>> IGroupForm
>> IIgnorePluginWhenLoading
>> IMapper
>> IMiddleware
>> IPackageController
>> IPluginLoadPath
>> IPluginLoader
>> IPluginObserver
>> IResourceUrlChange
>> IRoutes
>> ISession
>> ITagController
>> ITemplateHelpers
>>
>> --------------------------------------------------------------
>> Registered Plugins by Interface
>> --------------------------------------------------------------
>> IActions
>> None
>>
>> IAuthFunctions
>> None
>>
>> IAuthorizer
>> None
>>
>> IConfigurable
>> ArchiverPlugin
>> DataSourcePlugin
>> IConfigurer
>> DataSourcePlugin
>> MetaDataHub
>> StatsPlugin
>>
>> IDatasetForm
>> None
>>
>> IDomainObjectModification
>> ArchiverPlugin
>> SynchronousSearchPlugin
>> WebstorerPlugin
>>
>> IGenshiStreamFilter
>> DataSourcePlugin
>>
>> IGroupController
>> None
>>
>> IGroupForm
>> None
>>
>> IIgnorePluginWhenLoading
>> IgnorePluginPlugins
>> IMapper
>> None
>>
>> IMiddleware
>> None
>>
>> IPackageController
>> DataSourcePackageController
>>
>> IPluginLoadPath
>> None
>>
>> IPluginLoader
>> None
>>
>> IPluginObserver
>> None
>>
>> IResourceUrlChange
>> ArchiverPlugin
>> WebstorerPlugin
>>
>> IRoutes
>> DataSourcePlugin
>> StatsPlugin
>>
>> ISession
>> DomainObjectModificationExtension
>>
>> ITagController
>> None
>>
>> ITemplateHelpers
>> None
>>
>> --------------------------------------------------------------
>> Registered Plugins by Python Module
>> --------------------------------------------------------------
>> ckan.lib.search
>> SynchronousSearchPlugin
>>
>> ckan.model.modification
>> DomainObjectModificationExtension
>>
>> ckanext.archiver.plugin
>> ArchiverPlugin
>>
>> ckanext.datasource.controller
>> DataSourcePackageController
>>
>> ckanext.datasource.plugin
>> DataSourcePlugin
>>
>> ckanext.datastorer.plugin
>> WebstorerPlugin
>>
>> ckanext.metadatahub.plugin
>> MetaDataHub
>>
>> ckanext.stats.plugin
>> StatsPlugin
>>
>> pyutilib.component.core
>> IgnorePluginPlugins
>>
>> --------------------------------------------------------------
>> Services for Registered Environments
>> --------------------------------------------------------------
>> Services for Environment '<default>'
>> None
>>
>> Services for Environment 'pca'
>> <Plugin ArchiverPlugin> (4*)
>> <Plugin DataSourcePackageController> (9*)
>> <Plugin DataSourcePlugin> (7*)
>> <Plugin DomainObjectModificationExtension> (8*)
>> <Plugin MetaDataHub> (6*)
>> <Plugin StatsPlugin> (3*)
>> <Plugin SynchronousSearchPlugin> (2*)
>> <Plugin WebstorerPlugin> (5*)
>> --------------------------------------------------------------
>>
>> Is this enough information to identify that missing link?
>>
>> Thanks,
>> Salman
>>
>>
>>
>
>> _______________________________________________
>> ckan-dev mailing list
>> ckan-dev at lists.okfn.org
>> http://lists.okfn.org/mailman/listinfo/ckan-dev
>
>
>_______________________________________________
>ckan-dev mailing list
>ckan-dev at lists.okfn.org
>http://lists.okfn.org/mailman/listinfo/ckan-dev
More information about the ckan-dev
mailing list