def handle_event(self, instance, event): # Note this event self._stats.incr(self.STAT_FORMAT.format(region=instance.region.name, event_code=event.code)) # GOTCHA: DateTime arithmatics are done in days. Convert hours into days. threshold_time = DateTime(event.not_before) - (float(self.urgent_threshold) / 24) msg = self.MESSAGE_FORMAT.format( az=instance.placement, name=instance.tags['Name'], code=event.code, id=instance.id, description=event.description, start_time=event.not_before, end_time=event.not_after, ) if threshold_time.isFuture(): # The event will happen after the threshold time. # Just regular notification will suffice. self._logger.debug('This event is not urgent yet: %s', msg) self._regular_events.append(msg) else: # The event will happen within the next threshold time. # Highlight this event. self._logger.debug('This event is urgent: %s', msg) self._urgent_events.append(msg)
def _parse_date(self, last_triggered): """ Parse modification date passed in request. """ if not last_triggered: return None try: last_triggered_date = DateTime(last_triggered) if last_triggered_date.isFuture(): raise DateTime.DateError except (SyntaxError, DateTime.DateError), e: messages = IStatusMessage(self.request) message = _(u"Wrong format of last static deployment date.") messages.addStatusMessage(message, type="error") raise e