From 887f16023a0a48e8326e07b1ba2a187ec6bcd486 Mon Sep 17 00:00:00 2001 From: Ryan Petrello Date: Thu, 8 Feb 2018 08:54:30 -0500 Subject: [PATCH] improve detection of expensive DTSTART RRULE values --- awx/main/models/schedules.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/awx/main/models/schedules.py b/awx/main/models/schedules.py index de4c164e65..011ad82ed3 100644 --- a/awx/main/models/schedules.py +++ b/awx/main/models/schedules.py @@ -150,14 +150,13 @@ class Schedule(CommonModel, LaunchTimeConfig): # > UTC time. raise ValueError('RRULE UNTIL values must be specified in UTC') - try: - first_event = x[0] - if first_event < now() - datetime.timedelta(days=365 * 5): - # For older DTSTART values, if there are more than 1000 recurrences... - if len(x[:1001]) > 1000: - raise ValueError('RRULE values that yield more than 1000 events are not allowed.') - except IndexError: - pass + if 'MINUTELY' in rrule or 'HOURLY' in rrule: + try: + first_event = x[0] + if first_event < now() - datetime.timedelta(days=365 * 5): + raise ValueError('RRULE values with more than 1000 events are not allowed.') + except IndexError: + pass return x def __unicode__(self):