The 'DCM Job Processor'-API provides functionality to process jobs, i.e. a sequence of processing steps, in the DCM.
This repository contains the corresponding Flask app definition.
For the associated OpenAPI-document, please refer to the sibling package dcm-job-processor-api
.
The contents of this repository are part of the Digital Curation Manager
.
Make sure to include the extra-index-url https://zivgitlab.uni-muenster.de/api/v4/projects/9020/packages/pypi/simple
in your pip-configuration to enable an automated install of all dependencies.
Using a virtual environment is recommended.
- Install with
pip install .
- Configure service environment to fit your needs (see here).
- Run app as
flask run --port=8080
- To manually use the API, either run command line tools like
curl
as, e.g.,or run a gui-application, like Swagger UI, based on the OpenAPI-document provided in the sibling packagecurl -X 'POST' \ 'http://localhost:8080/process' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ "process": { "from": "import_ies", "to": "import_ies", "args": { "import_ies": { ... }, "import_ips": { ... }, "build_ip": { ... }, "validation_metadata": { ... }, "validation_payload": { ... }, "prepare_ip": { ... }, "build_sip": { ... }, "transfer": { ... }, "ingest": { ... }, } }, "context": {"triggerType": "manual"} }'
dcm-job-processor-api
.
Build an image using, for example,
docker build -t dcm/job-processor:dev .
Then run with
docker run --rm --name=job-processor -p 8080:80 dcm/job-processor:dev
and test by making a GET-http://localhost:8080/identify request.
For additional information, refer to the documentation here.
Install additional dev-dependencies with
pip install -r dev-requirements.txt
Run unit-tests with
pytest -v -s
Service-specific environment variables are
DB_LOAD_SCHEMA
[DEFAULT 0]: whether the database should be initialized with the database schemaDB_STRICT_SCHEMA_VERSION
[DEFAULT 0] whether to enforce matching database schema version with respect to currently installeddcm-database
REQUEST_TIMEOUT
[DEFAULT 1] timeout duration for the submission of a request to a service in secondsPROCESS_TIMEOUT
[DEFAULT 30] timeout duration for the completion of a service job in secondsPROCESS_REQUEST_MAX_RETRIES
[DEFAULT 1] number of retries during task-submission and report-collectionPROCESS_REQUEST_RETRY_INTERVAL
[DEFAULT 1] duration between retries of task-submission and report-collection in secondsIMPORT_MODULE_HOST
[DEFAULT http://localhost:8080] Import Module host addressIP_BUILDER_HOST
[DEFAULT http://localhost:8081] IP Builder host addressOBJECT_VALIDATOR_HOST
[DEFAULT http://localhost:8082] Object Validator host addressPREPARATION_MODULE_HOST
[DEFAULT http://localhost:8083] Preparation Module host addressSIP_BUILDER_HOST
[DEFAULT http://localhost:8084] SIP Builder host addressTRANSFER_MODULE_HOST
[DEFAULT http://localhost:8085] Transfer Module host addressBACKEND_HOST
[DEFAULT http://localhost:8086] Backend host address
Additionally this service provides environment options for
BaseConfig
,OrchestratedAppConfig
, andDBConfig
as listed here.
- Sven Haubold
- Orestis Kazasidis
- Stephan Lenartz
- Kayhan Ogan
- Michael Rahier
- Steffen Richters-Finger
- Malte Windrath
- Roman Kudinov