CONFDIR = '/etc/ipsilon'
DATADIR = '/var/lib/ipsilon'
HTTPDCONFD = '/etc/httpd/conf.d'
-BINDIR = '/usr/sbin'
+BINDIR = '/usr/libexec'
STATICDIR = '/usr/share/ipsilon'
WSGI_SOCKET_PREFIX = None
'sysuser': args['system_user'],
'ipsilondir': BINDIR,
'staticdir': STATICDIR,
- 'admindb': args['database_url'] % {
+ 'admindb': args['admin_dburi'] or args['database_url'] % {
'datadir': args['data_dir'], 'dbname': 'adminconfig'},
- 'usersdb': args['database_url'] % {
+ 'usersdb': args['users_dburi'] or args['database_url'] % {
'datadir': args['data_dir'], 'dbname': 'userprefs'},
- 'transdb': args['database_url'] % {
- 'datadir': args['data_dir'], 'dbname': 'transactions'},
+ 'transdb': args['transaction_dburi'] or 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",
- }
+ 'debugging': "True" if args['server_debugging'] else "False"}
# Testing database sessions
if 'session_type' in args:
confopts['sesstype'] = args['session_type']
else:
confopts['sessopt'] = 'path'
confopts['sessval'] = os.path.join(args['data_dir'], 'sessions')
- # Whetehr to disable security (for testing)
+ # Whether to disable security (for testing)
if args['secure'] == 'no':
confopts['secure'] = "False"
confopts['sslrequiressl'] = ""
logger.info('Configuring login managers')
for plugin_name in args['lm_order']:
- plugin = plugins['Login Managers'][plugin_name]
+ try:
+ plugin = plugins['Login Managers'][plugin_name]
+ except KeyError:
+ sys.exit('Login provider %s not installed' % plugin_name)
if plugin.configure(args) == False:
print 'Configuration of login manager %s failed' % plugin_name
print 'Removal of environment helper %s failed' % plugin_name
logger.info('Removing login managers')
- for plugin_name in args['lm_order']:
+ for plugin_name in plugins['Login Managers']:
plugin = plugins['Login Managers'][plugin_name]
if plugin.unconfigure(args) == False:
print 'Removal of login manager %s failed' % plugin_name
parser.add_argument('--secure', choices=['yes', 'no'], default='yes',
help="Turn on all security checks")
parser.add_argument('--config-profile', default=None,
- help="File containing install options")
+ help=argparse.SUPPRESS)
parser.add_argument('--server-debugging', action='store_true',
help="Enable debugging")
parser.add_argument('--uninstall', action='store_true',
help="Uninstall the server and all data")
parser.add_argument('--yes', action='store_true',
help="Always answer yes")
+ parser.add_argument('--admin-dburi',
+ help='Configuration database URI (override template)')
+ parser.add_argument('--users-dburi',
+ help='User configuration database URI (override '
+ 'template)')
+ parser.add_argument('--transaction-dburi',
+ help='Transaction database URI (override template)')
lms = []
if not args['hostname']:
args['hostname'] = socket.getfqdn()
+ if args['uninstall']:
+ return args
+
if len(args['hostname'].split('.')) < 2:
raise ConfigurationError('Hostname: %s is not a FQDN')
args['lm_order'] = args['lm_order'].split(',')
if len(args['lm_order']) == 0:
- #force the basic pam provider if nothing else is selected
- if 'pam' not in args:
- parser.print_help()
- sys.exit(-1)
- args['lm_order'] = ['pam']
- args['pam'] = 'yes'
+ sys.exit('No login plugins are enabled.')
#FIXME: check instance is only alphanums
print 'Installation aborted.'
print 'See log file %s for details' % LOGFILE
out = 1
+ except SystemExit:
+ out = 1
+ raise
finally:
if out == 0:
if 'uninstall' in opts and opts['uninstall'] is True: