示例#1
0
    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)
示例#2
0
 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