bin/pvl.rrd-graph
author Tero Marttila <terom@paivola.fi>
Sun, 20 Jan 2013 18:26:12 +0200
changeset 151 8a9f01036091
parent 143 fb48ba17ae3e
child 156 999ae3e9fdec
permissions -rwxr-xr-x
split pvl.web from pvl.verkko, rename test.py -> pvl.verkko-dhcp
#!/usr/bin/env python

"""
    pvl.rrd graph output
"""

__version__ = '0.1'

import pvl.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('--style',        metavar='STYLE',        default='detail',
            help="overview/detail")
    parser.add_option('--interval',     metavar='INTERVAL',     default='daily',
            help="daily/weekly/yearly")
    parser.add_option('--graph',        metavar='PATH',         default='.png',
            help="output file")

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

    return options, args

def graph (options, 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)
    
    for rrd in args :
        graph(options, rrd)

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

if __name__ == '__main__':
    import sys

    sys.exit(main(sys.argv))