- [ATTENTION 1]
- resourcetracker_ogr is used to replace datastore functionalities previously served by datapusher or xloader. Making use of this sub-plugin will cause compatibility issues and malfunctioning of several ckan extensions that rely on either datapusher or xloader and their respective hooks and triggers.
- [ATTENTION 2]
- datastoretracker and its subplugins are using datapusher/xloader hooks and triggers and will soon be disabled and replaced by ogr trackers and thus it is not adviced to be further developed.
- [TODO 1]
- Making use of resourcetracker_ogr is already causing existing extensions that were served through datapusher/xloader and/or datastoretracker to not work properly. Two extensions that already need to be upgraded are ckanext-xlstocsv and ckanext-validation.
- [TODO 2]
- resourcetracker_ogr is currently blocking triggers coming from datastore actions. This could result in data loss and should be further investigated, for example in the cases of a datastore_update or datastore_upsert.
To install ckanext-tracker:
Activate your CKAN virtual environment, for example:
. /usr/lib/ckan/default/bin/activate
Install the ckanext-tracker Python package into your virtual environment:
pip install ckanext-tracker
Add
tracker
to theckan.plugins
setting in your CKAN config file (by default the config file is located at/etc/ckan/default/production.ini
).Restart CKAN. For example if you've deployed CKAN with Apache on Ubuntu:
sudo service apache2 reload
Additional trackers Info
Inside ckanext-tracker are included sub-plugins that extend functionality. These sub-plugins use the correct hooks to populate redis queries and trigger the correct workers. The ones including an underscore '_' inherit properties from their parent, as named before the underscore. The current list of sub-plugins includes:
datastoretracker_geoserver datastoretracker_xlstocsv packagetracker_ckantockan packagetracker_ckantockan_donl packagetracker_ckantockan_oneckan packagetracker_ckantockan_oneckan_rotterdam packagetracker_ogr resourcetracker_ckantockan resourcetracker_ckantockan_donl resourcetracker_ckantockan_oneckan resourcetracker_geonetwork resourcetracker_geoserver resourcetracker_ogr
Additional trackers READMEs
Tracker Geoserver README
Document any optional config settings here. For example:
# The minimum number of hours to wait before re-checking a resource # (optional, default: 24). ckanext.tracker.some_setting = some_default_value
To install ckanext-tracker for development, activate your CKAN virtualenv and do:
git clone https://github.com//ckanext-tracker.git cd ckanext-tracker python setup.py develop pip install -r dev-requirements.txt
To run the tests, do:
nosetests --nologcapture --with-pylons=test.ini
To run the tests and produce a coverage report, first make sure you have
coverage installed in your virtualenv (pip install coverage
) then run:
nosetests --nologcapture --with-pylons=test.ini --with-coverage --cover-package=ckanext.tracker --cover-inclusive --cover-erase --cover-tests
ckanext-tracker should be availabe on PyPI as https://pypi.python.org/pypi/ckanext-tracker. If that link doesn't work, then you can register the project on PyPI for the first time by following these steps:
Create a source distribution of the project:
python setup.py sdist
Register the project:
python setup.py register
Upload the source distribution to PyPI:
python setup.py sdist upload
Tag the first release of the project on GitHub with the version number from the
setup.py
file. For example if the version number insetup.py
is 0.0.1 then do:git tag 0.0.1 git push --tags
ckanext-tracker is availabe on PyPI as https://pypi.python.org/pypi/ckanext-tracker. To publish a new version to PyPI follow these steps:
Update the version number in the
setup.py
file. See PEP 440 for how to choose version numbers.Create a source distribution of the new version:
python setup.py sdist
Upload the source distribution to PyPI:
python setup.py sdist upload
Tag the new release of the project on GitHub with the version number from the
setup.py
file. For example if the version number insetup.py
is 0.0.2 then do:git tag 0.0.2 git push --tags