diff --git a/SAS/ResourceAssignment/ResourceAssigner/lib/assignment.py b/SAS/ResourceAssignment/ResourceAssigner/lib/assignment.py index 62c53beb54282b17d0e64e7c072de3ef66d7886e..f78e06beb3e3de7a3a0201ccdcaf06102fa11c5f 100755 --- a/SAS/ResourceAssignment/ResourceAssigner/lib/assignment.py +++ b/SAS/ResourceAssignment/ResourceAssigner/lib/assignment.py @@ -136,12 +136,7 @@ class ResourceAssigner(): clusterName = 'CEP4' if clusterIsCEP4 else 'CEP2' if clusterIsCEP4: - try: - startTime = datetime.strptime(mainParset.getString('Observation.startTime'), '%Y-%m-%d %H:%M:%S') - endTime = datetime.strptime(mainParset.getString('Observation.stopTime'), '%Y-%m-%d %H:%M:%S') - except ValueError: - logger.warning('cannot parse for start/end time from specification for otdb_id=%s. searching for sane defaults...', (otdb_id, )) - + def applySaneStartEndTime(): startTime = datetime.utcnow() + timedelta(minutes=1) maxPredecessorEndTime = self.getMaxPredecessorEndTime(specification_tree) @@ -163,6 +158,17 @@ class ResourceAssigner(): except Exception as e: logger.error(e) + return startTime, endTime + + try: + startTime = datetime.strptime(mainParset.getString('Observation.startTime'), '%Y-%m-%d %H:%M:%S') + endTime = datetime.strptime(mainParset.getString('Observation.stopTime'), '%Y-%m-%d %H:%M:%S') + if startTime < datetime.utcnow(): + startTime, endTime = applySaneStartEndTime() + except ValueError: + logger.warning('cannot parse for start/end time from specification for otdb_id=%s. searching for sane defaults...', otdb_id) + startTime, endTime = applySaneStartEndTime() + try: # fix for MoM bug introduced before NV's holiday # MoM sets ProcessingCluster.clusterName to CEP2 even when inputxml says CEP4