bin/pvl.verkko-rrd
author Tero Marttila <terom@paivola.fi>
Sun, 20 Jan 2013 18:51:51 +0200
changeset 154 11df86fd2d67
parent 153 8930f54b59b4
child 155 9f2967ba81ef
permissions -rwxr-xr-x
pvl.web.rrd: --cache
#!/usr/bin/python

"""
    pvl.verkko.rrd wsgi development server
"""

import werkzeug.serving 

from pvl import __version__
import pvl.args
import pvl.verkko.rrd

import optparse
import logging; log = logging.getLogger('main')

def parse_argv (argv, doc = __doc__) :
    """
        Parse command-line argv, returning (options, args).
    """

    prog = argv.pop(0)
    args = argv

    # optparse
    parser = optparse.OptionParser(
        prog        = prog,
        usage       = '%prog: [options] [<user> [...]]',
        version     = __version__,
        description = doc,
    )

    # common
    parser.add_option_group(pvl.args.parser(parser))

    parser.add_option('--rrd', metavar='PATH',
        help="Find RRD files")

    parser.add_option('--cache', metavar='PATH',
        help="Cache RRD graphs")

    # parse
    options, args = parser.parse_args(args)

    # apply
    pvl.args.apply(options)

    return options, args

def main (argv) :
    """
        pvl.verkko wsgi development server.
    """

    # parse cmdline
    options, args = parse_argv(argv, doc=__doc__)

    # rrd
    if not options.rrd :
        log.error("no --rrd given")
        return 2

    rrd = pvl.verkko.rrd.RRDDatabase(options.rrd, options.cache)

    # app
    application = pvl.verkko.rrd.Application(rrd)

    # wsgi wrapper
    werkzeug.serving.run_simple('0.0.0.0', 8080, application,
            #use_reloader    = True, 
            use_debugger    = (options.loglevel == logging.DEBUG),
            static_files    = {
                '/static':      'static',
            },
    )

if __name__ == '__main__' :
    import sys

    sys.exit(main(sys.argv))