diff options
Diffstat (limited to 'scripts/profiling/mail/couchdb_server.py')
| -rw-r--r-- | scripts/profiling/mail/couchdb_server.py | 42 | 
1 files changed, 42 insertions, 0 deletions
diff --git a/scripts/profiling/mail/couchdb_server.py b/scripts/profiling/mail/couchdb_server.py new file mode 100644 index 00000000..2cf0a3fd --- /dev/null +++ b/scripts/profiling/mail/couchdb_server.py @@ -0,0 +1,42 @@ +import hashlib +import couchdb + +from leap.soledad.common.couch import CouchDatabase + +from util import log +from couchdb_wrapper import CouchDBWrapper + + +def start_couchdb_wrapper(): +    log("Starting couchdb... ", line_break=False) +    couchdb_wrapper = CouchDBWrapper() +    couchdb_wrapper.start() +    log("couchdb started on port %d." % couchdb_wrapper.port) +    return couchdb_wrapper + + +def get_u1db_database(dbname, port): +    return CouchDatabase.open_database( +        'http://127.0.0.1:%d/%s' % (port, dbname), +        True, +        ensure_ddocs=True) + + +def create_tokens_database(port, uuid, token_value): +    tokens_database = couchdb.Server( +        'http://127.0.0.1:%d' % port).create('tokens') +    token = couchdb.Document() +    token['_id'] = hashlib.sha512(token_value).hexdigest() +    token['user_id'] = uuid +    token['type'] = 'Token' +    tokens_database.save(token) + + +def get_couchdb_wrapper_and_u1db(uuid, token_value): +    couchdb_wrapper = start_couchdb_wrapper() + +    couchdb_u1db = get_u1db_database('user-%s' % uuid, couchdb_wrapper.port) +    get_u1db_database('shared', couchdb_wrapper.port) +    create_tokens_database(couchdb_wrapper.port, uuid, token_value) +     +    return couchdb_wrapper, couchdb_u1db  | 
