diff --git a/arkindex/dataimport/models.py b/arkindex/dataimport/models.py index 2ec620094f468fef47238580ad0c91f7a91a1455..fa0c1d3d097281fd89a45c1dbb4c1c22f343b48b 100644 --- a/arkindex/dataimport/models.py +++ b/arkindex/dataimport/models.py @@ -199,7 +199,7 @@ class DataImport(IndexableModel): # Generate a task for each WorkerRun on the DataImport for worker_run in self.worker_runs.all(): - tasks[f'{worker_run.version.slug}'] = worker_run.build_task_recipe(import_task_name) + tasks[f'{worker_run.version.slug}'] = worker_run.build_task_recipe(import_task_name, elements_path) # Build the workflow in db recipe = settings.PONOS_RECIPE.copy() @@ -428,7 +428,7 @@ class WorkerRun(models.Model): class Meta: unique_together = (('version', 'dataimport'),) - def build_task_recipe(self, import_task_name): + def build_task_recipe(self, import_task_name, elements_path): ''' Build recipe dict for the Task that will represent this WorkerRun in ponos using : - the docker image name given by the WorkerVersion @@ -446,4 +446,5 @@ class WorkerRun(models.Model): 'command': self.version.docker_command, 'artifact': str(self.version.docker_image.id), 'parents': parents, + 'env': {"TASK_ELEMENTS": elements_path} } diff --git a/arkindex/dataimport/tests/test_workerruns.py b/arkindex/dataimport/tests/test_workerruns.py index ad6d53c66313a29ec83d150bc092a19ccfc08ad3..bc355b4aad9efca256f7886fe913a9ae05832c7e 100644 --- a/arkindex/dataimport/tests/test_workerruns.py +++ b/arkindex/dataimport/tests/test_workerruns.py @@ -393,11 +393,12 @@ class TestWorkerRuns(FixtureAPITestCase): @patch('arkindex.dataimport.models.WorkerVersion.docker_image', ArtifactMock(artifact_id)) def test_build_task_recipe_no_parent(self): - self.assertDictEqual(self.run_1.build_task_recipe('import'), { + self.assertDictEqual(self.run_1.build_task_recipe('import', '/data/import/elements.json'), { 'image': f'gitlab/repo/worker_1:{str(self.version_1.id)}', 'command': None, 'artifact': str(self.artifact_id), 'parents': ['import'], + 'env': {'TASK_ELEMENTS': '/data/import/elements.json'}, }) @patch('arkindex.dataimport.models.WorkerVersion.docker_image', ArtifactMock(artifact_id)) @@ -417,9 +418,10 @@ class TestWorkerRuns(FixtureAPITestCase): parents=[self.run_1.id], ) - self.assertDictEqual(run_2.build_task_recipe('import'), { + self.assertDictEqual(run_2.build_task_recipe('import', '/data/import/elements.json'), { 'image': f'gitlab/repo/worker_1:{str(version_2.id)}', 'command': None, 'artifact': str(self.artifact_id), 'parents': [f'worker_1_{str(self.version_1.id)[0:6]}'], + 'env': {'TASK_ELEMENTS': '/data/import/elements.json'}, }) diff --git a/arkindex/dataimport/tests/test_workflows_api.py b/arkindex/dataimport/tests/test_workflows_api.py index a6aa61bc1210c3e9a49dfa4bfb138183e2cda3e6..947af72a826dfdc9f8c92b3706c5ecd3fdaa41f5 100644 --- a/arkindex/dataimport/tests/test_workflows_api.py +++ b/arkindex/dataimport/tests/test_workflows_api.py @@ -688,13 +688,15 @@ class TestWorkflows(FixtureAPITestCase): 'command': None, 'image': f'gitlab/repo/worker_1:{self.version_1.id}', 'artifact': str(artifact.id), - 'parents': ['import'] + 'parents': ['import'], + 'env': {'TASK_ELEMENTS': '/data/import/elements.json'} }, f'worker_1_{str(self.version_2.id)[0:6]}': { 'command': None, 'image': f'gitlab/repo/worker_1:{self.version_2.id}', 'artifact': str(artifact.id), - 'parents': [f'worker_1_{str(self.version_1.id)[0:6]}'] + 'parents': [f'worker_1_{str(self.version_1.id)[0:6]}'], + 'env': {'TASK_ELEMENTS': '/data/import/elements.json'} } })