Loading bin/oonib +27 −1 Original line number Diff line number Diff line Loading @@ -10,7 +10,33 @@ from twisted.application import app sys.path[:] = map(os.path.abspath, sys.path) sys.path.insert(0, os.path.abspath(os.getcwd())) from oonib import runner, config from oonib import errors as e from oonib.config import config try: config.load() except e.ConfigFileNotSpecified: print "Config file not specified!" print "Use -c to specify one!" config.usageOptions() sys.exit(1) except e.ConfigFileDoesNotExist, path: print "Config file \"%s\" does not exist!" % path sys.exit(2) except e.InvalidReportDirectory, path: print "Invalid report directory: %s!" % path sys.exit(3) except e.InvalidArchiveDirectory, path: print "Invalid archive directory: %s!" % path sys.exit(4) except e.InvalidInputDirectory, path: print "Invalid input directory: %s" % path sys.exit(5) except e.InvalidDeckDirectory, path: print "Invalid deck directory: %s" % path sys.exit(6) from oonib import runner from oonib.oonibackend import application if config.main.chroot: Loading oonib/api.py +1 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ from oonib.input.api import inputAPI from oonib.policy.api import policyAPI from oonib.bouncer.api import bouncerAPI from oonib import config from oonib.config import config ooniBouncer = None ooniBackendAPI = [] Loading oonib/bouncer/handlers.py +6 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ import random import yaml from oonib import errors as e from oonib.handlers import OONIBHandler from oonib import config from oonib.config import config class Bouncer(object): def __init__(self): Loading Loading @@ -139,5 +139,10 @@ class BouncerQueryHandler(OONIBHandler): except KeyError: raise e.TestHelpersKeyMissing try: assert isinstance(requested_helpers, list) except AssertionError: raise e.InvalidRequest response = self.bouncer.filterHelperAddresses(requested_helpers) self.write(response) oonib/config.py +44 −26 Original line number Diff line number Diff line import yaml from oonib import errors as e from oonib import Storage from oonib import __version__ from oonib.options import OONIBOptions import os def get_root_path(): this_directory = os.path.dirname(__file__) root = os.path.join(this_directory, '..') root = os.path.abspath(root) return root def loadConfigFile(): class Config(object): main = None helpers = None reports = {} backend_version = __version__ opts = OONIBOptions() opts.parseOptions() if 'config' in opts.keys(): with open(opts['config']) as f: config_file_contents = '\n'.join(f.readlines()) configuration = yaml.safe_load(config_file_contents) main = Storage(opts) def __init__(self): self.opts.parseOptions() def load(self): try: config_file = self.opts['config'] except KeyError: raise e.ConfigFileNotSpecified try: with open(self.opts['config']) as f: configuration = yaml.safe_load(f) except IOError: raise e.ConfigFileDoesNotExist(self.opts['config']) self.main = Storage() for k, v in configuration['main'].items(): main[k] = v helpers = Storage() for k, v in configuration['helpers'].items(): helpers[k] = Storage() for k2, v2 in v.items(): helpers[k][k2] = v2 return main, helpers return None, None self.main[k] = v self.helpers = Storage() for name, helper in configuration['helpers'].items(): self.helpers[name] = Storage() for k, v in helper.items(): self.helpers[name][k] = v self.check_paths() def check_paths(self): if not self.main.report_dir or not os.path.isdir(self.main.report_dir): raise e.InvalidReportDirectory(self.main.report_dir) if not self.main.archive_dir or not os.path.isdir(self.main.archive_dir): raise e.InvalidArchiveDirectory(self.main.report_dir) if self.main.input_dir and not os.path.isdir(self.main.input_dir): raise e.InvalidInputDirectory(self.main.input_dir) if self.main.deck_dir and not os.path.isdir(self.main.deck_dir): raise e.InvalidDeckDirectory(self.main.deck_dir) main = None backend_version = __version__ reports = {} if not main: main, helpers = loadConfigFile() config = Config() oonib/deck/api.py +1 −1 Original line number Diff line number Diff line from cyclone import web from oonib.deck import handlers from oonib import config from oonib.config import config deckAPI = [ (r"/deck", handlers.DeckListHandler), Loading Loading
bin/oonib +27 −1 Original line number Diff line number Diff line Loading @@ -10,7 +10,33 @@ from twisted.application import app sys.path[:] = map(os.path.abspath, sys.path) sys.path.insert(0, os.path.abspath(os.getcwd())) from oonib import runner, config from oonib import errors as e from oonib.config import config try: config.load() except e.ConfigFileNotSpecified: print "Config file not specified!" print "Use -c to specify one!" config.usageOptions() sys.exit(1) except e.ConfigFileDoesNotExist, path: print "Config file \"%s\" does not exist!" % path sys.exit(2) except e.InvalidReportDirectory, path: print "Invalid report directory: %s!" % path sys.exit(3) except e.InvalidArchiveDirectory, path: print "Invalid archive directory: %s!" % path sys.exit(4) except e.InvalidInputDirectory, path: print "Invalid input directory: %s" % path sys.exit(5) except e.InvalidDeckDirectory, path: print "Invalid deck directory: %s" % path sys.exit(6) from oonib import runner from oonib.oonibackend import application if config.main.chroot: Loading
oonib/api.py +1 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ from oonib.input.api import inputAPI from oonib.policy.api import policyAPI from oonib.bouncer.api import bouncerAPI from oonib import config from oonib.config import config ooniBouncer = None ooniBackendAPI = [] Loading
oonib/bouncer/handlers.py +6 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ import random import yaml from oonib import errors as e from oonib.handlers import OONIBHandler from oonib import config from oonib.config import config class Bouncer(object): def __init__(self): Loading Loading @@ -139,5 +139,10 @@ class BouncerQueryHandler(OONIBHandler): except KeyError: raise e.TestHelpersKeyMissing try: assert isinstance(requested_helpers, list) except AssertionError: raise e.InvalidRequest response = self.bouncer.filterHelperAddresses(requested_helpers) self.write(response)
oonib/config.py +44 −26 Original line number Diff line number Diff line import yaml from oonib import errors as e from oonib import Storage from oonib import __version__ from oonib.options import OONIBOptions import os def get_root_path(): this_directory = os.path.dirname(__file__) root = os.path.join(this_directory, '..') root = os.path.abspath(root) return root def loadConfigFile(): class Config(object): main = None helpers = None reports = {} backend_version = __version__ opts = OONIBOptions() opts.parseOptions() if 'config' in opts.keys(): with open(opts['config']) as f: config_file_contents = '\n'.join(f.readlines()) configuration = yaml.safe_load(config_file_contents) main = Storage(opts) def __init__(self): self.opts.parseOptions() def load(self): try: config_file = self.opts['config'] except KeyError: raise e.ConfigFileNotSpecified try: with open(self.opts['config']) as f: configuration = yaml.safe_load(f) except IOError: raise e.ConfigFileDoesNotExist(self.opts['config']) self.main = Storage() for k, v in configuration['main'].items(): main[k] = v helpers = Storage() for k, v in configuration['helpers'].items(): helpers[k] = Storage() for k2, v2 in v.items(): helpers[k][k2] = v2 return main, helpers return None, None self.main[k] = v self.helpers = Storage() for name, helper in configuration['helpers'].items(): self.helpers[name] = Storage() for k, v in helper.items(): self.helpers[name][k] = v self.check_paths() def check_paths(self): if not self.main.report_dir or not os.path.isdir(self.main.report_dir): raise e.InvalidReportDirectory(self.main.report_dir) if not self.main.archive_dir or not os.path.isdir(self.main.archive_dir): raise e.InvalidArchiveDirectory(self.main.report_dir) if self.main.input_dir and not os.path.isdir(self.main.input_dir): raise e.InvalidInputDirectory(self.main.input_dir) if self.main.deck_dir and not os.path.isdir(self.main.deck_dir): raise e.InvalidDeckDirectory(self.main.deck_dir) main = None backend_version = __version__ reports = {} if not main: main, helpers = loadConfigFile() config = Config()
oonib/deck/api.py +1 −1 Original line number Diff line number Diff line from cyclone import web from oonib.deck import handlers from oonib import config from oonib.config import config deckAPI = [ (r"/deck", handlers.DeckListHandler), Loading