3 # Standalone WSGI PLCAPI Server
5 # Tony Mack <tmack@cs.princeton.edu>
6 # Copyright (C) 2006 The Trustees of Princeton University
12 from optparse import OptionParser
13 from gevent import pywsgi
14 # Append PLC to the system path
15 sys.path.append(os.path.dirname(os.path.realpath(sys.argv[0])))
16 from PLC.RestAPI import app
21 config_file = '/etc/planetlab/plcapi_config'
27 parser = OptionParser()
28 parser.add_option('-p', '--port', dest='port', metavar='<port>', help='TCP port number to listen on')
29 parser.add_option('-f', '--config', dest='config', metavar='<config>', help='PLCAPI configuration file')
33 (options, args) = parser.parse_args()
35 print "Usage: %s [OPTION]..." % sys.argv[0]
37 print " -p PORT, --port=PORT TCP port number to listen on (default: %d)" % port
38 print " -f FILE, --config=FILE PLC configuration file (default: %s)" % config
39 print " -h, --help This message"
43 config = Config(options.config)
44 addr = config.api_host
45 keyfile = config.api_ssl_key
46 certfile = config.api_ssl_cert
49 port = int(options.port)
52 if keyfile and certfile:
53 app.run(host=addr, port=port, ssl_context=(certfile, keyfile))
55 app.run(host=addr, port=port)