#!/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)