[tor-commits] [oonib/master] Add NetTest API

art at torproject.org art at torproject.org
Wed Sep 11 09:13:52 UTC 2013


commit 45a5ddb9eb7388976c5c7e09b5ca553681b6b46f
Author: aagbsn <aagbsn at extc.org>
Date:   Sun Aug 18 23:41:41 2013 +0200

    Add NetTest API
---
 oonib/nettest/api.py      |   10 ++++++++++
 oonib/nettest/handlers.py |   25 +++++++++++++++++++++++++
 2 files changed, 35 insertions(+)

diff --git a/oonib/nettest/api.py b/oonib/nettest/api.py
new file mode 100644
index 0000000..758b31d
--- /dev/null
+++ b/oonib/nettest/api.py
@@ -0,0 +1,10 @@
+from cyclone import web
+from oonib.nettest import handlers
+from oonib import config
+
+nettestAPI = [
+    (r"/nettest", handlers.NetTestListHandler),
+    (r"/nettest/([a-f0-9]{64})", handlers.NetTestDescHandler),
+    (r"/nettest/([a-f0-9]{64})/py$", web.StaticFileHandler, {"path":
+        config.main.nettest_dir}),
+]
diff --git a/oonib/nettest/handlers.py b/oonib/nettest/handlers.py
new file mode 100644
index 0000000..17d5590
--- /dev/null
+++ b/oonib/nettest/handlers.py
@@ -0,0 +1,25 @@
+import glob
+import json
+import os
+import yaml
+
+from oonib.handlers import OONIBHandler
+from oonib import config, log
+
+class NetTestDescHandler(OONIBHandler):
+    def get(self, netTestID):
+        bn = os.path.basename(netTestID) + ".desc"
+        try:
+            f = open(os.path.join(config.main.nettest_dir, bn))
+            a = {}
+            netTestDesc = yaml.safe_load(f)
+            for k in ['name', 'description', 'version', 'author', 'date']:
+                a[k] = netTestDesc[k]
+            self.write(json.dumps(a))
+        except IOError:
+            log.err("No NetTest Descriptor found for id %s" % netTestID) 
+        except Exception, e:
+            log.err("Invalid NetTest Descriptor found for id %s" % netTestID) 
+
+
+





More information about the tor-commits mailing list