From b42d0585cdc58561e1a64290140081e1efd455fe Mon Sep 17 00:00:00 2001
From: Jean-Paul Calderone <exarkun@twistedmatrix.com>
Date: Fri, 27 Sep 2019 09:39:26 -0400
Subject: [PATCH] more error logging

---
 src/_zkapauthorizer/controller.py | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/_zkapauthorizer/controller.py b/src/_zkapauthorizer/controller.py
index 92e5ccf..3303892 100644
--- a/src/_zkapauthorizer/controller.py
+++ b/src/_zkapauthorizer/controller.py
@@ -331,10 +331,11 @@ class PaymentController(object):
         # Ask the redeemer to do the real task of redemption.
         self._log.info("Redeeming random tokens for a voucher ({voucher}).", voucher=voucher)
         d = self.redeemer.redeem(Voucher(voucher), tokens)
-        d.addCallback(
+        d.addCallbacks(
             partial(self._redeemSuccess, voucher),
+            partial(self._redeemFailure, voucher),
         )
-        # XXX This needs an errback!
+        d.addErrback(partial(self._finalRedeemError, voucher))
 
     def _redeemSuccess(self, voucher, unblinded_tokens):
         """
@@ -345,6 +346,14 @@ class PaymentController(object):
         self._log.info("Inserting redeemed unblinded tokens for a voucher ({voucher}).", voucher=voucher)
         self.store.insert_unblinded_tokens_for_voucher(voucher, unblinded_tokens)
 
+    def _redeemFailure(self, voucher, reason):
+        self._log.failure("Redeeming random tokens for a voucher ({voucher}) failed.", reason, voucher=voucher)
+        return None
+
+    def _finalRedeemError(self, voucher, reason):
+        self._log.failure("Redeeming random tokens for a voucher ({voucher}) encountered error.", reason, voucher=voucher)
+        return None
+
 
 def get_redeemer(plugin_name, node_config, announcement, reactor):
     section_name = u"storageclient.plugins.{}".format(plugin_name)
-- 
GitLab