in source/src/molecule-unfolding/lambda/DeviceAvailableCheckLambda/app.py [0:0]
def getNextAvailable(device):
DaysEnum = {
'Sunday': 6,
'Monday': 0,
'Tuesday': 1,
'Wednesday': 2,
'Thursday': 3,
'Friday': 4,
'Saturday': 5
}
window = device.properties.service.executionWindows[0]
exec_days = window.executionDay.value
# minimum time is 20 ms
min_time = None
calc_time = 0
date = datetime.datetime.utcnow()
# "Everyday" | "Weekdays" | "Weekend" | "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday" | "Sunday"
if exec_days == 'Everyday':
calc_time = getTimeDifference(date, window, range(0, 7))
elif exec_days == 'Weekdays':
calc_time = getTimeDifference(date, window, range(0, 6))
elif exec_days == 'Weekend':
calc_time = getTimeDifference(date, window, [5, 6])
else:
calc_time = getTimeDifference(date, window, [DaysEnum[exec_days]])
if (min_time == None or calc_time < min_time):
min_time = calc_time
log.info("calc time {}".format(calc_time))
if min_time == None:
return 0
else:
return min_time/1000.