Fix global and app configs
authorSimo Sorce <simo@redhat.com>
Thu, 12 Dec 2013 20:03:17 +0000 (15:03 -0500)
committerSimo Sorce <simo@redhat.com>
Sat, 14 Dec 2013 02:57:57 +0000 (21:57 -0500)
Do not overwrite config settings
- the update() method replaces the global config, we just want to merge
  new directives normally

Provide default app settings for quick development
- allow ui/ to be served as static files when run in standalone mode

Signed-off-by: Simo Sorce <simo@redhat.com>
src/ipsilon.py

index 84a9a31..879de7d 100755 (executable)
@@ -34,20 +34,26 @@ cherrypy.config.update('ipsilon.conf')
 
 plugins = plugin.Plugins(path=cherrypy.config['base.dir'])
 idp_providers = plugins.get_providers()
-cherrypy.config.update({'idp_providers': idp_providers})
+if idp_providers:
+    cherrypy.config['idp_providers'] = idp_providers
 
 datastore = data.Store()
 admin_config = datastore.get_admin_config()
-cherrypy.config.update(admin_config)
+for option in admin_config:
+    cherrypy.config[option] = admin_config[option]
 
 templates = os.path.join(cherrypy.config['base.dir'], 'templates')
 env = Environment(loader=FileSystemLoader(templates))
 
 if __name__ == "__main__":
-    cherrypy.quickstart(root.Root(env))
+    conf = { '/': {'tools.staticdir.root': os.getcwd()},
+             '/ui': { 'tools.staticdir.on': True,
+                      'tools.staticdir.dir': 'ui' }
+           }
+    cherrypy.quickstart(root.Root(env), '/', conf)
 
 else:
-    cherrypy.config.update({'environment': 'embedded'})
+    cherrypy.config['environment'] = 'embedded'
 
     if cherrypy.__version__.startswith('3.0') and cherrypy.engine.state == 0:
         cherrypy.engine.start(blocking=False)