pvl/rrd/args.py
author Tero Marttila <terom@paivola.fi>
Sun, 07 Sep 2014 14:33:02 +0300
changeset 427 7dd5a33aa145
parent 225 3c2d0dd42045
permissions -rw-r--r--
version 0.7.1

more flexible pvl.rrd-interfaces for cross-domain collect hosts vs rrd nodes
import optparse

import pvl.rrd.graph # interface
from pvl.rrd import RRDDatabase, RRDCache

import logging; log = logging.getLogger('pvl.rrd.args')
import sys

def parser (parser) :
    """
        optparse OptionGroup.
    """

    parser = optparse.OptionGroup(parser, "RRD options")

    parser.add_option('--rrd-type', metavar='TYPE', default='collectd',
        help="mrtg/collectd")

    parser.add_option('--rrd', metavar='PATH',
        help="Find RRD files")

    parser.add_option('--rrd-cache', metavar='PATH',
        help="Cache RRD graphs")

    return parser

def apply (options) :
    """
        Return RRDDatabase from options.
    """
    # path
    if not options.rrd :
        log.error("no --rrd given")
        sys.exit(2)
    
    # type
    graph_type = pvl.rrd.graph.interface_type(options.rrd_type)
    
    # cache
    if options.rrd_cache :
        cache = RRDCache(options.rrd_cache)
    else :
        cache = None

    return RRDDatabase(options.rrd, graph_type, cache)