summaryrefslogtreecommitdiff
path: root/scripts/profiling/mail/soledad_client.py
blob: 5ac8ce39fb0876f12dc4688f3ac4f041c8875f08 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import tempfile
import os
import shutil

from leap.soledad.client import Soledad


class SoledadClient(object):

    def __init__(self, uuid, server_url, auth_token):
        self._uuid = uuid
        self._server_url = server_url
        self._auth_token = auth_token
        self._tempdir = None
        self._soledad = None

    @property
    def instance(self):
        if self._soledad is None:
            self._soledad = self._get_soledad_client()
        return self._soledad

    def _get_soledad_client(self):
        self._tempdir = tempfile.mkdtemp()
        return Soledad(
            uuid=self._uuid,
            passphrase=u'123',
            secrets_path=os.path.join(self._tempdir, 'secrets.json'),
            local_db_path=os.path.join(self._tempdir, 'soledad.db'),
            server_url=self._server_url,
            cert_file=None,
            auth_token=self._auth_token,
            secret_id=None,
            defer_encryption=True)

    def close(self):
        if self._soledad is not None:
            self._soledad.close()
        if self._tempdir is not None:
            shutil.rmtree(self._tempdir)