diff --git a/app/services/views.py b/app/services/views.py index c3be8ac57054805504fd29d05a481a537044a37d..33b3fa06039b05893f0438008d390f0415234ceb 100644 --- a/app/services/views.py +++ b/app/services/views.py @@ -34,7 +34,10 @@ def ocr(): db.session.add(ocr_job) db.session.commit() - dir = os.path.join(app.config['OPAQUE_STORAGE'], 'jobs', str(ocr_job.id)) + dir = os.path.join(app.config['OPAQUE_STORAGE'], + str(ocr_job.user_id), + 'jobs', + str(ocr_job.id)) try: os.makedirs(dir) @@ -67,9 +70,6 @@ def nlp(): new_nlp_job_form = NewNLPJobForm() if new_nlp_job_form.validate_on_submit(): app = current_app._get_current_object() - id = hashlib.md5( - (current_user.username + '_' + datetime.now().isoformat()).encode() - ).hexdigest() nlp_job = Job() nlp_job.title = new_nlp_job_form.title.data nlp_job.description = new_nlp_job_form.description.data @@ -84,7 +84,11 @@ def nlp(): nlp_job.status = "queued" db.session.add(nlp_job) db.session.commit() - dir = os.path.join(app.config['OPAQUE_STORAGE'], 'jobs', str(nlp_job.id)) + + dir = os.path.join(app.config['OPAQUE_STORAGE'], + str(nlp_job.user_id), + 'jobs', + str(nlp_job.id)) try: os.makedirs(dir) diff --git a/app/swarm.py b/app/swarm.py index 859a9f911d83f08fb31f746656c931aaee26f9c3..32e0d2698c9c70a9b2de8c4c92c5f3ed680d8923 100644 --- a/app/swarm.py +++ b/app/swarm.py @@ -1,6 +1,7 @@ import docker import time import json +import os class Swarm: @@ -27,9 +28,9 @@ class Swarm: service_args = json.loads(job.service_args) ressources = json.loads(job.ressources) _command = (job.service - + ' -i /files/{}'.format(job.id) + + ' -i /files' + ' -l {}'.format(service_args['lang']) - + ' -o /files/{}/output'.format(job.id) + + ' -o /files/output' + ' ' + ' '.join(service_args['args'])) _constraints = ['node.role==worker'] _image = 'gitlab.ub.uni-bielefeld.de:4567/sfb1288inf/{}:{}'.format( @@ -37,9 +38,11 @@ class Swarm: service_args['version'] ) _labels = {'service': job.service} - _mounts = [ - '/home/compute/mnt/opaque/jobs:/files:rw', - ] + _mounts = [os.path.join('/home/compute/mnt/opaque', + str(job.user_id), + 'jobs', + str(job.id)) + + ':/files:rw'] _name = job.id ''' ' The Docker SDK for Python expects the cpu_reservation value to be