#!/usr/bin/env python import argparse from datetime import datetime, timedelta from aosstower.model import RrdModel averages = { 3: 60, 6: 60, 12: 300, 18: 300, 24: 300 } def main(db, outfile, vars, hours): model = RrdModel(db) average = averages[hours] start = datetime(2013, 4, 1) end = start + timedelta(hours=hours) data = model.get_slice(start, end, names=vars, average=average) fptr = open(outfile, 'wt') fptr.write('Time,' + ','.join(vars) + '\n') for row in data: dt = datetime.utcfromtimestamp(row[0]) fptr.write(dt.strftime('%Y/%m/%d %H:%M:%S')) for val in row[1:]: if val is None: fptr.write(',NaN') else: fptr.write(',{}'.format(val)) fptr.write('\n') if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('hours', type=int, default=3, choices=[3, 6, 12, 18, 24]) parser.add_argument('db') parser.add_argument('outfile') parser.add_argument('var', nargs='+') args = parser.parse_args() print args.var main(args.db, args.outfile, args.var, args.hours)