bin/pvl.rrd-graph
author Tero Marttila <terom@paivola.fi>
Sun, 07 Sep 2014 14:21:56 +0300
changeset 424 e77e967d59b0
parent 156 999ae3e9fdec
permissions -rwxr-xr-x
hgignore: use glob; ignore snmp mibs
#!/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))