iro-service.tac
author Sandro Knauß <knauss@netzguerilla.net>
Wed, 21 Mar 2012 17:30:16 +0100
branchdevel
changeset 235 c5d8384caf68
parent 229 1bd4c7f58b3f
permissions -rw-r--r--
adding date Header to email

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
from iro.view import xmlrpc
from iro.model import setEngine, setPool
from iro.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)


def get_application():
    app = Application("Iro")
    config.init()

    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)
    return app

application = get_application()