Skip to content
Snippets Groups Projects
Commit 08f73d1f authored by Roy de Goei's avatar Roy de Goei
Browse files

SDC-470: Do not filter on status and skip when no timestamp

parent 19aeaa8a
No related branches found
No related tags found
2 merge requests!170Master,!168SDC-470: Do not filter on status and skip when no timestamp
...@@ -44,30 +44,33 @@ def get_size(status_list, type): ...@@ -44,30 +44,33 @@ def get_size(status_list, type):
@timeit @timeit
def get_min_start_and_max_end_time(sas_id): def get_min_start_and_max_end_time(sas_id):
""" """
Retrieve the minimum start time en maximum end time of a set of taskids (sas_id) which has the Retrieve the minimum start time en maximum end time of a set of taskids (sas_id)
status 'archived' or 'finished'
The start time is the moment when the task start 'processing' The start time is the moment when the task start 'processing'
The end time is the moment when the task was 'processed' The end time is the moment when the task was 'processed'
""" """
min_start_time = None min_start_time = None
max_end_time = None max_end_time = None
logger.info("get_min_start_and_max_end_time(" + str(sas_id) + ")") logger.info("get_min_start_and_max_end_time(" + str(sas_id) + ")")
tasks = Task.objects.filter(sas_id=sas_id).filter(Q(status='archived') | Q(status='finished')) tasks = Task.objects.filter(sas_id=sas_id)
for task in tasks: for task in tasks:
# If more entrees are found for 'processing' task, get the latest try:
latest_start_time = LogEntry.objects.filter(task=task.pk).filter(step_name='running').filter(status='processing').latest('timestamp') # If more entrees are found for 'processing' task, get the latest
start_time = latest_start_time.timestamp latest_start_time = LogEntry.objects.filter(task=task.pk).filter(step_name='running').filter(status='processing').latest('timestamp')
# If more entrees are found for 'processed' task, get the latest start_time = latest_start_time.timestamp
lastest_end_time = LogEntry.objects.filter(task=task.pk).filter(step_name='running').filter(status='processed').latest('timestamp') # If more entrees are found for 'processed' task, get the latest
end_time = lastest_end_time.timestamp lastest_end_time = LogEntry.objects.filter(task=task.pk).filter(step_name='running').filter(status='processed').latest('timestamp')
if min_start_time is None: end_time = lastest_end_time.timestamp
min_start_time = start_time if min_start_time is None:
elif start_time < min_start_time: min_start_time = start_time
min_start_time = start_time elif start_time < min_start_time:
if max_end_time is None: min_start_time = start_time
max_end_time = end_time if max_end_time is None:
elif end_time > max_end_time: max_end_time = end_time
max_end_time = end_time elif end_time > max_end_time:
max_end_time = end_time
except:
pass # having no timestamp, just skip
return min_start_time, max_end_time return min_start_time, max_end_time
......
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