Ejemplo n.º 1
0
            def upload_error(f, snap):
                write_failure(f)
                if f.check(CancelledError):
                    self._factory._folder_status.error_occurred(
                        "Cancelled: {}".format(self._relpath)
                    )
                    self._call_later(self._cancel, snapshot)
                    return
                if f.check(ResponseNeverReceived):
                    for reason in f.value.reasons:
                        if reason.check(CancelledError):
                            self._factory._folder_status.error_occurred(
                                "Cancelled: {}".format(self._relpath)
                            )
                            self._call_later(self._cancel, snapshot)
                            return

                # upon errors, we wait a little and then retry,
                # putting the item back in the uploader queue
                self._factory._folder_status.error_occurred(
                    "Error uploading {}: {}".format(self._relpath, f.getErrorMessage())
                )
                delay_amt = next(retry_delay_sequence)
                delay = self._delay_later(delay_amt, self._factory._uploader.upload_snapshot, snap)
                delay.addCallback(got_remote)
                delay.addErrback(upload_error, snap)
                return delay
Ejemplo n.º 2
0
 def instance_error(failure):
     Message.log(
         message_type="flocker:provision:aws:async_get_node:failed"
     )
     instance.terminate()
     write_failure(failure)
     return failure
Ejemplo n.º 3
0
 def cb(result):
     if isinstance(result, Failure):
         if isinstance(result.value, CancelledError):
             if self._deferred is not None:
                 self._deferred.cancel()
         write_failure(result)
     self._deferred = None
     if self.running:
         self._schedule()
Ejemplo n.º 4
0
 def handle_failure(failure):
     Message.log(
         message_type=(
             u"flocker:provision:libcloud:retry_exception:got_exception"
         ),
     )
     write_failure(failure)
     saved_failure[0] = failure
     return False
Ejemplo n.º 5
0
 def handle_failure(failure):
     Message.log(
         message_type=(
             u"flocker:provision:libcloud:retry_exception:got_exception"
         ),
     )
     write_failure(failure)
     saved_failure[0] = failure
     return False
Ejemplo n.º 6
0
 def fallback_error(self, request, failure):
     """
     Turn unknown exceptions into 500 errors, and log the failure.
     """
     write_failure(failure)
     request.setResponseCode(http.INTERNAL_SERVER_ERROR)
     _application_json(request)
     return json.dumps({
         "reason": "unexpected error processing request"
     }).encode("utf8")
Ejemplo n.º 7
0
 def failed_query(failure):
     reasons = getattr(failure.value, 'reasons', None)
     if reasons is None:
         # Guess it was something else.  Do some simpler logging.
         write_failure(failure, logger=None)
     else:
         # It is one of those.  Log all of the stuff from inside it.
         for reason in reasons:
             write_failure(reason, logger=None)
     return False
Ejemplo n.º 8
0
 def failed_query(failure):
     reasons = getattr(failure.value, 'reasons', None)
     if reasons is None:
         # Guess it was something else.  Do some simpler logging.
         write_failure(failure, logger=None)
     else:
         # It is one of those.  Log all of the stuff from inside it.
         for reason in reasons:
             write_failure(reason, logger=None)
     return False
Ejemplo n.º 9
0
    def log_and_discard(failure):
        """
        Log the supplied failure and discard it.

        The failure is deliberately discarded so as to prevent any further
        logging of this failure when the deferred is eventually garbage
        collected.

        :param Failure failure: The ``Failure`` to be logged.
        """
        write_failure(failure)
Ejemplo n.º 10
0
 def handle_create_error(failure, name):
     # XXX This could be dangerous... What about a pre-existing
     # node with the same name (or even multiple nodes if the name
     # does not have to be unique)?
     Message.log(
         message_type="flocker:provision:libcloud:create_node:failed",
         node_name=name,
     )
     write_failure(failure)
     d = self._async_cleanup_node_named(reactor, name)
     d.addCallback(lambda _: failure)
     return d
Ejemplo n.º 11
0
        def error(f):
            write_failure(f)
            if f.check(CancelledError):
                self._factory._folder_status.error_occurred(
                    "Cancelled: {}".format(self._relpath)
                )
                self._call_later(self._cancel, snapshot)
                return

            self._factory._folder_status.error_occurred(
                "Error updating personal DMD: {}".format(f.getErrorMessage())
            )
            with self._action.context():
                write_failure(f)
            delay_amt = next(retry_delay_sequence)
            delay = self._delay_later(delay_amt, update_personal_dmd)
            delay.addErrback(error)
            return None
Ejemplo n.º 12
0
        def error(f):
            if f.check(CancelledError):
                self._factory._folder_status.error_occurred(
                    "Cancelled: {}".format(self._relpath)
                )
                self._call_later(self._cancel, snapshot)
                return

            self._factory._folder_status.error_occurred(
                "Failed to download snapshot for '{}'.".format(
                    self._relpath,
                )
            )
            with self._action.context():
                write_failure(f)
            delay_amt = next(retry_delay_sequence)
            delay = self._delay_later(delay_amt, perform_download)
            delay.addErrback(error)
            return None
Ejemplo n.º 13
0
        def error(f):
            # XXX really need to "more visibly" log things like syntax
            # errors etc...
            write_failure(f)
            if f.check(CancelledError):
                self._factory._folder_status.error_occurred(
                    "Cancelled: {}".format(self._relpath)
                )
                self._call_later(self._cancel, snapshot)
                return

            self._factory._folder_status.error_occurred(
                "Error updating personal DMD: {}".format(f.getErrorMessage())
            )
            with self._action.context():
                write_failure(f)
            delay_amt = next(retry_delay_sequence)
            delay = self._delay_later(delay_amt, perform_update)
            delay.addErrback(error)
            return None
Ejemplo n.º 14
0
 def handle_request_error(result):
     self.rate_measurer.request_failed(result)
     write_failure(result)
Ejemplo n.º 15
0
 def instance_error(failure):
     Message.log(
         message_type="flocker:provision:aws:async_get_node:failed")
     instance.terminate()
     write_failure(failure)
     return failure
Ejemplo n.º 16
0
 def update_error_count(failure):
     self.error_count += 1
     failure.printTraceback(sys.stderr)
     write_failure(failure)
Ejemplo n.º 17
0
 def configure_failed(failure):
     print "Failed to configure control node"
     write_failure(failure)
     return failure
Ejemplo n.º 18
0
 def no_servers(self, request, failure):
     write_failure(failure)
     request.setResponseCode(http.INTERNAL_SERVER_ERROR)
     _application_json(request)
     return json.dumps({"reason": str(failure.value)}).encode("utf8")
Ejemplo n.º 19
0
 def _failed(self, reason):
     self._d = None
     write_failure(reason)