# HG changeset patch # User Sandro Knauß # Date 1333118352 -7200 # Node ID 665c3ea02d3540cf7f289f23f9943bac6077b6de # Parent 0d134b173cb188e79e065769c851901de1a19c55 extras/iro.tac: now using check functions diff -r 0d134b173cb1 -r 665c3ea02d35 .hgignore --- a/.hgignore Fri Mar 30 15:55:44 2012 +0200 +++ b/.hgignore Fri Mar 30 16:39:12 2012 +0200 @@ -18,3 +18,4 @@ *.egg/* doc/_build/* twisted/plugins/dropin.cache +*.db diff -r 0d134b173cb1 -r 665c3ea02d35 bin/iro-install --- a/bin/iro-install Fri Mar 30 15:55:44 2012 +0200 +++ b/bin/iro-install Fri Mar 30 16:39:12 2012 +0200 @@ -50,7 +50,6 @@ if args.install: install.createDatabase() logging.info("Database layout created.") - logging.info("Now you can run "+sys.argv[0]) else: logging.info("Please edit iro.conf and run %s --install"%sys.argv[0]) sys.exit(1) @@ -65,26 +64,11 @@ for a in ao["added"]: logging.info("Added Offer(%s)"%a) logging.info('Updated offerlist.') - logging.info("Now you can run "+sys.argv[0]) else: logging.warning('offerlist is not up-to-date.') logging.info("Please run %s --update"%sys.argv[0]) - sys.exit(1) - -if args.install or args.update: - logging.info('Nothing todo for me.') - logging.info("Now you can run "+sys.argv[0]) - sys.exit(1) + sys.exit(1) logging.info("You can just start your iro server.") -#start via cmdline -#root = resource.Resource() -#root = xmlrpc.appendResource(root) -#v2 = resource.Resource() -#v2 = xmlrpc.appendResource(root) -#root.putChild('2.0', v2) - -#reactor.callLater(0.2, config.readConfig) -#main.runReactor(reactor, engine, config.main.port, root) diff -r 0d134b173cb1 -r 665c3ea02d35 extras/iro.tac --- a/extras/iro.tac Fri Mar 30 15:55:44 2012 +0200 +++ b/extras/iro.tac Fri Mar 30 16:39:12 2012 +0200 @@ -6,7 +6,7 @@ from sqlalchemy import create_engine, pool -from iro import config +from iro import config, install from iro.view import xmlrpc from iro.model import setEngine, setPool from iro.controller.pool import startPool, dbPool @@ -21,12 +21,29 @@ startPool(reactor) setPool(dbPool) reactor.callWhenRunning(config.readConfig) + Service.startService(self) 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)