Add test to check a real database (pgsql) works
[cascardo/ipsilon.git] / ipsilon / install / ipsilon-server-install
index e088b39..c6d656d 100755 (executable)
@@ -21,7 +21,7 @@ from ipsilon.login.common import LoginMgrsInstall
 from ipsilon.info.common import InfoProviderInstall
 from ipsilon.providers.common import ProvidersInstall
 from ipsilon.helpers.common import EnvHelpersInstall
-from ipsilon.util.data import Store
+from ipsilon.util.data import UserStore
 from ipsilon.tools import files
 import ConfigParser
 import argparse
@@ -104,6 +104,12 @@ def install(plugins, args):
                 'sysuser': args['system_user'],
                 'ipsilondir': BINDIR,
                 'staticdir': STATICDIR,
+                'admindb': args['database_url'] % {
+                    'datadir': args['data_dir'], 'dbname': 'adminconfig'},
+                'usersdb': args['database_url'] % {
+                    'datadir': args['data_dir'], 'dbname': 'userprefs'},
+                'transdb': args['database_url'] % {
+                    'datadir': args['data_dir'], 'dbname': 'transactions'},
                 'secure': "False" if args['secure'] == "no" else "True",
                 'debugging': "True" if args['server_debugging'] else "False"}
     if args['secure'] == 'no':
@@ -144,7 +150,7 @@ def install(plugins, args):
     users_db = cherrypy.config['user.prefs.db']
     if os.path.exists(users_db):
         shutil.move(users_db, '%s.backup.%s' % (users_db, now))
-    db = Store()
+    db = UserStore()
     db.save_user_preferences(args['admin_user'], {'is_admin': 1})
 
     logger.info('Configuring environment helpers')
@@ -191,7 +197,7 @@ def find_plugins():
 
 
 def parse_config_profile(args):
-    config = ConfigParser.ConfigParser()
+    config = ConfigParser.RawConfigParser()
     files = config.read(args['config_profile'])
     if len(files) == 0:
         raise ConfigurationError('Config Profile file %s not found!' %
@@ -231,6 +237,9 @@ def parse_args(plugins):
                         help="User account used to run the server")
     parser.add_argument('--admin-user', default='admin',
                         help="User account that is assigned admin privileges")
+    parser.add_argument('--database-url',
+                        default='sqlite:///%(datadir)s/%(dbname)s.sqlite',
+                        help="The (templatized) database URL to use")
     parser.add_argument('--secure', choices=['yes', 'no'], default='yes',
                         help="Turn on all security checks")
     parser.add_argument('--config-profile', default=None,