diff --git a/SAS/TMSS/services/scheduling/lib/dynamic_scheduling.py b/SAS/TMSS/services/scheduling/lib/dynamic_scheduling.py index defa616fb24fc6becfbf90a45c35f09d2df50ca8..a15475960a3e94e18d3dbe0afbf2bd7c93dc3fc5 100644 --- a/SAS/TMSS/services/scheduling/lib/dynamic_scheduling.py +++ b/SAS/TMSS/services/scheduling/lib/dynamic_scheduling.py @@ -244,7 +244,7 @@ class TMSSDynamicSchedulingMessageHandler(TMSSEventMessageHandler): self._do_schedule_event.set() def onSettingUpdated(self, name: str, value: bool): - if name == models.Flag.Choices.AUTOSCHEDULE.value and value: + if name == models.Flag.Choices.DYNAMIC_SCHEDULING_ENABLED.value and value: logger.info("%s was set to %s: triggering update of dynamic schedule...", name, value) self._do_schedule_event.set() @@ -253,10 +253,10 @@ class TMSSDynamicSchedulingMessageHandler(TMSSEventMessageHandler): if self._do_schedule_event.wait(timeout=10): self._do_schedule_event.clear() try: - if models.Setting.objects.get(name=models.Flag.Choices.AUTOSCHEDULE.value).value: + if models.Setting.objects.get(name=models.Flag.Choices.DYNAMIC_SCHEDULING_ENABLED.value).value: do_dynamic_schedule() else: - logger.warning("Skipping update of dynamic schedule because the setting %s=%s", models.Flag.Choices.AUTOSCHEDULE.value, models.Setting.objects.get(name=models.Flag.Choices.AUTOSCHEDULE.value).value) + logger.warning("Skipping update of dynamic schedule because the setting %s=%s", models.Flag.Choices.DYNAMIC_SCHEDULING_ENABLED.value, models.Setting.objects.get(name=models.Flag.Choices.DYNAMIC_SCHEDULING_ENABLED.value).value) except Exception as e: logger.exception(str(e)) # just continue processing events. better luck next time... diff --git a/SAS/TMSS/src/tmss/tmssapp/models/specification.py b/SAS/TMSS/src/tmss/tmssapp/models/specification.py index aebea11ec61a25af00d0249380bc7c782861287a..f2f04f15009885ff04473a3601256dd878108803 100644 --- a/SAS/TMSS/src/tmss/tmssapp/models/specification.py +++ b/SAS/TMSS/src/tmss/tmssapp/models/specification.py @@ -155,7 +155,7 @@ class Flag(AbstractChoice): """Defines the model and predefined list of possible Flags to be used in Setting. The items in the Choises class below are automagically populated into the database via a data migration.""" class Choices(Enum): - AUTOSCHEDULE = "allow_scheduling_observations" + DYNAMIC_SCHEDULING_ENABLED = "dynamic_scheduling_enabled" diff --git a/SAS/TMSS/src/tmss/tmssapp/populate.py b/SAS/TMSS/src/tmss/tmssapp/populate.py index 09301f45f8484ee2375f8a62383c628dc56b0441..05ec07e83f2f102caa1f65d1bcadf8ffb3447935 100644 --- a/SAS/TMSS/src/tmss/tmssapp/populate.py +++ b/SAS/TMSS/src/tmss/tmssapp/populate.py @@ -40,7 +40,7 @@ def populate_choices(apps, schema_editor): choice_class.objects.bulk_create([choice_class(value=x.value) for x in choice_class.Choices]) def populate_settings(apps, schema_editor): - Setting.objects.create(name=Flag.objects.get(value='allow_scheduling_observations'), value=True) + Setting.objects.create(name=Flag.objects.get(value='dynamic_scheduling_enabled'), value=False) def populate_test_data(): """ diff --git a/SAS/TMSS/src/tmss/tmssapp/subtasks.py b/SAS/TMSS/src/tmss/tmssapp/subtasks.py index 881312731f51875057fa4f72457d1efff5207fcf..ecd413cc603e710a7f5b9cc5f02e15606c757703 100644 --- a/SAS/TMSS/src/tmss/tmssapp/subtasks.py +++ b/SAS/TMSS/src/tmss/tmssapp/subtasks.py @@ -615,7 +615,7 @@ def check_prerequities_for_scheduling(subtask: Subtask) -> bool: % (subtask.pk, predecessor.pk, predecessor.state.value)) # check if settings allow scheduling observations - setting = Setting.objects.get(name='allow_scheduling_observations') + setting = Setting.objects.get(name='dynamic_scheduling_enabled') if not setting.value: raise SubtaskSchedulingException("Cannot schedule subtask id=%d because setting %s=%s does not allow that." % (subtask.pk, setting.name, setting.value)) diff --git a/SAS/TMSS/test/t_scheduling.py b/SAS/TMSS/test/t_scheduling.py index 77697277e340b18e76a3cc8f5f2aca3beb07cb03..ef00fc0a9956c05a7ce6425db34220e3777165ff 100755 --- a/SAS/TMSS/test/t_scheduling.py +++ b/SAS/TMSS/test/t_scheduling.py @@ -308,7 +308,7 @@ class SubtaskInputOutputTest(unittest.TestCase): def setUp(self) -> None: # make sure we're allowed to schedule - setting = Setting.objects.get(name='allow_scheduling_observations') + setting = Setting.objects.get(name='dynamic_scheduling_enabled') setting.value = True setting.save() @@ -352,7 +352,7 @@ class SAPTest(unittest.TestCase): def setUp(self) -> None: # make sure we're allowed to schedule - setting = Setting.objects.get(name='allow_scheduling_observations') + setting = Setting.objects.get(name='dynamic_scheduling_enabled') setting.value = True setting.save() diff --git a/SAS/TMSS/test/t_subtasks.py b/SAS/TMSS/test/t_subtasks.py index b9021a86f94d25f5fcccd620daf7705c07c8d88e..0cdb95de14d749d73d32ff03728e0daacb5ce79f 100755 --- a/SAS/TMSS/test/t_subtasks.py +++ b/SAS/TMSS/test/t_subtasks.py @@ -301,7 +301,7 @@ class SubtaskInputSelectionFilteringTest(unittest.TestCase): def setUp(self) -> None: # make sure we're allowed to schedule - setting = Setting.objects.get(name='allow_scheduling_observations') + setting = Setting.objects.get(name='dynamic_scheduling_enabled') setting.value = True setting.save() @@ -371,7 +371,7 @@ class SubtaskInputSelectionFilteringTest(unittest.TestCase): class SettingTest(unittest.TestCase): def test_schedule_observation_subtask_raises_when_flag_is_false(self): - setting = Setting.objects.get(name='allow_scheduling_observations') + setting = Setting.objects.get(name='dynamic_scheduling_enabled') setting.value = False setting.save() obs_st = create_subtask_object_for_testing('observation', 'defined') diff --git a/SAS/TMSS/test/test_utils.py b/SAS/TMSS/test/test_utils.py index c46dce762622eb9424aa1cfd2dabb2c954608695..1029deb3474ce830e83f3d8d0a26f07c9bf3620f 100644 --- a/SAS/TMSS/test/test_utils.py +++ b/SAS/TMSS/test/test_utils.py @@ -352,7 +352,12 @@ class TMSSTestEnvironment: self.subtask_scheduler.start_listening() if self._start_dynamic_scheduler: - from lofar.sas.tmss.services.scheduling.dynamic_scheduling import create_dynamic_scheduling_service + from lofar.sas.tmss.services.scheduling.dynamic_scheduling import create_dynamic_scheduling_service, models + # by default, dynamic scheduling is disabled in TMSS. + # In this test environment, we do want to have it enabled. Why else would we wanna start this service? + setting = models.Setting.objects.get(name=models.Flag.Choices.DYNAMIC_SCHEDULING_ENABLED.value) + setting.value = True + setting.save() self.dynamic_scheduler = create_dynamic_scheduling_service(exchange=self._exchange, broker=self._broker) self.dynamic_scheduler.start_listening()