Пример #1
0
    def __exit__(self, exc_type, exc_value, tb):
        self._end_time = utc_now()
        seconds = elapsed_seconds(self._start_time, self._end_time)
        if exc_type is None:
            event = STEP_FINISH
            errors = None
            logger.info("Finished %s step for '%s' (%0.2fs)", self._step,
                        self._target, seconds)
        else:
            event = STEP_FAIL
            errors = [{
                "code":
                (exc_type.__module__ + "." + exc_type.__qualname__).upper(),
                "message":
                traceback.format_exception_only(exc_type,
                                                exc_value)[0].strip(),
            }]
            logger.warning("Failed %s step for '%s' (%0.2fs)", self._step,
                           self._target, seconds)

        payload = MonitorPayload(self,
                                 event,
                                 self._end_time,
                                 elapsed=seconds,
                                 errors=errors,
                                 extra=self._extra)
        payload.emit(dry_run=self._dry_run)
Пример #2
0
 def marker_payload(cls, step: str):
     monitor = cls(_DUMMY_TARGET, step)
     return MonitorPayload(monitor,
                           STEP_FINISH,
                           utc_now(),
                           elapsed=0,
                           extra={"is_marker": True})
Пример #3
0
 def __enter__(self):
     if self._index:
         logger.info("Starting %s step for '%s' (%d/%d)", self.step,
                     self.target, self._index["current"],
                     self._index["final"])
     else:
         logger.info("Starting %s step for '%s'", self.step, self.target)
     self._start_time = utc_now()
     payload = MonitorPayload(self,
                              STEP_START,
                              self._start_time,
                              extra=self._extra)
     payload.emit(dry_run=self._dry_run)
     return self