Skip to content

Commit 3752511

Browse files
committed
support new task generating profile comparisons
1 parent 5c8f0b9 commit 3752511

File tree

3 files changed

+38
-6
lines changed

3 files changed

+38
-6
lines changed

geospaas_rest_api/models.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
geospaas_processing = None
66

77
if geospaas_processing:
8-
from .processing_api.models import (Job,
9-
DownloadJob,
10-
ConvertJob,
11-
SyntoolCleanupJob,
12-
HarvestJob)
8+
from geospaas_rest_api.processing_api.models import (Job,
9+
DownloadJob,
10+
ConvertJob,
11+
SyntoolCleanupJob,
12+
SyntoolCompareJob,
13+
HarvestJob)

geospaas_rest_api/processing_api/models.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,35 @@ def make_task_parameters(parameters):
220220
return ((parameters['criteria'],), {})
221221

222222

223+
class SyntoolCompareJob(Job):
224+
"""Job which generates comparison between Argo profiles and a 3D
225+
product
226+
"""
227+
class Meta:
228+
proxy = True
229+
230+
@classmethod
231+
def get_signature(cls, parameters):
232+
return celery.chain(
233+
tasks_syntool.compare_profiles.signature(),
234+
tasks_syntool.db_insert.signature(),
235+
tasks_core.remove_downloaded.signature()
236+
)
237+
238+
@staticmethod
239+
def check_parameters(parameters):
240+
accepted_keys = ('dataset_id', 'profiles_lookups')
241+
if not set(parameters).issubset(set(accepted_keys)):
242+
raise ValidationError(
243+
f"The convert action accepts only these parameters: {', '.join(accepted_keys)}")
244+
return parameters
245+
246+
@staticmethod
247+
def make_task_parameters(parameters):
248+
return (((parameters['dataset_id'],),),
249+
{'profiles_lookups': parameters['profiles_lookups']})
250+
251+
223252
class HarvestJob(Job):
224253
"""Job which harvests metadata into the database"""
225254
class Meta:

geospaas_rest_api/processing_api/serializers.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ class JobSerializer(rest_framework.serializers.Serializer):
1414
'convert': models.ConvertJob,
1515
'harvest': models.HarvestJob,
1616
'syntool_cleanup': models.SyntoolCleanupJob,
17+
'compare_profiles': models.SyntoolCompareJob,
1718
}
1819

1920
# Actual Job fields
@@ -27,7 +28,8 @@ class JobSerializer(rest_framework.serializers.Serializer):
2728
'download',
2829
'convert',
2930
'harvest',
30-
'syntool_cleanup'
31+
'syntool_cleanup',
32+
'compare_profiles',
3133
],
3234
required=True, write_only=True,
3335
help_text="Action to perform")

0 commit comments

Comments
 (0)