[tor-commits] [oonib/master] Organize handlers and api for each component

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


commit a33028d8e4708e14da7b23e0b5c2c87c60650d5e
Author: aagbsn <aagbsn at extc.org>
Date:   Sun Jul 7 20:08:43 2013 +0200

    Organize handlers and api for each component
---
 oonib/deck/api.py        |   10 +++++++
 oonib/deck/handlers.py   |   31 +++++++++++++++++++++
 oonib/input/api.py       |   10 +++++++
 oonib/input/handlers.py  |   35 +++++++++++++++++++++++
 oonib/policy/api.py      |   40 ++++-----------------------
 oonib/policy/handlers.py |   69 ++--------------------------------------------
 6 files changed, 95 insertions(+), 100 deletions(-)

diff --git a/oonib/deck/api.py b/oonib/deck/api.py
new file mode 100644
index 0000000..db6fb66
--- /dev/null
+++ b/oonib/deck/api.py
@@ -0,0 +1,10 @@
+from cyclone import web
+from oonib.deck import handlers
+from oonib import config
+
+deckAPI = [
+    (r"/deck", handlers.DeckListHandler),
+    (r"/deck/([a-z0-9]{40})$", handlers.DeckDescHandler),
+    (r"/deck/([a-z0-9]{40})/file$", web.StaticFileHandler, {"path":
+        config.main.deck_dir}),
+]
diff --git a/oonib/deck/handlers.py b/oonib/deck/handlers.py
new file mode 100644
index 0000000..f37609a
--- /dev/null
+++ b/oonib/deck/handlers.py
@@ -0,0 +1,31 @@
+class DeckDescHandler(web.RequestHandler):
+    def get(self, deckID):
+        bn = os.path.basename(deckID)
+        try:
+            f = open(os.path.join(config.main.deck_dir, bn))
+            a = {}
+            deckDesc = yaml.safe_load(f)
+            a['id'] = deckID
+            a['name'] = deckDesc['name']
+            a['description'] = deckDesc['description']
+            self.write(json.dumps(a))
+        except IOError:
+            log.err("Deck %s missing" % deckID)
+        except KeyError:
+            log.err("Deck %s missing required keys!" % deckID)
+
+class DeckListHandler(web.RequestHandler):
+    def get(self):
+        if not config.main.deck_dir: return
+        path = os.path.abspath(config.main.deck_dir) + "/*"
+        decknames = map(os.path.basename, glob.iglob(path))
+        deckList = []
+        for deckname in decknames:
+            f = open(os.path.join(config.main.deck_dir, deckname))
+            d = yaml.safe_load(f)
+            deckList.append({'id': deckname,'name': d['name'],
+                'description': d['description']})
+            f.close()
+        self.write(json.dumps(deckList))
+
+
diff --git a/oonib/input/api.py b/oonib/input/api.py
new file mode 100644
index 0000000..4c397ab
--- /dev/null
+++ b/oonib/input/api.py
@@ -0,0 +1,10 @@
+from cyclone import web
+from oonib.input import handlers
+from oonib import config
+
+inputAPI = [
+    (r"/input", handlers.InputListHandler),
+    (r"/input/([a-z0-9]{40})", handlers.InputDescHandler),
+    (r"/input/([a-z0-9]{40})/file$", web.StaticFileHandler, {"path":
+        config.main.input_dir}),
+]
diff --git a/oonib/input/handlers.py b/oonib/input/handlers.py
new file mode 100644
index 0000000..ed8008e
--- /dev/null
+++ b/oonib/input/handlers.py
@@ -0,0 +1,35 @@
+from oonib import config
+from cyclone import web
+import json
+import os
+import yaml
+
+class InputDescHandler(web.RequestHandler):
+    def get(self, inputID):
+        #XXX return the input descriptor
+        # see oonib.md in ooni-spec
+        bn = os.path.basename(inputID) + ".desc"
+        try:
+            f = open(os.path.join(config.main.input_dir, bn))
+            a = {}
+            inputDesc = yaml.safe_load(f)
+            a['id'] = inputID
+            a['name'] = inputDesc['name']
+            a['description'] = inputDesc['description']
+            self.write(json.dumps(a))
+        except Exception:
+            log.err("No Input Descriptor found for id %s" % inputID) 
+
+class InputListHandler(web.RequestHandler):
+    def get(self):
+        if not config.main.input_dir: return
+        path = os.path.abspath(config.main.input_dir) + "/*"
+        inputnames = map(os.path.basename, glob.iglob(path))
+        inputList = []
+        for inputname in inputnames:
+            f = open(os.path.join(config.main.input_dir, deckname))
+            d = yaml.safe_load(f)
+            inputList.append({'id': inputname,'name': d['name'],
+                'description': d['description']})
+            f.close()
+        self.write(json.dumps(inputList))
diff --git a/oonib/policy/api.py b/oonib/policy/api.py
index 577d988..0f6f023 100644
--- a/oonib/policy/api.py
+++ b/oonib/policy/api.py
@@ -1,40 +1,12 @@
-"""
-/report
-
-/pcap
-
-This is the async pcap reporting system. It requires the client to have created
-a report already, but can work independently from test progress.
-
-"""
-import random
-import string
-import json
-import re
-import os
-
-from twisted.internet import reactor, defer
-
 from cyclone import web
