extras/iro.tac: now using check functions devel
authorSandro Knauß <knauss@netzguerilla.net>
Fri, 30 Mar 2012 16:39:12 +0200
branchdevel
changeset 270 665c3ea02d35
parent 269 0d134b173cb1
child 271 b218238e76b9
extras/iro.tac: now using check functions
.hgignore
bin/iro-install
extras/iro.tac
--- 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
--- 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)
--- 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)