def run(): parser = optparse.OptionParser() # options we can override in the config file. groupConfigFile = optparse.OptionGroup(parser, "Config File Defaults", "All the options which have defaults read from a config file.") parser.add_option_group(groupConfigFile) parser.add_option_group(groupConfigFile) parser.add_option("--config", dest="config", default="web/web.conf", help="Config file to read settings from, defaults to web.conf which will be read from configs/ and /etc/pybit/ in turn.", metavar=META + "CONF_FILE") parser.add_option("-v", dest="verbose", action="store_true", default=False, help="Turn on verbose messages.", metavar=META+"VERBOSE") (options, args) = parser.parse_args() (settings, opened_file) = pybit.load_settings(options.config) settings = pybit.merge_options(settings, groupConfigFile, options) # singleton instance myDb = Database(settings['db']) # singleton instance - Needs access to both controller and web settings buildController = Controller(settings, myDb) app = cnx_pybit.get_app(settings, myDb, buildController) bottle.debug(options.verbose) bottle.run(app=app, server=settings['web']['app'], host=settings['web']['interface'], port=settings['web']['port'], reloader=settings['web']['reloader'], )
# static HTML page listing buildboxes @route('/buildd.htm', method='GET') def serve_static_buildboxes(): return static_file("buildd.htm", root='./pybitweb/static/') # static HTML page listing jobs @route('/job.htm', method='GET') def serve_static_jobs(): return static_file("job.htm", root='./pybitweb/static/') # static HTML page listing things @route('/lookups.htm', method='GET') def serve_static_lookups(): return static_file("lookups.htm", root='./pybitweb/static/') # static HTML page listing packages @route('/package.htm', method='GET') def serve_static_packages(): return static_file("package.htm", root='./pybitweb/static/') # static HTML page listing package instances @route('/packageinstance.htm', method='GET') def serve_static_package_instances(): return static_file("packageinstance.htm", root='./pybitweb/static/') try: debug(settings['webserver_debug']) run(server=settings['server_app'], host=settings['webserver_hostname'], port=settings['webserver_port'], reloader=settings['webserver_reloader']) except Exception as e: raise Exception('Error starting web server: ' + str(e))
META="PYBIT_WEB_" if __name__ == '__main__': parser = optparse.OptionParser() #options we can override in the config file. groupConfigFile = optparse.OptionGroup(parser, "Config File Defaults","All the options which have defaults read from a config file.") parser.add_option_group(groupConfigFile) parser.add_option_group(groupConfigFile) parser.add_option("--config", dest="config", default="web/web.conf", help="Config file to read settings from, defaults to web.conf which will be read from configs/ and /etc/pybit/ in turn.", metavar=META + "CONF_FILE") parser.add_option("-v", dest="verbose", action="store_true", default=False, help="Turn on verbose messages.", metavar=META+"VERBOSE") (options, args) = parser.parse_args() (settings, opened_file) = pybit.load_settings(options.config) settings = pybit.merge_options(settings, groupConfigFile, options) myDb = Database(settings['db']) # singleton instance buildController = Controller(settings, myDb) # singleton instance - Needs access to both controller and web settings # try: app = pybitweb.get_app(settings, myDb, buildController) bottle.debug(options.verbose) bottle.run(app=app, server=settings['web']['app'], host=settings['web']['interface'], port=settings['web']['port'], reloader=settings['web']['reloader'])