Skip to main content

Manages data storage for CKAN/DCOR (import, symlink, etc.)

Project description

PyPI Version Build Status Coverage Status

This plugin manages how data are stored in DCOR. There are two types of files in DCOR:

  1. Resources uploaded by users, imported from figshare, or imported from a data archive

  2. Ancillary files that are generated upon resource creation, such as condensed DC data, preview images (see ckanext-dc_view).

This plugin implements:

  • Data storage management. All resources uploaded by a user are moved to /data/users-HOSTNAME/USERNAME-ORGNAME/PK/ID/PKGNAME_RESID_RESNAME and symlinks are created in /data/ckan-HOSTNAME/resources/RES/OUR/CEID. CKAN itself will not notice this. The idea is to have a filesystem overview about the datasets of each user.

  • Import datasets from figshare. Existing datasets from figshare are downloaded to the /data/depots/figshare directory and, upon resource creation, symlinked there from /data/ckan-HOSTNAME/resources/RES/OUR/CEID (Note that this is an exemption of the data storage management described above). When running the following command, the “figshare-import” organization is created and the datasets listed in figshare_dois.txt are added to CKAN:

    ckan import-figshare
  • Populate an internal depot from RT-DC data stored in tar archives. This is part of an effort to have automated imports of RT-DC data from other sources. The idea is to move experimental data to the DCOR server in tar archives and DCOR can then populate the internal depot with it. The location of the internal depot is /data/depots/internal/ and it follows a very specific directory structure 201X/2019-08/20/2019-08-20_1126_c083de* where the path is generated from the acquisition date, time, and part of the hash (c083de) of the original data file. According to this scheme, all files with the same path stem belong to one dataset:

    • 2019-08-20_1126_c083de.sha256sums a file containing SHA256 sums

    • 2019-08-20_1126_c083de_v1.rtdc the actual measurement

    • 2019-08-20_1126_c083de_v1_condensed.rtdc the condensed dataset

    • 2019-08-20_1126_c083de_ad1_m001_bg.png an ancillary image

    • 2019-08-20_1126_c083de_ad2_m002_bg.png another ancillary image

    ckan depotize-archive
  • Import datasets from the internal depot. The previous command depotize-archive just populates the depot directory structure. To make the datasets available in CKAN, this step must be performed:

    ckan import-internal
  • Upgrade datasets from the internal depot. If you find issues or have to add new versions of an .rtdc resource, simply create the _v2.rtdc files and run this command:

    ckan upgrade-internal

Please make sure that the necessary file permissions are given in /data.

Installation

pip install ckanext-dcor_depot

Add this extension to the plugins and defaul_views in ckan.ini:

ckan.plugins = [...] dcor_depot
ckan.storage_path=/data/ckan-HOSTNAME
ckanext.dcor_depot.depots_path=/data/depots
ckanext.dcor_depot.users_depot_name=users-HOSTNAME

This plugin stores resources to /data:

mkdir -p /data/depots/users-$(hostname)
chown -R www-data /data/depots/users-$(hostname)

Testing

If CKAN/DCOR is installed and setup for testing, this extension can be tested with pytest:

pytest ckanext

Testing can also be done via vagrant in a virtualmachine using the dcor-test <https://app.vagrantup.com/paulmueller/boxes/dcor-test/> image. Make sure that vagrant and virtualbox are installed and run the following commands in the root of this repository:

# Setup virtual machine using `Vagrantfile`
vagrant up
# Run the tests
vagrant ssh -- sudo bash /testing/vagrant-run-tests.sh

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ckanext-dcor_depot-0.9.9.tar.gz (41.7 kB view details)

Uploaded Source

Built Distribution

ckanext_dcor_depot-0.9.9-py3-none-any.whl (50.0 kB view details)

Uploaded Python 3

File details

Details for the file ckanext-dcor_depot-0.9.9.tar.gz.

File metadata

  • Download URL: ckanext-dcor_depot-0.9.9.tar.gz
  • Upload date:
  • Size: 41.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for ckanext-dcor_depot-0.9.9.tar.gz
Algorithm Hash digest
SHA256 cb3583399069c300b3b7f87e0a82487890ad793899098ffd317e4fb2af4e37b0
MD5 b2271e1f84133709055b36f6d11d73a0
BLAKE2b-256 eb7700f2752faa151c7b6f74a4dbb10c8df0348cf8a6dc24cac4ed9bd33441fe

See more details on using hashes here.

File details

Details for the file ckanext_dcor_depot-0.9.9-py3-none-any.whl.

File metadata

  • Download URL: ckanext_dcor_depot-0.9.9-py3-none-any.whl
  • Upload date:
  • Size: 50.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for ckanext_dcor_depot-0.9.9-py3-none-any.whl
Algorithm Hash digest
SHA256 6e51b2c9bfe7398fcba2feb1d3e55068ee02f20e86563fb9247c5cd5a1de75ad
MD5 1a31cf6075288cf8fac5afeedd53151f
BLAKE2b-256 ac2d005dc23d48455bdc89c9bdd61889a8eba4f724ea59df5b2e412efc314843

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page