From 5775b99e2f1152f2600b245421127a26a0076860 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20K=C3=BCnsem=C3=B6ller?= <jkuensem@physik.uni-bielefeld.de> Date: Tue, 24 Oct 2023 11:13:03 +0200 Subject: [PATCH] TMSS-2328: validate active SU blueprint specs only against schema --- .../backend/src/tmss/tmssapp/models/specification.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/models/specification.py b/SAS/TMSS/backend/src/tmss/tmssapp/models/specification.py index ebb0af2bdda..b3c9176da36 100644 --- a/SAS/TMSS/backend/src/tmss/tmssapp/models/specification.py +++ b/SAS/TMSS/backend/src/tmss/tmssapp/models/specification.py @@ -1481,7 +1481,16 @@ class SchedulingUnitBlueprint(ProjectPropertyMixin, TemplateSchemaMixin, Schedul specifications_doc['parameters'] = self.draft.observation_strategy_template.template.get('parameters', []) # ensure that the generated specifications_doc is valid according to the schema (raises if not valid) - self.specifications_template.validate_document(specifications_doc) + try: + if self.status.value in SchedulingUnitStatus.PRE_ACTIVE_STATUS_VALUES: + self.specifications_template.validate_document(specifications_doc, raise_on_obsolete=False) + else: + # we only validate against the schema for active units (skip rule-based validation) because rules can + # change and old specs should still be readable. + self.specifications_template.validate_document_against_schema(specifications_doc) + except ValidationException as ve: + # wrap validation exception, and add object info + raise ValidationException("%s\nfor SchedulingUnitBlueprint id=%s name=%s" % (str(ve), self.id, self.name)) return specifications_doc -- GitLab