summaryrefslogtreecommitdiff
path: root/src/leap/soledad/client/examples
diff options
context:
space:
mode:
authorKali Kaneko <kali@leap.se>2017-06-26 16:48:40 +0200
committerKali Kaneko <kali@leap.se>2017-06-26 16:48:40 +0200
commita653032662c990c662bf6706b0784bce1c553cbd (patch)
treebd126e8d3614f6a29f055c89e0546108b4aefc1f /src/leap/soledad/client/examples
parent80699961145de3941c645ab3d8f3a4f9c2775ef3 (diff)
[pkg] move examples folder to docs/
Diffstat (limited to 'src/leap/soledad/client/examples')
-rw-r--r--src/leap/soledad/client/examples/README4
-rwxr-xr-xsrc/leap/soledad/client/examples/benchmarks/get_sample.sh3
-rw-r--r--src/leap/soledad/client/examples/benchmarks/measure_index_times.py179
-rw-r--r--src/leap/soledad/client/examples/benchmarks/measure_index_times_custom_docid.py179
-rw-r--r--src/leap/soledad/client/examples/compare.txt8
-rw-r--r--src/leap/soledad/client/examples/manifest.phk50
-rw-r--r--src/leap/soledad/client/examples/plot-async-db.py45
-rw-r--r--src/leap/soledad/client/examples/run_benchmark.py30
-rw-r--r--src/leap/soledad/client/examples/soledad_sync.py63
-rw-r--r--src/leap/soledad/client/examples/use_adbapi.py105
-rw-r--r--src/leap/soledad/client/examples/use_api.py69
11 files changed, 0 insertions, 735 deletions
diff --git a/src/leap/soledad/client/examples/README b/src/leap/soledad/client/examples/README
deleted file mode 100644
index 3aed8377..00000000
--- a/src/leap/soledad/client/examples/README
+++ /dev/null
@@ -1,4 +0,0 @@
-Right now, you can find here both an example of use
-and the benchmarking scripts.
-TODO move benchmark scripts to root scripts/ folder,
-and leave here only a minimal example.
diff --git a/src/leap/soledad/client/examples/benchmarks/get_sample.sh b/src/leap/soledad/client/examples/benchmarks/get_sample.sh
deleted file mode 100755
index 1995eee1..00000000
--- a/src/leap/soledad/client/examples/benchmarks/get_sample.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-mkdir tmp
-wget http://www.gutenberg.org/cache/epub/101/pg101.txt -O hacker_crackdown.txt
diff --git a/src/leap/soledad/client/examples/benchmarks/measure_index_times.py b/src/leap/soledad/client/examples/benchmarks/measure_index_times.py
deleted file mode 100644
index f9349758..00000000
--- a/src/leap/soledad/client/examples/benchmarks/measure_index_times.py
+++ /dev/null
@@ -1,179 +0,0 @@
-# -*- coding: utf-8 -*-
-# measure_index_times.py
-# Copyright (C) 2014 LEAP
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-Measure u1db retrieval times for different u1db index situations.
-"""
-from __future__ import print_function
-from functools import partial
-import datetime
-import hashlib
-import os
-import sys
-
-from twisted.internet import defer, reactor
-
-from leap.soledad.common import l2db
-from leap.soledad.client import adbapi
-from leap.soledad.client._db.sqlcipher import SQLCipherOptions
-
-
-folder = os.environ.get("TMPDIR", "tmp")
-numdocs = int(os.environ.get("DOCS", "1000"))
-silent = os.environ.get("SILENT", False)
-tmpdb = os.path.join(folder, "test.soledad")
-
-
-sample_file = os.environ.get("SAMPLE", "hacker_crackdown.txt")
-sample_path = os.path.join(os.curdir, sample_file)
-
-try:
- with open(sample_file) as f:
- SAMPLE = f.readlines()
-except Exception:
- print("[!] Problem opening sample file. Did you download "
- "the sample, or correctly set 'SAMPLE' env var?")
- sys.exit(1)
-
-if numdocs > len(SAMPLE):
- print("[!] Sorry! The requested DOCS number is larger than "
- "the num of lines in our sample file")
- sys.exit(1)
-
-
-def debug(*args):
- if not silent:
- print(*args)
-
-
-debug("[+] db path:", tmpdb)
-debug("[+] num docs", numdocs)
-
-if os.path.isfile(tmpdb):
- debug("[+] Removing existing db file...")
- os.remove(tmpdb)
-
-start_time = datetime.datetime.now()
-
-opts = SQLCipherOptions(tmpdb, "secret", create=True)
-dbpool = adbapi.getConnectionPool(opts)
-
-
-def createDoc(doc):
- return dbpool.runU1DBQuery("create_doc", doc)
-
-
-db_indexes = {
- 'by-chash': ['chash'],
- 'by-number': ['number']}
-
-
-def create_indexes(_):
- deferreds = []
- for index, definition in db_indexes.items():
- d = dbpool.runU1DBQuery("create_index", index, *definition)
- deferreds.append(d)
- return defer.gatherResults(deferreds)
-
-
-class TimeWitness(object):
- def __init__(self, init_time):
- self.init_time = init_time
-
- def get_time_count(self):
- return datetime.datetime.now() - self.init_time
-
-
-def get_from_index(_):
- init_time = datetime.datetime.now()
- debug("GETTING FROM INDEX...", init_time)
-
- def printValue(res, time):
- print("RESULT->", res)
- print("Index Query Took: ", time.get_time_count())
- return res
-
- d = dbpool.runU1DBQuery(
- "get_from_index", "by-chash",
- # "1150c7f10fabce0a57ce13071349fc5064f15bdb0cc1bf2852f74ef3f103aff5")
- # XXX this is line 89 from the hacker crackdown...
- # Should accept any other optional hash as an enviroment variable.
- "57793320d4997a673fc7062652da0596c36a4e9fbe31310d2281e67d56d82469")
- d.addCallback(printValue, TimeWitness(init_time))
- return d
-
-
-def getAllDocs():
- return dbpool.runU1DBQuery("get_all_docs")
-
-
-def errBack(e):
- debug("[!] ERROR FOUND!!!")
- e.printTraceback()
- reactor.stop()
-
-
-def countDocs(_):
- debug("counting docs...")
- d = getAllDocs()
- d.addCallbacks(printResult, errBack)
- d.addCallbacks(allDone, errBack)
- return d
-
-
-def printResult(r, **kwargs):
- if kwargs:
- debug(*kwargs.values())
- elif isinstance(r, l2db.Document):
- debug(r.doc_id, r.content['number'])
- else:
- len_results = len(r[1])
- debug("GOT %s results" % len(r[1]))
-
- if len_results == numdocs:
- debug("ALL GOOD")
- else:
- debug("[!] MISSING DOCS!!!!!")
- raise ValueError("We didn't expect this result len")
-
-
-def allDone(_):
- debug("ALL DONE!")
-
- end_time = datetime.datetime.now()
- print((end_time - start_time).total_seconds())
- reactor.stop()
-
-
-def insert_docs(_):
- deferreds = []
- for i in range(numdocs):
- payload = SAMPLE[i]
- chash = hashlib.sha256(payload).hexdigest()
- doc = {"number": i, "payload": payload, 'chash': chash}
- d = createDoc(doc)
- d.addCallbacks(partial(printResult, i=i, chash=chash, payload=payload),
- lambda e: e.printTraceback())
- deferreds.append(d)
- return defer.gatherResults(deferreds, consumeErrors=True)
-
-
-d = create_indexes(None)
-d.addCallback(insert_docs)
-d.addCallback(get_from_index)
-d.addCallback(countDocs)
-
-reactor.run()
diff --git a/src/leap/soledad/client/examples/benchmarks/measure_index_times_custom_docid.py b/src/leap/soledad/client/examples/benchmarks/measure_index_times_custom_docid.py
deleted file mode 100644
index 4f273c64..00000000
--- a/src/leap/soledad/client/examples/benchmarks/measure_index_times_custom_docid.py
+++ /dev/null
@@ -1,179 +0,0 @@
-# -*- coding: utf-8 -*-
-# measure_index_times.py
-# Copyright (C) 2014 LEAP
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-Measure u1db retrieval times for different u1db index situations.
-"""
-from __future__ import print_function
-from functools import partial
-import datetime
-import hashlib
-import os
-import sys
-
-from twisted.internet import defer, reactor
-
-from leap.soledad.client import adbapi
-from leap.soledad.client._db.sqlcipher import SQLCipherOptions
-from leap.soledad.common import l2db
-
-
-folder = os.environ.get("TMPDIR", "tmp")
-numdocs = int(os.environ.get("DOCS", "1000"))
-silent = os.environ.get("SILENT", False)
-tmpdb = os.path.join(folder, "test.soledad")
-
-
-sample_file = os.environ.get("SAMPLE", "hacker_crackdown.txt")
-sample_path = os.path.join(os.curdir, sample_file)
-
-try:
- with open(sample_file) as f:
- SAMPLE = f.readlines()
-except Exception:
- print("[!] Problem opening sample file. Did you download "
- "the sample, or correctly set 'SAMPLE' env var?")
- sys.exit(1)
-
-if numdocs > len(SAMPLE):
- print("[!] Sorry! The requested DOCS number is larger than "
- "the num of lines in our sample file")
- sys.exit(1)
-
-
-def debug(*args):
- if not silent:
- print(*args)
-
-
-debug("[+] db path:", tmpdb)
-debug("[+] num docs", numdocs)
-
-if os.path.isfile(tmpdb):
- debug("[+] Removing existing db file...")
- os.remove(tmpdb)
-
-start_time = datetime.datetime.now()
-
-opts = SQLCipherOptions(tmpdb, "secret", create=True)
-dbpool = adbapi.getConnectionPool(opts)
-
-
-def createDoc(doc, doc_id):
- return dbpool.runU1DBQuery("create_doc", doc, doc_id=doc_id)
-
-
-db_indexes = {
- 'by-chash': ['chash'],
- 'by-number': ['number']}
-
-
-def create_indexes(_):
- deferreds = []
- for index, definition in db_indexes.items():
- d = dbpool.runU1DBQuery("create_index", index, *definition)
- deferreds.append(d)
- return defer.gatherResults(deferreds)
-
-
-class TimeWitness(object):
- def __init__(self, init_time):
- self.init_time = init_time
-
- def get_time_count(self):
- return datetime.datetime.now() - self.init_time
-
-
-def get_from_index(_):
- init_time = datetime.datetime.now()
- debug("GETTING FROM INDEX...", init_time)
-
- def printValue(res, time):
- print("RESULT->", res)
- print("Index Query Took: ", time.get_time_count())
- return res
-
- d = dbpool.runU1DBQuery(
- "get_doc",
- # "1150c7f10fabce0a57ce13071349fc5064f15bdb0cc1bf2852f74ef3f103aff5")
- # XXX this is line 89 from the hacker crackdown...
- # Should accept any other optional hash as an enviroment variable.
- "57793320d4997a673fc7062652da0596c36a4e9fbe31310d2281e67d56d82469")
- d.addCallback(printValue, TimeWitness(init_time))
- return d
-
-
-def getAllDocs():
- return dbpool.runU1DBQuery("get_all_docs")
-
-
-def errBack(e):
- debug("[!] ERROR FOUND!!!")
- e.printTraceback()
- reactor.stop()
-
-
-def countDocs(_):
- debug("counting docs...")
- d = getAllDocs()
- d.addCallbacks(printResult, errBack)
- d.addCallbacks(allDone, errBack)
- return d
-
-
-def printResult(r, **kwargs):
- if kwargs:
- debug(*kwargs.values())
- elif isinstance(r, l2db.Document):
- debug(r.doc_id, r.content['number'])
- else:
- len_results = len(r[1])
- debug("GOT %s results" % len(r[1]))
-
- if len_results == numdocs:
- debug("ALL GOOD")
- else:
- debug("[!] MISSING DOCS!!!!!")
- raise ValueError("We didn't expect this result len")
-
-
-def allDone(_):
- debug("ALL DONE!")
-
- end_time = datetime.datetime.now()
- print((end_time - start_time).total_seconds())
- reactor.stop()
-
-
-def insert_docs(_):
- deferreds = []
- for i in range(numdocs):
- payload = SAMPLE[i]
- chash = hashlib.sha256(payload).hexdigest()
- doc = {"number": i, "payload": payload, 'chash': chash}
- d = createDoc(doc, doc_id=chash)
- d.addCallbacks(partial(printResult, i=i, chash=chash, payload=payload),
- lambda e: e.printTraceback())
- deferreds.append(d)
- return defer.gatherResults(deferreds, consumeErrors=True)
-
-
-d = create_indexes(None)
-d.addCallback(insert_docs)
-d.addCallback(get_from_index)
-d.addCallback(countDocs)
-
-reactor.run()
diff --git a/src/leap/soledad/client/examples/compare.txt b/src/leap/soledad/client/examples/compare.txt
deleted file mode 100644
index 19a1325a..00000000
--- a/src/leap/soledad/client/examples/compare.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-TIMES=100 TMPDIR=/media/sdb5/leap python use_adbapi.py 1.34s user 0.16s system 53% cpu 2.832 total
-TIMES=100 TMPDIR=/media/sdb5/leap python use_api.py 1.22s user 0.14s system 62% cpu 2.181 total
-
-TIMES=1000 TMPDIR=/media/sdb5/leap python use_api.py 2.18s user 0.34s system 27% cpu 9.213 total
-TIMES=1000 TMPDIR=/media/sdb5/leap python use_adbapi.py 2.40s user 0.34s system 39% cpu 7.004 total
-
-TIMES=5000 TMPDIR=/media/sdb5/leap python use_api.py 6.63s user 1.27s system 13% cpu 57.882 total
-TIMES=5000 TMPDIR=/media/sdb5/leap python use_adbapi.py 6.84s user 1.26s system 36% cpu 22.367 total
diff --git a/src/leap/soledad/client/examples/manifest.phk b/src/leap/soledad/client/examples/manifest.phk
deleted file mode 100644
index 2c86c07d..00000000
--- a/src/leap/soledad/client/examples/manifest.phk
+++ /dev/null
@@ -1,50 +0,0 @@
-The Hacker's Manifesto
-
-The Hacker's Manifesto
-by: The Mentor
-
-Another one got caught today, it's all over the papers. "Teenager
-Arrested in Computer Crime Scandal", "Hacker Arrested after Bank
-Tampering." "Damn kids. They're all alike." But did you, in your
-three-piece psychology and 1950's technobrain, ever take a look behind
-the eyes of the hacker? Did you ever wonder what made him tick, what
-forces shaped him, what may have molded him? I am a hacker, enter my
-world. Mine is a world that begins with school. I'm smarter than most of
-the other kids, this crap they teach us bores me. "Damn underachiever.
-They're all alike." I'm in junior high or high school. I've listened to
-teachers explain for the fifteenth time how to reduce a fraction. I
-understand it. "No, Ms. Smith, I didn't show my work. I did it in
-my head." "Damn kid. Probably copied it. They're all alike." I made a
-discovery today. I found a computer. Wait a second, this is cool. It does
-what I want it to. If it makes a mistake, it's because I screwed it up.
-Not because it doesn't like me, or feels threatened by me, or thinks I'm
-a smart ass, or doesn't like teaching and shouldn't be here. Damn kid.
-All he does is play games. They're all alike. And then it happened... a
-door opened to a world... rushing through the phone line like heroin
-through an addict's veins, an electronic pulse is sent out, a refuge from
-the day-to-day incompetencies is sought... a board is found. "This is
-it... this is where I belong..." I know everyone here... even if I've
-never met them, never talked to them, may never hear from them again... I
-know you all... Damn kid. Tying up the phone line again. They're all
-alike... You bet your ass we're all alike... we've been spoon-fed baby
-food at school when we hungered for steak... the bits of meat that you
-did let slip through were pre-chewed and tasteless. We've been dominated
-by sadists, or ignored by the apathetic. The few that had something to
-teach found us willing pupils, but those few are like drops of water in
-the desert. This is our world now... the world of the electron and the
-switch, the beauty of the baud. We make use of a service already existing
-without paying for what could be dirt-cheap if it wasn't run by
-profiteering gluttons, and you call us criminals. We explore... and you
-call us criminals. We seek after knowledge... and you call us criminals.
-We exist without skin color, without nationality, without religious
-bias... and you call us criminals. You build atomic bombs, you wage wars,
-you murder, cheat, and lie to us and try to make us believe it's for our
-own good, yet we're the criminals. Yes, I am a criminal. My crime is that
-of curiosity. My crime is that of judging people by what they say and
-think, not what they look like. My crime is that of outsmarting you,
-something that you will never forgive me for. I am a hacker, and this is
-my manifesto. You may stop this individual, but you can't stop us all...
-after all, we're all alike.
-
-This was the last published file written by The Mentor. Shortly after
-releasing it, he was busted by the FBI. The Mentor, sadly missed.
diff --git a/src/leap/soledad/client/examples/plot-async-db.py b/src/leap/soledad/client/examples/plot-async-db.py
deleted file mode 100644
index 018a1a1d..00000000
--- a/src/leap/soledad/client/examples/plot-async-db.py
+++ /dev/null
@@ -1,45 +0,0 @@
-import csv
-from matplotlib import pyplot as plt
-
-FILE = "bench.csv"
-
-# config the plot
-plt.xlabel('number of inserts')
-plt.ylabel('time (seconds)')
-plt.title('SQLCipher parallelization')
-
-kwargs = {
- 'linewidth': 1.0,
- 'linestyle': '-',
-}
-
-series = (('sync', 'r'),
- ('async', 'g'))
-
-data = {'mark': [],
- 'sync': [],
- 'async': []}
-
-with open(FILE, 'rb') as csvfile:
- series_reader = csv.reader(csvfile, delimiter=',')
- for m, s, a in series_reader:
- data['mark'].append(int(m))
- data['sync'].append(float(s))
- data['async'].append(float(a))
-
-xmax = max(data['mark'])
-xmin = min(data['mark'])
-ymax = max(data['sync'] + data['async'])
-ymin = min(data['sync'] + data['async'])
-
-for run in series:
- name = run[0]
- color = run[1]
- plt.plot(data['mark'], data[name], label=name, color=color, **kwargs)
-
-plt.axes().annotate("", xy=(xmax, ymax))
-plt.axes().annotate("", xy=(xmin, ymin))
-
-plt.grid()
-plt.legend()
-plt.show()
diff --git a/src/leap/soledad/client/examples/run_benchmark.py b/src/leap/soledad/client/examples/run_benchmark.py
deleted file mode 100644
index ddedf433..00000000
--- a/src/leap/soledad/client/examples/run_benchmark.py
+++ /dev/null
@@ -1,30 +0,0 @@
-"""
-Run a mini-benchmark between regular api and dbapi
-"""
-import commands
-import os
-import time
-
-TMPDIR = os.environ.get("TMPDIR", "/tmp")
-CSVFILE = 'bench.csv'
-
-cmd = "SILENT=1 TIMES={times} TMPDIR={tmpdir} python ./use_{version}api.py"
-
-
-def parse_time(r):
- return r.split('\n')[-1]
-
-
-with open(CSVFILE, 'w') as log:
-
- for times in range(0, 10000, 500):
- cmd1 = cmd.format(times=times, tmpdir=TMPDIR, version="")
- sync_time = parse_time(commands.getoutput(cmd1))
-
- cmd2 = cmd.format(times=times, tmpdir=TMPDIR, version="adb")
- async_time = parse_time(commands.getoutput(cmd2))
-
- print times, sync_time, async_time
- log.write("%s, %s, %s\n" % (times, sync_time, async_time))
- log.flush()
- time.sleep(2)
diff --git a/src/leap/soledad/client/examples/soledad_sync.py b/src/leap/soledad/client/examples/soledad_sync.py
deleted file mode 100644
index 3aed10eb..00000000
--- a/src/leap/soledad/client/examples/soledad_sync.py
+++ /dev/null
@@ -1,63 +0,0 @@
-from leap.bitmask.config.providerconfig import ProviderConfig
-from leap.bitmask.crypto.srpauth import SRPAuth
-from leap.soledad.client import Soledad
-from twisted.internet import reactor
-import logging
-logging.basicConfig(level=logging.DEBUG)
-
-
-# EDIT THIS --------------------------------------------
-user = u"USERNAME"
-uuid = u"USERUUID"
-_pass = u"USERPASS"
-server_url = "https://soledad.server.example.org:2323"
-# EDIT THIS --------------------------------------------
-
-secrets_path = "/tmp/%s.secrets" % uuid
-local_db_path = "/tmp/%s.soledad" % uuid
-cert_file = "/tmp/cacert.pem"
-provider_config = '/tmp/cdev.json'
-
-
-provider = ProviderConfig()
-provider.load(provider_config)
-
-soledad = None
-
-
-def printStuff(r):
- print r
-
-
-def printErr(err):
- logging.exception(err.value)
-
-
-def init_soledad(_):
- token = srpauth.get_token()
- print "token", token
-
- global soledad
- soledad = Soledad(uuid, _pass, secrets_path, local_db_path,
- server_url, cert_file,
- auth_token=token)
-
- def getall(_):
- d = soledad.get_all_docs()
- return d
-
- d1 = soledad.create_doc({"test": 42})
- d1.addCallback(getall)
- d1.addCallbacks(printStuff, printErr)
-
- d2 = soledad.sync()
- d2.addCallbacks(printStuff, printErr)
- d2.addBoth(lambda r: reactor.stop())
-
-
-srpauth = SRPAuth(provider)
-
-d = srpauth.authenticate(user, _pass)
-d.addCallbacks(init_soledad, printErr)
-
-reactor.run()
diff --git a/src/leap/soledad/client/examples/use_adbapi.py b/src/leap/soledad/client/examples/use_adbapi.py
deleted file mode 100644
index ddb1eaae..00000000
--- a/src/leap/soledad/client/examples/use_adbapi.py
+++ /dev/null
@@ -1,105 +0,0 @@
-# -*- coding: utf-8 -*-
-# use_adbapi.py
-# Copyright (C) 2014 LEAP
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-Example of use of the asynchronous soledad api.
-"""
-from __future__ import print_function
-import datetime
-import os
-
-from twisted.internet import defer, reactor
-
-from leap.soledad.client import adbapi
-from leap.soledad.client._db.sqlcipher import SQLCipherOptions
-from leap.soledad.common import l2db
-
-
-folder = os.environ.get("TMPDIR", "tmp")
-times = int(os.environ.get("TIMES", "1000"))
-silent = os.environ.get("SILENT", False)
-
-tmpdb = os.path.join(folder, "test.soledad")
-
-
-def debug(*args):
- if not silent:
- print(*args)
-
-
-debug("[+] db path:", tmpdb)
-debug("[+] times", times)
-
-if os.path.isfile(tmpdb):
- debug("[+] Removing existing db file...")
- os.remove(tmpdb)
-
-start_time = datetime.datetime.now()
-
-opts = SQLCipherOptions(tmpdb, "secret", create=True)
-dbpool = adbapi.getConnectionPool(opts)
-
-
-def createDoc(doc):
- return dbpool.runU1DBQuery("create_doc", doc)
-
-
-def getAllDocs():
- return dbpool.runU1DBQuery("get_all_docs")
-
-
-def countDocs(_):
- debug("counting docs...")
- d = getAllDocs()
- d.addCallbacks(printResult, lambda e: e.printTraceback())
- d.addBoth(allDone)
-
-
-def printResult(r):
- if isinstance(r, l2db.Document):
- debug(r.doc_id, r.content['number'])
- else:
- len_results = len(r[1])
- debug("GOT %s results" % len(r[1]))
-
- if len_results == times:
- debug("ALL GOOD")
- else:
- raise ValueError("We didn't expect this result len")
-
-
-def allDone(_):
- debug("ALL DONE!")
- if silent:
- end_time = datetime.datetime.now()
- print((end_time - start_time).total_seconds())
- reactor.stop()
-
-
-deferreds = []
-payload = open('manifest.phk').read()
-
-for i in range(times):
- doc = {"number": i, "payload": payload}
- d = createDoc(doc)
- d.addCallbacks(printResult, lambda e: e.printTraceback())
- deferreds.append(d)
-
-
-all_done = defer.gatherResults(deferreds, consumeErrors=True)
-all_done.addCallback(countDocs)
-
-reactor.run()
diff --git a/src/leap/soledad/client/examples/use_api.py b/src/leap/soledad/client/examples/use_api.py
deleted file mode 100644
index db77c4b3..00000000
--- a/src/leap/soledad/client/examples/use_api.py
+++ /dev/null
@@ -1,69 +0,0 @@
-# -*- coding: utf-8 -*-
-# use_api.py
-# Copyright (C) 2014 LEAP
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-Example of use of the soledad api.
-"""
-from __future__ import print_function
-import datetime
-import os
-
-from leap.soledad.client import sqlcipher
-from leap.soledad.client.sqlcipher import SQLCipherOptions
-
-
-folder = os.environ.get("TMPDIR", "tmp")
-times = int(os.environ.get("TIMES", "1000"))
-silent = os.environ.get("SILENT", False)
-
-tmpdb = os.path.join(folder, "test.soledad")
-
-
-def debug(*args):
- if not silent:
- print(*args)
-
-
-debug("[+] db path:", tmpdb)
-debug("[+] times", times)
-
-if os.path.isfile(tmpdb):
- debug("[+] Removing existing db file...")
- os.remove(tmpdb)
-
-start_time = datetime.datetime.now()
-
-opts = SQLCipherOptions(tmpdb, "secret", create=True)
-db = sqlcipher.SQLCipherDatabase(opts)
-
-
-def allDone():
- debug("ALL DONE!")
-
-
-payload = open('manifest.phk').read()
-
-for i in range(times):
- doc = {"number": i, "payload": payload}
- d = db.create_doc(doc)
- debug(d.doc_id, d.content['number'])
-
-debug("Count", len(db.get_all_docs()[1]))
-if silent:
- end_time = datetime.datetime.now()
- print((end_time - start_time).total_seconds())
-
-allDone()