diff options
| author | drebs <drebs@leap.se> | 2013-01-31 15:53:07 -0200 | 
|---|---|---|
| committer | drebs <drebs@leap.se> | 2013-01-31 15:53:07 -0200 | 
| commit | 7331249a6814eac085d5bbdb1e842614a0130917 (patch) | |
| tree | b5780963baab67f3712f57e5df848727ebd1bfec /backends/leap_backend.py | |
| parent | 310a54c74129311e32780e174fa135f9e39a768e (diff) | |
Add LeapServerState for interfacing with couch.
Diffstat (limited to 'backends/leap_backend.py')
| -rw-r--r-- | backends/leap_backend.py | 28 | 
1 files changed, 28 insertions, 0 deletions
diff --git a/backends/leap_backend.py b/backends/leap_backend.py index ec26dca4..e1acabec 100644 --- a/backends/leap_backend.py +++ b/backends/leap_backend.py @@ -7,6 +7,7 @@ from u1db import Document  from u1db.remote import utils  from u1db.remote.http_target import HTTPSyncTarget  from u1db.remote.http_database import HTTPDatabase +from u1db.remote.server_state import ServerState  from u1db.errors import BrokenSyncStream  import uuid @@ -108,6 +109,10 @@ class LeapDatabase(HTTPDatabase):  class LeapSyncTarget(HTTPSyncTarget): +    """ +    A SyncTarget that encrypts data before sending and decrypts data after +    receiving. +    """      def __init__(self, url, creds=None, soledad=None):          super(LeapSyncTarget, self).__init__(url, creds) @@ -196,3 +201,26 @@ class LeapSyncTarget(HTTPSyncTarget):          res = self._parse_sync_stream(data, return_doc_cb, ensure_callback)          data = None          return res['new_generation'], res['new_transaction_id'] + + +class LeapServerState(ServerState): +    """ +    Inteface of the WSGI server with the CouchDB backend. +    """ + +    def __init__(self): +        pass + +    def open_database(self, url): +        # TODO: open couch +        from leap.soledad.backends.couch import CouchDatabase +        return CouchDatabase(url, create=False) + +    def ensure_database(self, url): +        from leap.soledad.backends.couch import CouchDatabase +        db = CouchDatabase(url, create=True) +        return db, db._replica_uid + +    def delete_database(self, url): +        from leap.soledad.backends.couch import CouchDatabase +        CouchDatabase.delete_database(url)  | 
