#!/usr/bin/env python3
import sys
import os
import importlib
from pathlib import Path
import argparse

 
sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../")))

cv_test_manager = importlib.import_module("py-json.cv_test_manager")
cv_add_base_parser = cv_test_manager.cv_add_base_parser
cv_base_adjust_parser = cv_test_manager.cv_base_adjust_parser
InfluxRequest = importlib.import_module("py-dashboard.InfluxRequest")
RecordInflux = InfluxRequest.RecordInflux
influx_add_parser_args = InfluxRequest.influx_add_parser_args

class CSVtoInflux:
    def __init__(self,
                 influx_host,
                 influx_port,
                 influx_org,
                 influx_token,
                 influx_bucket,
                 path):
        self.path = path
        self.influxdb = RecordInflux(_influx_host=influx_host,
                                     _influx_port=influx_port,
                                     _influx_org=influx_org,
                                     _influx_token=influx_token,
                                     _influx_bucket=influx_bucket)

    def glob(self):
        path = Path(self.path)
        self.kpi_list = list(path.glob('**/kpi.csv'))
        for kpi in self.kpi_list:
            self.influxdb.RecordInflux.csv_to_influx(kpi)


def main():
    parser = argparse.ArgumentParser(
        prog='csv_to_influx.py'
    )
    cv_add_base_parser(parser)

    parser.add_argument('--path', action='append')

    args = parser.parse_args()

    cv_base_adjust_parser(args)

    csvtoinflux = CSVtoInflux(args.influx_host,
                              args.influx_port,
                              args.influx_org,
                              args.influx_token,
                              args.influx_bucket,
                              args.path)

    csvtoinflux.glob()


if __name__ == "__main__":
    main()
