diff options
author | drebs <drebs@riseup.net> | 2018-01-05 09:37:26 -0200 |
---|---|---|
committer | drebs <drebs@riseup.net> | 2018-01-05 09:37:26 -0200 |
commit | 7a2960d78baa00ef21da4e54c037a3f8cd78ccfc (patch) | |
tree | 8ac9e9b1b9b591365446ee00225323716c4232cb /blob-multiprocess/request.py | |
parent | dde6cc729b2a32fc0201e9a124827e4bd7e6ca99 (diff) |
Fix directory name.
Diffstat (limited to 'blob-multiprocess/request.py')
-rwxr-xr-x | blob-multiprocess/request.py | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/blob-multiprocess/request.py b/blob-multiprocess/request.py deleted file mode 100755 index b73fb79..0000000 --- a/blob-multiprocess/request.py +++ /dev/null @@ -1,105 +0,0 @@ -#!/usr/bin/env python - -from io import BytesIO -import time -import treq -from argparse import ArgumentParser -from twisted.internet import reactor, task, defer -from twisted.web.client import readBody, HTTPConnectionPool -from urlparse import urljoin -from uuid import uuid4 - - -BASE_URI = 'http://127.0.0.1:8000/' -BLOBS_URI = urljoin(BASE_URI, - 'blobs/{}/'.format(time.strftime('%Y-%m-%d_%H-%M-%s'))) -CONCURRENT = 10 - -pool = HTTPConnectionPool(reactor) - - -def parse_args(): - parser = ArgumentParser() - parser.add_argument('amount', type=int, help="the amount of blobs") - parser.add_argument('size', type=int, help="size in blocks of 1024 bytes") - parser.add_argument('--put', action='store_true', - help="noop") - parser.add_argument('--baseline', action='store_true', - help="GET /") - parser.add_argument('--list', action='store_true', - help="GET /blobs/") - parser.add_argument('--get', action='store_true', - help="PUT + GET /blobs/someuser/someid") - parser.add_argument('--flag', action='store_true', - help="PUT + POST /blobs/someuser/someid") - parser.add_argument('--delete', action='store_true', - help="PUT + DELETE /blobs/someuser/someid") - args = parser.parse_args() - return args - - -def _finished(_, amount, size): - print("Finished putting {} blobs of size {}K.".format(amount, size)) - reactor.stop() - - -def _error(failure): - print("Failed: %r" % failure) - reactor.stop() - - -def main(generator): - cooperator = task.Cooperator() - cooptask = cooperator.cooperate(generator) - d = cooptask.whenDone() - return d - - -def requests_generator(args): - data = "a" * args.size * 1024 - - def _get(_, uri): - d = treq.get(uri, pool=pool) - d.addCallback(lambda response: readBody(response)) - return d - - def _flag(_, uri): - flags = BytesIO('["PROCESSING"]') - d = treq.post(uri, data=flags, pool=pool) - return d - - def _delete(_, uri): - d = treq.delete(uri, pool=pool) - return d - - deferreds = [] - for i in xrange(args.amount): - if args.baseline: - d = treq.get(BASE_URI, pool=pool) - - elif args.list: - d = treq.get(BLOBS_URI, pool=pool) - - else: - uri = urljoin(BLOBS_URI, uuid4().hex) - d = treq.put(uri, data=data, pool=pool) - if args.get: - d.addCallback(_get, uri) - if args.flag: - d.addCallback(_flag, uri) - if args.delete: - d.addCallback(_delete, uri) - - deferreds.append(d) - yield None - - yield defer.gatherResults(deferreds) - - -if __name__ == "__main__": - args = parse_args() - generator = requests_generator(args) - d = main(generator) - d.addCallback(_finished, args.amount, args.size) - d.addErrback(_error) - reactor.run() |