Skip to content
Snippets Groups Projects
Commit e3239163 authored by Jorrit Schaap's avatar Jorrit Schaap
Browse files

TMSS-189: stupid parset looses type info. So, return typed dicts for those who...

TMSS-189: stupid parset looses type info. So, return typed dicts for those who want it, return parsets for those who don't care about types
parent c99da9cc
No related branches found
No related tags found
1 merge request!182Resolve TMSS-189 (and TMSS-192)
...@@ -24,7 +24,7 @@ from lofar.common.json_utils import add_defaults_to_json_object_for_schema ...@@ -24,7 +24,7 @@ from lofar.common.json_utils import add_defaults_to_json_object_for_schema
from lofar.sas.tmss.tmss.exceptions import * from lofar.sas.tmss.tmss.exceptions import *
from datetime import datetime from datetime import datetime
def _convert_to_parset_for_observationcontrol_schema(subtask: models.Subtask) -> parameterset: def _convert_to_parset_dict_for_observationcontrol_schema(subtask: models.Subtask) -> dict:
# make sure the spec is complete (including all non-filled in properties with default) # make sure the spec is complete (including all non-filled in properties with default)
spec = add_defaults_to_json_object_for_schema(subtask.specifications_doc, subtask.specifications_template.schema) spec = add_defaults_to_json_object_for_schema(subtask.specifications_doc, subtask.specifications_template.schema)
...@@ -43,6 +43,7 @@ def _convert_to_parset_for_observationcontrol_schema(subtask: models.Subtask) -> ...@@ -43,6 +43,7 @@ def _convert_to_parset_for_observationcontrol_schema(subtask: models.Subtask) ->
parset["Observation.ObsID"] = subtask.pk parset["Observation.ObsID"] = subtask.pk
parset["Observation.momID"] = 0 # Needed by MACScheduler parset["Observation.momID"] = 0 # Needed by MACScheduler
parset["Observation.otdbID"] = 0 # Needed by MACScheduler; should/can this be the same as subtask.pk? parset["Observation.otdbID"] = 0 # Needed by MACScheduler; should/can this be the same as subtask.pk?
parset["Observation.tmssID"] = subtask.pk
parset["Observation.processType"] = subtask.specifications_template.type.value.capitalize() parset["Observation.processType"] = subtask.specifications_template.type.value.capitalize()
parset["Observation.processSubtype"] = "Beam Observation" # TODO: where to derive the processSubtype from? parset["Observation.processSubtype"] = "Beam Observation" # TODO: where to derive the processSubtype from?
parset["Observation.Campaign.name"] = subtask.task_blueprint.scheduling_unit_blueprint.draft.scheduling_set.project.name parset["Observation.Campaign.name"] = subtask.task_blueprint.scheduling_unit_blueprint.draft.scheduling_set.project.name
...@@ -133,13 +134,10 @@ def _convert_to_parset_for_observationcontrol_schema(subtask: models.Subtask) -> ...@@ -133,13 +134,10 @@ def _convert_to_parset_for_observationcontrol_schema(subtask: models.Subtask) ->
parset[prefix+"ObservationControl.StationControl.aartfaacPiggybackAllowed"] = False parset[prefix+"ObservationControl.StationControl.aartfaacPiggybackAllowed"] = False
parset[prefix+"ObservationControl.StationControl.tbbPiggybackAllowed"] = False parset[prefix+"ObservationControl.StationControl.tbbPiggybackAllowed"] = False
# convert dict to real parameterset, and return it
parset = parameterset(parset)
return parset return parset
def _convert_to_parset_for_pipelinecontrol_schema(subtask: models.Subtask) -> parameterset: def _convert_to_parset_dict_for_pipelinecontrol_schema(subtask: models.Subtask) -> dict:
# see https://support.astron.nl/confluence/pages/viewpage.action?spaceKey=TMSS&title=UC1+JSON # see https://support.astron.nl/confluence/pages/viewpage.action?spaceKey=TMSS&title=UC1+JSON
# make sure the spec is complete (including all non-filled in properties with default) # make sure the spec is complete (including all non-filled in properties with default)
...@@ -298,14 +296,12 @@ def _convert_to_parset_for_pipelinecontrol_schema(subtask: models.Subtask) -> pa ...@@ -298,14 +296,12 @@ def _convert_to_parset_for_pipelinecontrol_schema(subtask: models.Subtask) -> pa
parset["ObsSW.Observation.ObservationControl.PythonControl.DPPP.showtimings"] = "F" parset["ObsSW.Observation.ObservationControl.PythonControl.DPPP.showtimings"] = "F"
parset["ObsSW.Observation.ObservationControl.PythonControl.DPPP.uselogger"] = "T" parset["ObsSW.Observation.ObservationControl.PythonControl.DPPP.uselogger"] = "T"
# convert dict to real parameterset, and return it
parset = parameterset(parset)
return parset return parset
# dict to store conversion methods based on subtask.specifications_template.name # dict to store conversion methods based on subtask.specifications_template.name
_convertors = {'observationcontrol schema': _convert_to_parset_for_observationcontrol_schema, _convertors = {'observationcontrol schema': _convert_to_parset_dict_for_observationcontrol_schema,
'pipelinecontrol schema': _convert_to_parset_for_pipelinecontrol_schema } 'pipelinecontrol schema': _convert_to_parset_dict_for_pipelinecontrol_schema }
def convert_to_parset(subtask: models.Subtask) -> parameterset: def convert_to_parset(subtask: models.Subtask) -> parameterset:
...@@ -313,6 +309,13 @@ def convert_to_parset(subtask: models.Subtask) -> parameterset: ...@@ -313,6 +309,13 @@ def convert_to_parset(subtask: models.Subtask) -> parameterset:
Convert the specifications in the subtask to a LOFAR parset for MAC/COBALT Convert the specifications in the subtask to a LOFAR parset for MAC/COBALT
:raises ConversionException if no proper conversion is available. :raises ConversionException if no proper conversion is available.
''' '''
return parameterset(convert_to_parset_dict(subtask))
def convert_to_parset_dict(subtask: models.Subtask) -> dict:
'''
Convert the specifications in the subtask to a LOFAR parset dict with typed values for MAC/COBALT
:raises ConversionException if no proper conversion is available.
'''
try: try:
convertor = _convertors[subtask.specifications_template.name] convertor = _convertors[subtask.specifications_template.name]
except KeyError: except KeyError:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment