[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [oonib/master] Get the thing to actually start.



commit 683bbc695af313e1eba36bd3d9698eec17fca8cb
Author: Arturo Filastò <art@xxxxxxxxx>
Date:   Fri Aug 16 21:38:24 2013 +0200

    Get the thing to actually start.
    
    Misc bugfixes and retested the requirements.txt
---
 oonib/__init__.py         |   63 +++++++++++++++++++++++++++++++++++++++++++++
 oonib/api.py              |   19 ++++----------
 oonib/bouncer/handlers.py |    4 ++-
 oonib/deck/handlers.py    |    2 +-
 oonib/handlers.py         |    7 +++++
 oonib/inputs/api.py       |    2 +-
 oonib/inputs/handlers.py  |    2 +-
 oonib/policy/handlers.py  |    2 +-
 oonib/report/handlers.py  |    4 +--
 oonib/runner.py           |   14 ++++------
 requirements.txt          |   20 +-------------
 11 files changed, 89 insertions(+), 50 deletions(-)

diff --git a/oonib/__init__.py b/oonib/__init__.py
new file mode 100644
index 0000000..54d3006
--- /dev/null
+++ b/oonib/__init__.py
@@ -0,0 +1,63 @@
+"""
+In here we shall keep track of all variables and objects that should be
+instantiated only once and be common to pieces of GLBackend code.
+"""
+
+__version__ = '0.9.1'
+
+__all__ = ['Storage', 'randomStr']
+
+import string
+import random
+
+class Storage(dict):
+    """
+    A Storage object is like a dictionary except `obj.foo` can be used
+    in addition to `obj['foo']`.
+
+        >>> o = Storage(a=1)
+        >>> o.a
+        1
+        >>> o['a']
+        1
+        >>> o.a = 2
+        >>> o['a']
+        2
+        >>> del o.a
+        >>> o.a
+        None
+    """
+    def __getattr__(self, key):
+        try:
+            return self[key]
+        except KeyError, k:
+            return None
+
+    def __setattr__(self, key, value):
+        self[key] = value
+
+    def __delattr__(self, key):
+        try:
+            del self[key]
+        except KeyError, k:
+            raise AttributeError, k
+
+    def __repr__(self):
+        return '<Storage ' + dict.__repr__(self) + '>'
+
+    def __getstate__(self):
+        return dict(self)
+
+    def __setstate__(self, value):
+        for (k, v) in value.items():
+            self[k] = v
+
+def randomStr(length, num=True):
+    """
+    Returns a random a mixed lowercase, uppercase, alfanumerical (if num True)
+    string long length
+    """
+    chars = string.ascii_lowercase + string.ascii_uppercase
+    if num:
+        chars += string.digits
+    return ''.join(random.choice(chars) for x in range(length))
diff --git a/oonib/api.py b/oonib/api.py
index ce682fc..48c2e1e 100644
--- a/oonib/api.py
+++ b/oonib/api.py
@@ -1,31 +1,22 @@
-from cyclone import web
-
 from oonib.deck.api import deckAPI
+from oonib.report.api import reportAPI
 from oonib.inputs.api import inputsAPI
 from oonib.policy.api import policyAPI
 from oonib.bouncer.api import bouncerAPI
 
 from oonib import config
 
-class OONIBHandler(web.RequestHandler):
-    pass
-
-class OONIBError(web.HTTPError):
-    pass
-
 oonibAPI = []
 oonibAPI += reportAPI
 
-if config.inputs_dir:
+if config.main.inputs_dir:
     oonibAPI += inputsAPI
 
-if config.deck_dir:
+if config.main.deck_dir:
     oonibAPI += deckAPI
 
-if config.policy_file:
+if config.main.policy_file:
     oonibAPI += policyAPI
 
-if config.bouncer_file:
+if config.main.bouncer_file:
     oonibAPI += bouncerAPI
-
-
diff --git a/oonib/bouncer/__init__.py b/oonib/bouncer/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/oonib/bouncer/handlers.py b/oonib/bouncer/handlers.py
index f2249dd..90651b0 100644
--- a/oonib/bouncer/handlers.py
+++ b/oonib/bouncer/handlers.py
@@ -1,4 +1,6 @@
-class BouncerQueryHandler(web.RequestHandler):
+from oonib.handlers import OONIBHandler
+
+class BouncerQueryHandler(OONIBHandler):
     def get(self):
         #XXX unused
         pass
diff --git a/oonib/deck/__init__.py b/oonib/deck/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/oonib/deck/handlers.py b/oonib/deck/handlers.py
index 97b390a..edbe361 100644
--- a/oonib/deck/handlers.py
+++ b/oonib/deck/handlers.py
@@ -1,4 +1,4 @@
-from oonib.api import OONIBHandler
+from oonib.handlers import OONIBHandler
 
 class DeckDescHandler(OONIBHandler):
     def get(self, deckID):
diff --git a/oonib/handlers.py b/oonib/handlers.py
new file mode 100644
index 0000000..62496ce
--- /dev/null
+++ b/oonib/handlers.py
@@ -0,0 +1,7 @@
+from cyclone import web
+
+class OONIBHandler(web.RequestHandler):
+    pass
+
+class OONIBError(web.HTTPError):
+    pass
diff --git a/oonib/inputs/__init__.py b/oonib/inputs/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/oonib/inputs/api.py b/oonib/inputs/api.py
index 53342ae..d74c23c 100644
--- a/oonib/inputs/api.py
+++ b/oonib/inputs/api.py
@@ -1,5 +1,5 @@
 from cyclone import web
-from oonib.input import handlers
+from oonib.inputs import handlers
 from oonib import config
 
 inputsAPI = [
diff --git a/oonib/inputs/handlers.py b/oonib/inputs/handlers.py
index 5391881..a1ed80d 100644
--- a/oonib/inputs/handlers.py
+++ b/oonib/inputs/handlers.py
@@ -1,4 +1,4 @@
-from oonib.api import OONIBHandler
+from oonib.handlers import OONIBHandler
 
 from oonib import config
 
diff --git a/oonib/policy/__init__.py b/oonib/policy/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/oonib/policy/handlers.py b/oonib/policy/handlers.py
index ee6f089..7544cf9 100644
--- a/oonib/policy/handlers.py
+++ b/oonib/policy/handlers.py
@@ -1,4 +1,4 @@
-from oonib.api import OONIBHandler
+from oonib.handlers import OONIBHandler
 
 from oonib import config
 import json
diff --git a/oonib/report/__init__.py b/oonib/report/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/oonib/report/handlers.py b/oonib/report/handlers.py
index 681d7d1..05949e6 100644
--- a/oonib/report/handlers.py
+++ b/oonib/report/handlers.py
@@ -3,7 +3,7 @@ import string
 import time
 import yaml
 
-from oonib.api import OONIBHandler
+from oonib.handlers import OONIBHandler
 
 from datetime import datetime
 from oonib import randomStr, otime, config, log
@@ -12,8 +12,6 @@ from twisted.internet import fdesc, reactor
 class MissingField(Exception):
     pass
 
-from oonib import randomStr
-from oonib import otime
 class InvalidRequestField(Exception):
     pass
 
diff --git a/oonib/runner.py b/oonib/runner.py
index 3bb064e..10f2bef 100644
--- a/oonib/runner.py
+++ b/oonib/runner.py
@@ -21,10 +21,6 @@ from txtorcon import TCPHiddenServiceEndpoint, TorConfig
 from txtorcon import launch_tor
 
 from oonib.report.api import reportAPI 
-from oonib.deck.api import deckAPI
-from oonib.inputs.api import inputsAPI
-from oonib.policy.api import policyAPI
-from oonib.bouncer.api import bouncerAPI
 from oonib.api import oonibAPI
 
 from oonib import oonibackend
@@ -47,11 +43,6 @@ def setupCollector(tor_process_protocol):
         print("Exposed collector Tor hidden service on httpo://%s"
               % port.onion_uri)
 
-    tempfile.tempdir = os.path.join(_repo_dir, 'tmp')
-    if not os.path.isdir(tempfile.gettempdir()):
-        os.makedirs(tempfile.gettempdir())
-    _temp_dir = tempfile.mkdtemp()
-
     torconfig = TorConfig(tor_process_protocol.tor_protocol)
     public_port = 80
     # XXX there is currently a bug in txtorcon that prevents data_dir from
@@ -70,6 +61,11 @@ def startTor():
     def updates(prog, tag, summary):
         print("%d%%: %s" % (prog, summary))
 
+    tempfile.tempdir = os.path.join(_repo_dir, 'tmp')
+    if not os.path.isdir(tempfile.gettempdir()):
+        os.makedirs(tempfile.gettempdir())
+    _temp_dir = tempfile.mkdtemp()
+
     torconfig = TorConfig()
     torconfig.SocksPort = config.main.socks_port
     if config.main.tor2webmode:
diff --git a/requirements.txt b/requirements.txt
index 08fd114..d7921fc 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,22 +1,4 @@
--i https://pypi.python.org/packages
-##
-## The above line replaces pip's default package index, and this line is
-## removed from the .requirements.travis file, due to its incompatibility
-## with the '--use-mirrors' option that TravisCI recommends. 
-##
-## The URLs in this file which have been commented out are due to a design
-## problem in pip-1.3.0, where it ships with a default package index of
-## 'https://pypi.python.org/simple', which though *it* was over SSL as
-## promised, it still crawled the links on a module's PyPI page, which contains
-## arbitrary links, such as project homepages, created by the PyPI maintainer
-## of the module.  see
-##
-## https://github.com/TheTorProject/ooni-backend/pull/1#discussion_r4084881 for
-## a detailed description of the problem, and why these links may still be
-## useful until pip is updated again.
-##
-PyYAML>=3.10
-#https://pypi.python.org/packages/source/P/PyYAML/PyYAML-3.10.tar.gz#md5=74c94a383886519e9e7b3dd1ee540247#egg=PyYAML
+PyYaml
 Twisted>=12.2.0
 #https://pypi.python.org/packages/source/T/Twisted/Twisted-13.0.0.tar.bz2#md5=68afff4e1efd3757d934e39f70c99f57#egg=Twisted
 cyclone>=1.1



_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits