from os import path import sys import argparse import configparser from collector import Collector from config import CoresvcConfig, CollectorConfig, S3Config, APPConfig from log import logger pa = path.abspath(path.join(path.dirname(__file__), '..')) sys.path.append(pa) def parse_config(): args_parser = argparse.ArgumentParser() args_parser.add_argument("--config", default="conf.ini", help="Path to config file") args = args_parser.parse_args() config_parser = configparser.ConfigParser() config_parser.read(args.config) collector_config = CollectorConfig( interval=config_parser.getint("collector", "interval"), provider=config_parser.get("collector", "provider"), region=config_parser.get("collector", "region") ) coresvc_config = CoresvcConfig( address=config_parser.get("coresvc", "address") ) s3_config = S3Config( bucket=config_parser.get("s3", "bucket"), prefix=config_parser.get("s3", "prefix"), ) app_config = APPConfig(collector_config, coresvc_config, s3_config) return app_config def main(): conf = parse_config() collector = Collector(conf) logger.info("start collector") collector.start() if __name__ == '__main__': main()