summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMicah Anderson <micah@riseup.net>2013-08-22 15:12:44 -0400
committerMicah Anderson <micah@riseup.net>2013-08-22 15:13:44 -0400
commit3d1d5459ee3b262c002cd116ace54ed8d5df8099 (patch)
tree465a344ea2e94011f711030807ce06ae803f7013
parentd4c8ce9ced9e416aa800f9deb8af42721d1f5a1c (diff)
parent0347bf68d394118460566c8cd5cd49c75b0825f7 (diff)
Merge remote-tracking branch 'origin/develop' into debian
-rw-r--r--changes/bug_signal_events2
-rw-r--r--changes/feature_3487-split-soledad-into-common-client-and-server2
-rw-r--r--debian/changelog6
-rw-r--r--setup.py2
-rw-r--r--src/leap/keymanager/__init__.py31
-rw-r--r--src/leap/keymanager/tests/test_keymanager.py2
6 files changed, 36 insertions, 9 deletions
diff --git a/changes/bug_signal_events b/changes/bug_signal_events
new file mode 100644
index 0000000..6149c56
--- /dev/null
+++ b/changes/bug_signal_events
@@ -0,0 +1,2 @@
+ o Signal different key related events, like key generation, key
+ upload. \ No newline at end of file
diff --git a/changes/feature_3487-split-soledad-into-common-client-and-server b/changes/feature_3487-split-soledad-into-common-client-and-server
new file mode 100644
index 0000000..4698323
--- /dev/null
+++ b/changes/feature_3487-split-soledad-into-common-client-and-server
@@ -0,0 +1,2 @@
+ o Update to new soledad package scheme (common, client and server). Closes
+ #3487.
diff --git a/debian/changelog b/debian/changelog
index 07756e7..5800212 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+leap-keymanager (0.3.1pre) unstable; urgency=low
+
+ * Merge new version to get soledad split
+
+ -- Micah Anderson <micah@debian.org> Thu, 22 Aug 2013 15:13:03 -0400
+
leap-keymanager (0.3.0) unstable; urgency=low
* Update to 0.3.0
diff --git a/setup.py b/setup.py
index 88fe35f..c42ad2b 100644
--- a/setup.py
+++ b/setup.py
@@ -32,7 +32,7 @@ install_requirements = [
tests_requirements = [
'mock',
- 'leap.soledad',
+ 'leap.soledad.client',
]
diff --git a/src/leap/keymanager/__init__.py b/src/leap/keymanager/__init__.py
index e6122ff..20e44fd 100644
--- a/src/leap/keymanager/__init__.py
+++ b/src/leap/keymanager/__init__.py
@@ -24,10 +24,11 @@ import logging
import requests
from leap.common.check import leap_assert, leap_assert_type
-from leap.keymanager.errors import (
- KeyNotFound,
- NoPasswordGiven,
-)
+from leap.common.events import signal
+from leap.common.events import events_pb2 as proto
+
+from leap.keymanager.errors import KeyNotFound
+
from leap.keymanager.keys import (
EncryptionKey,
build_key_from_dict,
@@ -222,6 +223,7 @@ class KeyManager(object):
self._api_version,
self._uid)
self._put(uri, data)
+ signal(proto.KEYMANAGER_DONE_UPLOADING_KEYS, self._address)
def get_key(self, address, ktype, private=False, fetch_remote=True):
"""
@@ -246,15 +248,26 @@ class KeyManager(object):
ktype in self._wrapper_map,
'Unkown key type: %s.' % str(ktype))
try:
+ signal(proto.KEYMANAGER_LOOKING_FOR_KEY, address)
# return key if it exists in local database
- return self._wrapper_map[ktype].get_key(address, private=private)
+ key = self._wrapper_map[ktype].get_key(address, private=private)
+ signal(proto.KEYMANAGER_KEY_FOUND, address)
+
+ return key
except KeyNotFound:
+ signal(proto.KEYMANAGER_KEY_NOT_FOUND, address)
+
# we will only try to fetch a key from nickserver if fetch_remote
# is True and the key is not private.
if fetch_remote is False or private is True:
raise
+
+ signal(proto.KEYMANAGER_LOOKING_FOR_KEY, address)
self._fetch_keys_from_server(address)
- return self._wrapper_map[ktype].get_key(address, private=False)
+ key = self._wrapper_map[ktype].get_key(address, private=False)
+ signal(proto.KEYMANAGER_KEY_FOUND, address)
+
+ return key
def get_all_keys_in_local_db(self, private=False):
"""
@@ -296,7 +309,11 @@ class KeyManager(object):
:return: The generated key.
:rtype: EncryptionKey
"""
- return self._wrapper_map[ktype].gen_key(self._address)
+ signal(proto.KEYMANAGER_STARTED_KEY_GENERATION, self._address)
+ key = self._wrapper_map[ktype].gen_key(self._address)
+ signal(proto.KEYMANAGER_FINISHED_KEY_GENERATION, self._address)
+
+ return key
#
# Setters/getters
diff --git a/src/leap/keymanager/tests/test_keymanager.py b/src/leap/keymanager/tests/test_keymanager.py
index a474e32..5f232fe 100644
--- a/src/leap/keymanager/tests/test_keymanager.py
+++ b/src/leap/keymanager/tests/test_keymanager.py
@@ -23,7 +23,7 @@ Tests for the Key Manager.
from mock import Mock
from leap.common.testing.basetest import BaseLeapTest
-from leap.soledad import Soledad
+from leap.soledad.client import Soledad
from leap.keymanager import (
KeyManager,
openpgp,