From 20eeb570a4cb1ec30c6200cd82a40b47f9ee7276 Mon Sep 17 00:00:00 2001 From: Jorrit Schaap <schaap@astron.nl> Date: Tue, 23 Mar 2021 09:51:08 +0100 Subject: [PATCH] TMSS-604: fixed output dataproduct filtering --- SAS/TMSS/backend/src/tmss/tmssapp/adapters/parset.py | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/adapters/parset.py b/SAS/TMSS/backend/src/tmss/tmssapp/adapters/parset.py index 6dc6a3d439f..68ed8f2dd28 100644 --- a/SAS/TMSS/backend/src/tmss/tmssapp/adapters/parset.py +++ b/SAS/TMSS/backend/src/tmss/tmssapp/adapters/parset.py @@ -107,11 +107,7 @@ def _convert_correlator_settings_to_parset_dict(subtask: models.Subtask, spec: d parset[beam_prefix+"Correlator.angle2"] = phase_center['pointing']['angle2'] - # TODO: do not use SubtaskOutput.objects.filter but make subtask.subtask_outputs work - subtask_outputs = list(models.SubtaskOutput.objects.filter(subtask_id=subtask.id)) - subtask_output_ids = [o.id for o in subtask_outputs] - - dataproducts = list(models.Dataproduct.objects.filter(producer_id__in=subtask_output_ids).filter(dataformat=Dataformat.Choices.MEASUREMENTSET.value).filter(datatype=Datatype.Choices.VISIBILITIES)) + dataproducts = list(subtask.output_dataproducts.filter(dataformat__value=Dataformat.Choices.MEASUREMENTSET.value).filter(datatype__value=Datatype.Choices.VISIBILITIES.value).order_by('filename')) # marshall dataproducts, but only if they're supplied. in some use cases, we want a parset before the subtask is scheduled. correlator_dataproducts = [] @@ -138,12 +134,8 @@ def _convert_beamformer_settings_to_parset_dict(subtask: models.Subtask, spec: d parset = {} - # TODO: do not use SubtaskOutput.objects.filter but make subtask.subtask_outputs work - subtask_outputs = list(models.SubtaskOutput.objects.filter(subtask_id=subtask.id)) - subtask_output_ids = [o.id for o in subtask_outputs] - # TODO: don't assume ordering by filename is sufficient: we need to inspect the dataproduct properties to make sure saps and subbands are in the correct order - dataproducts = list(models.Dataproduct.objects.filter(producer_id__in=subtask_output_ids).filter(dataformat=Dataformat.Choices.MEASUREMENTSET.value).filter(datatype=Datatype.Choices.TIME_SERIES.value).order_by('filename')) + dataproducts = list(subtask.output_dataproducts.filter(dataformat__value=Dataformat.Choices.BEAMFORMED.value).filter(datatype__value=Datatype.Choices.TIME_SERIES.value).order_by('filename')) # Lists of coherent and incoherent dataproducts that will be produced, in the order COBALT wants them coherent_dataproducts = [] -- GitLab