# HG changeset patch # User Sandro Knauß # Date 1344597642 -7200 # Node ID ec5a280707f39f0d0613b2343112b99103d8c49e # Parent 9eb5b7ff0e38097e97f38b8b2176aa9de8072f26 extras/iro.tac: moving makeService to iro package. diff -r 9eb5b7ff0e38 -r ec5a280707f3 extras/iro.tac --- a/extras/iro.tac Fri Aug 10 13:13:20 2012 +0200 +++ b/extras/iro.tac Fri Aug 10 13:20:42 2012 +0200 @@ -1,58 +1,11 @@ -from twisted.application.service import Service, Application -from twisted.application import internet -from twisted.web import resource, server -from twisted.internet import reactor -from twisted.python import log - -from sqlalchemy import create_engine, pool - -from iro import config, install -from iro.view import xmlrpc -from iro.model import setEngine, setPool -from iro.controller.pool import startPool, dbPool +from twisted.application.service import Application -class IroService(Service): - def startService(self): - log.msg("Starting service...") - engine = create_engine(config.main.dburl, - poolclass = pool.SingletonThreadPool, pool_size=dbPool.maxthreads, ) - - setEngine(engine) - startPool(reactor) - setPool(dbPool) - reactor.callWhenRunning(config.readConfig) - Service.startService(self) - +from iro import iro def get_application(): app = Application("Iro") - if not install.checkConfig(): - log.err("You can create a sample configuration file by running iro-install") - raise Exception("Please update or create your configuration file iro.conf.") - config.init() - - if not install.checkDatabaseConnection(): - raise Exception("Can't connect to database") - - if not install.checkDatabase(): - raise Exception("Database not in right format. Please run iro-install --install") - - routes = [ s for s in config.configParser.sections() if not s in ["main",]] - ao = install.getAllRoutes(routes, False) - for o in ao["orphand"]: - log.msg("Offer(%s) is orphand (no route using this offer)."%o) - if ao["added"]: - raise Exception("offerlist is not up-to-date.\nPlease run iro-install --update") - - root = resource.Resource() - root = xmlrpc.appendResource(root) - - v2 = resource.Resource() - v2 = xmlrpc.appendResource(root) - root.putChild('2.0', v2) - - internet.TCPServer(config.main.port, server.Site(root)).setServiceParent(app) - IroService().setServiceParent(app) + cfg={"config":"iro.conf"} + iro.makeService(cfg).setServiceParent(app) return app application = get_application() diff -r 9eb5b7ff0e38 -r ec5a280707f3 iro/iro.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/iro/iro.py Fri Aug 10 13:20:42 2012 +0200 @@ -0,0 +1,57 @@ +from twisted.application.service import Service, MultiService +from twisted.application import internet +from twisted.web import resource, server +from twisted.internet import reactor +from twisted.python import log + +from sqlalchemy import create_engine, pool + +import config, install +from .view import xmlrpc +from .model import setEngine, setPool +from .controller.pool import startPool, dbPool + +class IroService(Service): + def startService(self): + log.msg("Starting service...") + engine = create_engine(config.main.dburl, + poolclass = pool.SingletonThreadPool, pool_size=dbPool.maxthreads, ) + + setEngine(engine) + startPool(reactor) + setPool(dbPool) + reactor.callWhenRunning(config.readConfig) + Service.startService(self) + + +def makeService(cfg): + top_service = MultiService() + config.confFiles.insert(0, cfg["config"]) + if not install.checkConfig(): + log.err("You can create a sample configuration file by running iro-install") + raise Exception("Please update or create your configuration file %s." % cfg["config"]) + config.init() + + if not install.checkDatabaseConnection(): + raise Exception("Can't connect to database") + + if not install.checkDatabase(): + raise Exception("Database not in right format. Please run iro-install --install") + + routes = [ s for s in config.configParser.sections() if not s in ["main",]] + ao = install.getAllRoutes(routes, False) + for o in ao["orphand"]: + log.msg("Offer(%s) is orphand (no route using this offer)."%o) + if ao["added"]: + raise Exception("offerlist is not up-to-date.\nPlease run iro-install --update") + + root = resource.Resource() + root = xmlrpc.appendResource(root) + + v2 = resource.Resource() + v2 = xmlrpc.appendResource(root) + root.putChild('1.0a', v2) + + internet.TCPServer(config.main.port, server.Site(root)).setServiceParent(top_service) + IroService().setServiceParent(top_service) + return top_service