bin/pvl.rrd-graph
author Tero Marttila <terom@paivola.fi>
Sat, 21 Dec 2013 22:57:44 +0200
changeset 329 b3778c190aa5
parent 156 999ae3e9fdec
permissions -rwxr-xr-x
version 0..0:

pvl.rrd: api.report()
pvl.wlan-syslog: track openwrt hostapd syslog wlan sta activity
pvl.verkko.wlan: basic Table view
pvl.dns-serial
pvl.dns-zone
pvl.dhcp.config: nested blocks
pvl.hosts-import: import hosts from dns/dhcp
pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235
pvl.hosts-dhcp: generate dhcp hosts conf
#!/usr/bin/env python

"""
    pvl.rrd graph output
"""

__version__ = '0.1'

import pvl.args
import pvl.rrd.args
import pvl.rrd.graph

import os.path

import logging, optparse

log = logging.getLogger('main')

def parse_options (argv) :
    """
        Parse command-line arguments.
    """

    prog = argv[0]

    parser = optparse.OptionParser(
            prog        = prog,
            usage       = '%prog: [options]',
            version     = __version__,

            # module docstring
            description = __doc__,
    )
    
    # options
    parser.add_option_group(pvl.args.parser(parser))
    parser.add_option_group(pvl.rrd.args.parser(parser))

    parser.add_option('--style',        metavar='STYLE',        default='detail',
            help="overview/detail")

    parser.add_option('--interval',     metavar='INTERVAL',     default='daily',
            help="daily/weekly/yearly")

    # parse
    options, args = parser.parse_args(argv[1:])
    
    # apply
    pvl.args.apply(options, prog)

    return options, args

def graph (options, rrds, rrd) :
    """
        Graph given rrd.
    """


    # out
    path, ext = os.path.splitext(rrd)
    ext = options.graph
    out = path + ext
    
    # graph
    log.info("%s -> %s", rrd, out)
    
    pvl.rrd.graph.collectd_ifoctets(options.style, options.interval, "Test", rrd, out)

def main (argv) :
    """
        Usage: [options] rrd
    """

    options, args = parse_options(argv)

    # RRDDatabase
    rrds = pvl.rrd.args.apply(options)
    
    for rrd in args :
        graph(options, rrds, rrd)

    # done
    log.info("Exiting...")
    return 0

if __name__ == '__main__':
    import sys

    sys.exit(main(sys.argv))