-
-from oonib import otime
-from oonib import randomStr
-
+from oonib.policy import handlers
 from oonib import config
-from oonib.policy import DeckListHandler, InputListHandler, NetTestListHandler
 
 #XXX: if policy is configured
 policyAPI = [
-    (r"/deck", DeckListHandler),
-    (r"/input", InputListHandler),
-    (r"/deck/([a-z0-9]{40})$", DeckDescHandler),
-    (r"/deck/([a-z0-9]{40})/file$", web.StaticFileHandler, {"path":
-        config.main.deck_dir}),
-    (r"/input/([a-z0-9]{40})/file$", web.StaticFileHandler, {"path":
-        config.main.input_dir}),
-    (r"/input([a-z0-9]{40}$", InputDescHandler),
-    (r"/policy/nettest", NetTestListHandler),
-    (r"/policy/nettest/([a-z0-9]+/py$", web.StaticFileHandler, {"path":
-        config.main.nettest_dir}),
-    (r"/policy/input", InputListHandler
+    (r"/policy/nettest", handlers.NetTestPolicyHandler),
+    #XXX: add nettest handler
+    #(r"/policy/nettest/([a-z0-9]+)/py$", web.StaticFileHandler, {"path":
+    #    config.main.nettest_dir}),
+    (r"/policy/input", handlers.InputPolicyHandler),
 ]
diff --git a/oonib/policy/handlers.py b/oonib/policy/handlers.py
index 567da2c..2b55fb7 100644
--- a/oonib/policy/handlers.py
+++ b/oonib/policy/handlers.py
@@ -4,75 +4,12 @@ import json
 import os
 import yaml
 
-class DeckDescHandler(web.RequestHandler):
-    def get(self, deckID):
-        bn = os.path.basename(deckID)
-        try:
-            f = open(os.path.join(config.main.deck_dir, bn))
-            a = {}
-            deckDesc = yaml.safe_load(f)
-            a['id'] = deckID
-            a['name'] = deckDesc['name']
-            a['description'] = deckDesc['description']
-            self.write(json.dumps(a))
-        except IOError:
-            log.err("Deck %s missing" % deckID)
-        except KeyError:
-            log.err("Deck %s missing required keys!" % deckID)
-
-class DeckListHandler(web.RequestHandler):
-    def get(self):
-        if not config.main.deck_dir: return
-        path = os.path.abspath(config.main.deck_dir) + "/*"
-        decknames = map(os.path.basename, glob.iglob(path))
-        deckList = []
-        for deckname in decknames:
-            f = open(os.path.join(config.main.deck_dir, deckname))
-            d = yaml.safe_load(f)
-            deckList.append({'id': deckname,'name': d['name'],
-                'description': d['description']})
-            f.close()
-        self.write(json.dumps(deckList))
-
-class InputDescHandler(web.RequestHandler):
-    def get(self, inputID):
-        #XXX return the input descriptor
-        # see oonib.md in ooni-spec
-        bn = os.path.basename(inputID) + ".desc"
-        try:
-            f = open(os.path.join(config.main.input_dir, bn))
-            a = {}
-            inputDesc = yaml.safe_load(f)
-            a['id'] = inputID
-            a['name'] = inputDesc['name']
-            a['description'] = inputDesc['description']
-            self.write(json.dumps(a))
-        except Exception:
-            log.err("No Input Descriptor found for id %s" % inputID) 
-
-class InputListHandler(web.RequestHandler):
-    def get(self):
-        if not config.main.input_dir: return
-        path = os.path.abspath(config.main.input_dir) + "/*"
-        inputnames = map(os.path.basename, glob.iglob(path))
-        inputList = []
-        for inputname in inputnames:
-            f = open(os.path.join(config.main.input_dir, deckname))
-            d = yaml.safe_load(f)
-            inputList.append({'id': inputname,'name': d['name'],
-                'description': d['description']})
-            f.close()
-        self.write(json.dumps(inputList))
-
-class NetTestListHandler(web.RequestHandler):
+class NetTestPolicyHandler(web.RequestHandler):
     def get(self):
         #XXX: returns a list of accepted NetTests
         pass
 
-class HelperListHandler(web.RequestHandler):
+class InputPolicyHandler(web.RequestHandler):
     def get(self):
-        #XXX: get the list of the running handlers
-        #'id'
-        #'description'
-        #'address'
         pass
+        #XXX return list of input ids





More information about the tor-commits mailing list