[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [oonib/master] Add Bouncer API
commit e03798beb5678386749022e88c4593a7546951e4
Author: aagbsn <aagbsn@xxxxxxxx>
Date: Mon Aug 19 01:09:32 2013 +0200
Add Bouncer API
---
oonib/bouncer/handlers.py | 35 ++++++++++++++++++++++++++++++++---
1 file changed, 32 insertions(+), 3 deletions(-)
diff --git a/oonib/bouncer/handlers.py b/oonib/bouncer/handlers.py
index 90651b0..162f61d 100644
--- a/oonib/bouncer/handlers.py
+++ b/oonib/bouncer/handlers.py
@@ -1,4 +1,25 @@
+import json
+import random
+import yaml
from oonib.handlers import OONIBHandler
+from oonib import config
+
+#knownHelpers = {'helper-name': ['collector-address1', 'collector-address2', ... 'collector-addressn']}
+knownHelpers = {}
+
+def updateKnownHelpers():
+ with open(config.main.bouncer_file) as f:
+ bouncerFile = yaml.safe_load(f)
+ for collectorName, helpers in bouncerFile['collector'].items():
+ for helperName, helperAddress in helpers['test-helper'].items():
+ if helperName not in knownHelpers.keys():
+ knownHelpers[helperName] = []
+
+ knownHelpers[helperName].append(
+ {'collector-name': collectorName,
+ 'helper-address': helperAddress
+ })
+updateKnownHelpers()
class BouncerQueryHandler(OONIBHandler):
def get(self):
@@ -6,6 +27,14 @@ class BouncerQueryHandler(OONIBHandler):
pass
def post(self):
- pass
- # request.get?
- #'collector': {'foo.onion': {'helper-name': 'helper-address'}, 'bar.onion': {'helper-name': 'helper-address'}}
+ helpers = json.loads(self.request.body)['test-helpers']
+ a = {}
+ a['collector'] = {}
+ for helperName in helpers:
+ if helperName in knownHelpers.keys():
+ chosen = random.choice(knownHelpers[helperName])
+ collectorName, helperAddress = chosen['collector-name'], chosen['helper-address']
+ if not collectorName in a['collector'].keys():
+ a['collector'][collectorName] = {'test-helper': {}}
+ a['collector'][collectorName]['test-helper'][helperName] = helperAddress
+ self.write(json.dumps(a))
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits