+import time
+
+
+class ConfigurationError(Exception):
+
+ def __init__(self, message):
+ super(ConfigurationError, self).__init__(message)
+ self.message = message
+
+ def __str__(self):
+ return repr(self.message)
+
+
+LOGFILE = '/var/log/ipsilon-install.log'
+logger = logging.getLogger()
+
+
+def openlogs():
+ global logger # pylint: disable=W0603
+ if os.path.isfile(LOGFILE):
+ try:
+ created = '%s' % time.ctime(os.path.getctime(LOGFILE))
+ shutil.move(LOGFILE, '%s.%s' % (LOGFILE, created))
+ except IOError:
+ pass
+ logger = logging.getLogger()
+ try:
+ lh = logging.FileHandler(LOGFILE)
+ except IOError, e:
+ print >> sys.stderr, 'Unable to open %s (%s)' % (LOGFILE, str(e))
+ lh = logging.StreamHandler(sys.stderr)
+ formatter = logging.Formatter('[%(asctime)s] %(message)s')
+ lh.setFormatter(formatter)
+ logger.addHandler(lh)
+
+
+def install(plugins, args):
+ logger.info('Installation initiated')
+
+ logger.info('Configuring login managers')
+ for plugin_name in args['lm_order']:
+ plugin = plugins['Login Managers'][plugin_name]
+ plugin.configure(args)
+
+ logger.info('Configuring Authentication Providers')
+ for plugin_name in plugins['Auth Providers']:
+ plugin = plugins['Auth Providers'][plugin_name]
+ plugin.configure(args)
+
+
+def uninstall(plugins, args):
+ logger.info('Uninstallation initiated')
+ raise Exception('Not Implemented')