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
152
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     1
#!/usr/bin/python
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     2
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     3
"""
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     4
    pvl.verkko.rrd wsgi development server
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     5
"""
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     6
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     7
import werkzeug.serving 
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     8
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     9
from pvl import __version__
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    10
import pvl.args
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    11
import pvl.verkko.rrd
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    12
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    13
import optparse
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    14
import logging; log = logging.getLogger('main')
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    15
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    16
def parse_argv (argv, doc = __doc__) :
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    17
    """
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    18
        Parse command-line argv, returning (options, args).
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    19
    """
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    20
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    21
    prog = argv.pop(0)
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    22
    args = argv
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    23
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    24
    # optparse
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    25
    parser = optparse.OptionParser(
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    26
        prog        = prog,
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    27
        usage       = '%prog: [options] [<user> [...]]',
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    28
        version     = __version__,
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    29
        description = doc,
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    30
    )
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    31
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    32
    # common
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    33
    parser.add_option_group(pvl.args.parser(parser))
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    34
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    35
    parser.add_option('--rrd', metavar='PATH',
154
11df86fd2d67 pvl.web.rrd: --cache
Tero Marttila <terom@paivola.fi>
parents: 153
diff changeset
    36
        help="Find RRD files")
11df86fd2d67 pvl.web.rrd: --cache
Tero Marttila <terom@paivola.fi>
parents: 153
diff changeset
    37
11df86fd2d67 pvl.web.rrd: --cache
Tero Marttila <terom@paivola.fi>
parents: 153
diff changeset
    38
    parser.add_option('--cache', metavar='PATH',
11df86fd2d67 pvl.web.rrd: --cache
Tero Marttila <terom@paivola.fi>
parents: 153
diff changeset
    39
        help="Cache RRD graphs")
152
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    40
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    41
    # parse
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    42
    options, args = parser.parse_args(args)
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    43
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    44
    # apply
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    45
    pvl.args.apply(options)
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    46
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    47
    return options, args
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    48
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    49
def main (argv) :
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    50
    """
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    51
        pvl.verkko wsgi development server.
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    52
    """
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    53
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    54
    # parse cmdline
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    55
    options, args = parse_argv(argv, doc=__doc__)
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    56
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    57
    # rrd
153
8930f54b59b4 pvl.verkko.rrd: --rrd is required; fix overview rrd name layout
Tero Marttila <terom@paivola.fi>
parents: 152
diff changeset
    58
    if not options.rrd :
8930f54b59b4 pvl.verkko.rrd: --rrd is required; fix overview rrd name layout
Tero Marttila <terom@paivola.fi>
parents: 152
diff changeset
    59
        log.error("no --rrd given")
8930f54b59b4 pvl.verkko.rrd: --rrd is required; fix overview rrd name layout
Tero Marttila <terom@paivola.fi>
parents: 152
diff changeset
    60
        return 2
8930f54b59b4 pvl.verkko.rrd: --rrd is required; fix overview rrd name layout
Tero Marttila <terom@paivola.fi>
parents: 152
diff changeset
    61
154
11df86fd2d67 pvl.web.rrd: --cache
Tero Marttila <terom@paivola.fi>
parents: 153
diff changeset
    62
    rrd = pvl.verkko.rrd.RRDDatabase(options.rrd, options.cache)
152
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    63
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    64
    # app
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    65
    application = pvl.verkko.rrd.Application(rrd)
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    66
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    67
    # wsgi wrapper
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    68
    werkzeug.serving.run_simple('0.0.0.0', 8080, application,
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    69
            #use_reloader    = True, 
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    70
            use_debugger    = (options.loglevel == logging.DEBUG),
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    71
            static_files    = {
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    72
                '/static':      'static',
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    73
            },
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    74
    )
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    75
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    76
if __name__ == '__main__' :
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    77
    import sys
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    78
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    79
    sys.exit(main(sys.argv))
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    80
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    81