AETHER-592 Handle all day calendar events
Change-Id: I3184b627ba4f330487e63b136f00ba4280bc7667
diff --git a/edge-monitoring/edge_monitoring_server.py b/edge-monitoring/edge_monitoring_server.py
index 29d66f5..8ac3ea5 100755
--- a/edge-monitoring/edge_monitoring_server.py
+++ b/edge-monitoring/edge_monitoring_server.py
@@ -62,6 +62,19 @@
return True
return False
+def is_naive_datetime(d):
+ return d.tzinfo is None or d.tzinfo.utcoffset(d) is None
+
+def process_all_day_events(es):
+ for event in es:
+ if event.all_day:
+ # All day events have naive datetimes, which breaks comparisons
+ pacific = pytz.timezone('US/Pacific')
+ if is_naive_datetime(event.start):
+ event.start = pacific.localize(event.start)
+ if is_naive_datetime(event.end):
+ event.end = pacific.localize(event.end)
+
def in_maintenance_window(events, name, now):
for event in events:
if event.start < now and event.end > now:
@@ -76,6 +89,7 @@
now = datetime.datetime.now(pytz.utc)
try:
es = events(SECRET_ICAL_URL, start = now)
+ process_all_day_events(es)
except Exception as e:
print(e)
else: