Merge branch 'bug/support_nicknym_potential_problems' into develop
authordrebs <drebs@leap.se>
Thu, 8 Aug 2013 21:37:37 +0000 (23:37 +0200)
committerdrebs <drebs@leap.se>
Thu, 8 Aug 2013 21:37:37 +0000 (23:37 +0200)
changes/bug_dont_fail_if_nickserver_does [new file with mode: 0644]
src/leap/keymanager/__init__.py

diff --git a/changes/bug_dont_fail_if_nickserver_does b/changes/bug_dont_fail_if_nickserver_does
new file mode 100644 (file)
index 0000000..6e44d93
--- /dev/null
@@ -0,0 +1 @@
+  o If a nickserver request fails in any way, notify and continue.
\ No newline at end of file
index d24e08e..e6122ff 100644 (file)
@@ -20,6 +20,7 @@
 Key Manager is a Nicknym agent for LEAP client.
 """
 
+import logging
 import requests
 
 from leap.common.check import leap_assert, leap_assert_type
@@ -38,6 +39,8 @@ from leap.keymanager.openpgp import (
     OpenPGPScheme,
 )
 
+logger = logging.getLogger(__name__)
+
 
 #
 # The Key Manager
@@ -170,12 +173,18 @@ class KeyManager(object):
         @raise KeyNotFound: If the key was not found on nickserver.
         """
         # request keys from the nickserver
-        server_keys = self._get(
-            self._nickserver_uri, {'address': address}).json()
-        # insert keys in local database
-        if self.OPENPGP_KEY in server_keys:
-            self._wrapper_map[OpenPGPKey].put_ascii_key(
-                server_keys['openpgp'])
+        res = None
+        try:
+            res = self._get(self._nickserver_uri, {'address': address})
+            server_keys = res.json()
+            # insert keys in local database
+            if self.OPENPGP_KEY in server_keys:
+                self._wrapper_map[OpenPGPKey].put_ascii_key(
+                    server_keys['openpgp'])
+        except Exception as e:
+            logger.warning("Error retrieving the keys: %r" % (e,))
+            if res:
+                logger.warning("%s" % (res.content,))
 
     #
     # key management