bin/pvl.verkko-rrd
author Tero Marttila <terom@paivola.fi>
Sun, 20 Jan 2013 18:31:21 +0200
changeset 153 8930f54b59b4
parent 152 33b98b46d8fb
child 154 11df86fd2d67
permissions -rwxr-xr-x
pvl.verkko.rrd: --rrd is required; fix overview rrd name layout
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',
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    36
        help="Path to RRD files")
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    37
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    38
    # parse
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    39
    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
    40
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    41
    # apply
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    42
    pvl.args.apply(options)
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
    return options, args
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    45
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    46
def main (argv) :
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    47
    """
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    48
        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
    49
    """
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
    # parse cmdline
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    52
    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
    53
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    54
    # rrd
153
8930f54b59b4 pvl.verkko.rrd: --rrd is required; fix overview rrd name layout
Tero Marttila <terom@paivola.fi>
parents: 152
diff changeset
    55
    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
    56
        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
    57
        return 2
8930f54b59b4 pvl.verkko.rrd: --rrd is required; fix overview rrd name layout
Tero Marttila <terom@paivola.fi>
parents: 152
diff changeset
    58
152
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    59
    rrd = pvl.verkko.rrd.RRDDatabase(options.rrd)
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    60
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    61
    # app
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    62
    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
    63
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    64
    # wsgi wrapper
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    65
    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
    66
            #use_reloader    = True, 
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    67
            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
    68
            static_files    = {
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    69
                '/static':      'static',
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    70
            },
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    71
    )
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    72
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    73
if __name__ == '__main__' :
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    74
    import sys
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
    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
    77
33b98b46d8fb pvl.verkko.rrd: reimplementation of old rrdweb using pvl.web/rrd
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    78