diff options
author | Isis Lovecruft <isis@torproject.org> | 2013-01-25 00:56:12 +0000 |
---|---|---|
committer | Isis Lovecruft <isis@torproject.org> | 2013-01-25 00:56:12 +0000 |
commit | 0911ec5330e460f79daca557bb03114276def026 (patch) | |
tree | fc50a845cfa46cb0433d76458cfdb8a455832261 | |
parent | da15176bfb75122ce22922a670fe23afd2895178 (diff) |
Clean up directory structure to be better aligned with other leap python
project, add __init__.py to modules directories, and add query callback
function to couchdb in alias_resolver.py for check_recipient feature.
-rw-r--r-- | src/leap/__init__.py (renamed from leap/__init__.py) | 8 | ||||
-rw-r--r-- | src/leap/mx/__init__.py | 0 | ||||
-rw-r--r-- | src/leap/mx/alias_resolver.py (renamed from leap/mx/alias_resolver.py) | 35 | ||||
-rw-r--r-- | src/leap/util/__init__.py | 0 | ||||
-rw-r--r-- | src/leap/util/net.py (renamed from leap/util/net.py) | 0 | ||||
-rw-r--r-- | src/leap/util/version.py (renamed from leap/util/version.py) | 0 |
6 files changed, 39 insertions, 4 deletions
diff --git a/leap/__init__.py b/src/leap/__init__.py index 370676e..5fefbbf 100644 --- a/leap/__init__.py +++ b/src/leap/__init__.py @@ -1,9 +1,9 @@ # -*- encoding: utf-8 -*- -from . import mx -from . import util -from . import tests +from leap import mx +from leap import util +from leap import tests +__all__ = ['mx', 'util', 'tests'] __author__ = util.version.authors __version__ = util.version.getVersion() -__all__ = ['mx', 'util', 'tests'] diff --git a/src/leap/mx/__init__.py b/src/leap/mx/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/leap/mx/__init__.py diff --git a/leap/mx/alias_resolver.py b/src/leap/mx/alias_resolver.py index 5010f63..3d20ff7 100644 --- a/leap/mx/alias_resolver.py +++ b/src/leap/mx/alias_resolver.py @@ -35,6 +35,9 @@ class ConnectedCouchDB(client.CouchDB): Connect to a CouchDB instance. ## xxx will we need to open CouchDB documents and views? + ## yes, these are in a _design document + ## + """ def __init__(self, host, port, dbName=None, username=None, password=None, *args, **kwargs): @@ -54,6 +57,38 @@ class ConnectedCouchDB(client.CouchDB): username=username, password=password, *args, **kwargs) + if dbName: + self.bindToDB(dbName) + else: + databases = self.listDB() + log.msg("Available databases: %s" % databases) + + def queryByEmailOrAlias(self, alias, dbDoc="User", + view="by_email_or_alias"): + """ + Check to see if a particular email or alias exists. + + @param alias: A string representing the email or alias to check. + @param dbDoc: The CouchDB document to open. + @param view: The view of the CouchDB document to use. + """ + assert isinstance(alias, str), "Email or alias queries must be string" + + ## Prepend a forward slash, in case we forgot it: + if not alias.startswith('/'): + alias = '/' + alias + + d = self.openDoc(dbDoc) + d.addCallbacks(self.openView, log.err, (view)) + d.addCallbacks(self.get, log.err, (alias)) + d.addCallbacks(self.parseResult, log.err) + + @d.addCallback + def show_answer(result): + log.msg("Query: %s" % alias) + log.msg("Answer: %s" % alias) + + return d def query(self, uri): """ diff --git a/src/leap/util/__init__.py b/src/leap/util/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/leap/util/__init__.py diff --git a/leap/util/net.py b/src/leap/util/net.py index a4104d0..a4104d0 100644 --- a/leap/util/net.py +++ b/src/leap/util/net.py diff --git a/leap/util/version.py b/src/leap/util/version.py index ecf8a22..ecf8a22 100644 --- a/leap/util/version.py +++ b/src/leap/util/version.py |